<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/tests/video_core, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-11-03T13:46:34+00:00</updated>
<entry>
<title>tests: give the descriptor table mocks a GetPointer hook</title>
<updated>2026-11-03T13:46:34+00:00</updated>
<author>
<name>kraibse</name>
<email>33869366+kraibse@users.noreply.github.com</email>
</author>
<published>2026-11-03T13:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=cf55e9e9f4471ec2960cd9e28687149ffab90134'/>
<id>urn:sha1:cf55e9e9f4471ec2960cd9e28687149ffab90134</id>
<content type='text'>
DescriptorTable::Read calls MemoryManager::GetPointer for entries that fall
inside a single page, which neither mock in this test implemented, so the
template failed to instantiate and the tests target stopped building.

Return nullptr from both mocks so the tests keep exercising the generic
ReadBlockUnsafe path they are written for.

Assisted-by: DeepSeek V4.1 Flash (diagnosis and patch)
</content>
</entry>
<entry>
<title>Merge pull request #334 from snowstormxd/codex/upstream-mkw-test</title>
<updated>2026-11-02T22:36:01+00:00</updated>
<author>
<name>Jonas</name>
<email>104419015+jojo-chaechae@users.noreply.github.com</email>
</author>
<published>2026-11-02T22:36:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=8362c44ff835d7be73d2adad9ce3e2d4467a6aeb'/>
<id>urn:sha1:8362c44ff835d7be73d2adad9ce3e2d4467a6aeb</id>
<content type='text'>
MKW performance improvements</content>
</entry>
<entry>
<title>vulkan: repack 69-byte vertices without dynamic vertex input on MoltenVK</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T16:56:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=cd9b19c69d7eedc2d2d3557c27a0a06c4420213d'/>
<id>urn:sha1:cd9b19c69d7eedc2d2d3557c27a0a06c4420213d</id>
<content type='text'>
e38b738b84 repacks the 69-byte vertex stride to 72 only with dynamic
vertex input, unless EGLANTINE_EXPERIMENTAL_STATIC_VERTEX_REPACK=1.
MoltenVK has no VK_EXT_vertex_input_dynamic_state and Metal needs strides
that are a multiple of 4, so the stride was never fixed on Macs.

Enable the static path automatically when the device's minimum vertex
binding stride alignment does not divide 69. The device reports 4 for
MoltenVK, matching its portability subset limit. The environment variable
still overrides it: 1 forces the repack on, 0 forces it off.

Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
</content>
</entry>
<entry>
<title>vulkan: repack 69-byte vertices only when needed</title>
<updated>2026-11-02T19:53:47+00:00</updated>
<author>
<name>Sssnowyyy</name>
<email>78863999+Sssnowyyy@users.noreply.github.com</email>
</author>
<published>2026-11-02T16:38:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=13fc5fda26e6b5a9af67f5a654e831187bfa1962'/>
<id>urn:sha1:13fc5fda26e6b5a9af67f5a654e831187bfa1962</id>
<content type='text'>
SetVertexRepackLayout returned old_mask | new_mask, which stays non-zero
on every draw that uses a 69-byte binding. PrepareDraw then re-dirtied the
vertex buffers and vertex input each time, so the repack compute pass ran
and the render pass ended once per draw, which is costly on tiled GPUs.

Return old_mask ^ new_mask so only a layout change re-dirties the
bindings. The repacked copy only stays valid while the source data is
unchanged, so the buffer cache now flags the vertex buffers overlapping a
CPU write, inline or DMA write, or GPU write, and re-dirties the repacked
ones before binding. Command buffer submission already invalidates all
vertex buffer state, which keeps the staging copy within its tick.

Also pass the source buffer size to the repack pass and clamp the
word-rounded storage descriptor range to it; it could run up to three
bytes past the end of the buffer. A binding that does not fit is skipped
like one over the device limits.

Follow-up to e38b738b84.

Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
</content>
</entry>
<entry>
<title>tests: restore batched page accounting and isolate timer fixtures</title>
<updated>2026-11-02T19:36:34+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T19:02:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=6a0d50bcca77987d27857b029f5e3f90dd3d141c'/>
<id>urn:sha1:6a0d50bcca77987d27857b029f5e3f90dd3d141c</id>
<content type='text'>
Apply batch updates in the rasterizer mock, check cached writes do not untrack twice, and reset callback state between timer cases.

Assisted-by: Codex (implementation, review and automated validation)
(cherry picked from commit 225ad4e5d1da4ec9883b17aea7273b6c8f76fe17)
</content>
</entry>
<entry>
<title>core: skip empty bitmap ranges during cache and scheduler traversal</title>
<updated>2026-11-02T19:07:54+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-02T19:07:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=00285925faebcd9fce6f12b4ebfaccdab491203c'/>
<id>urn:sha1:00285925faebcd9fce6f12b4ebfaccdab491203c</id>
<content type='text'>
Adapted bitmap scans from sylvieistaken/selevet-eglantine performance build 4. Keep the wide-priority fallback and fix the first live slot after empty bitmap words. Include randomized lifecycle and ordering checks.

Assisted by Codex.
</content>
</entry>
<entry>
<title>texture_cache: clear only exposed descriptor bitmap words</title>
<updated>2026-11-02T19:00:26+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T22:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=24da16703dd2a9f883d80f3c5c0280d12767b5ea'/>
<id>urn:sha1:24da16703dd2a9f883d80f3c5c0280d12767b5ea</id>
<content type='text'>
Avoid zeroing unused preallocation during invalidation and pool refresh. Clear newly exposed words whenever limits grow, bound clearing to allocated storage, and test word/allocation boundaries, shrink/regrowth and malformed large limits.

Assisted-by: Codex (implementation, review, commit text and automated validation)
(cherry picked from commit 4bc1ae01f79cef43be016504c850ca8a6998457a)
</content>
</entry>
<entry>
<title>tests: verify deferred descriptors against eager invalidation</title>
<updated>2026-11-02T19:00:26+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T21:32:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=1e37847a805e87a0cac9e78755fe103571329eaa'/>
<id>urn:sha1:1e37847a805e87a0cac9e78755fe103571329eaa</id>
<content type='text'>
Exercise 40,000 mutations and table switches plus repeated deletion across five channels. Make the existing descriptor read work with a memory reader fixture and add an explicit CPU benchmark with opaque invalidation calls.

Assisted-by: Codex (implementation, review, commit text and automated validation)
(cherry picked from commit 3b62a551da8ec0b4edf19a1c4e14fa2519dd20e2)
</content>
</entry>
<entry>
<title>shader_cache: batch memory-write invalidations without skipping ranges</title>
<updated>2026-11-02T18:58:54+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-01T21:32:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=b2430b4d90016eb6a221224687459c1876bc5552'/>
<id>urn:sha1:b2430b4d90016eb6a221224687459c1876bc5552</id>
<content type='text'>
Adapt the batching from ymatrix1/Eglantine PR #237, retaining all CPU invalidations. Acquire the lock once and remove pending shaders once per write batch. Compare real cache contents with sequential invalidation across randomized overlapping writes and pending removals.

Assisted-by: Codex (implementation, review, commit text and automated validation)
(cherry picked from commit b65f818d7789ffadfb58fe4543b18060fd88ce53)
</content>
</entry>
<entry>
<title>macro: execute native parameters without a second FIFO copy</title>
<updated>2026-11-02T18:57:54+00:00</updated>
<author>
<name>snowstormxd</name>
<email>214507868+snowstormxd@users.noreply.github.com</email>
</author>
<published>2026-11-02T18:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=665938d0b157ff1dce056b5c24a57aee9392929b'/>
<id>urn:sha1:665938d0b157ff1dce056b5c24a57aee9392929b</id>
<content type='text'>
Use the owned parameter vector for DMA FIFO appends. Add a native JIT regression covering reallocation and repeated invocations against the copied-input path.

Assisted by Codex.

(cherry picked from commit 5b6803aaab18e332493903ee49cab026c041d5dc)
</content>
</entry>
</feed>
