<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp, 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-01T16:29:29+00:00</updated>
<entry>
<title>shader_recompiler: translate Switch 2 task and mesh programs</title>
<updated>2026-11-01T16:29:29+00:00</updated>
<author>
<name>Takoroka</name>
<email>137927095+Takoroka@users.noreply.github.com</email>
</author>
<published>2026-10-30T09:02:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=310dd596d0f6d48de3517cfb1bdc90a366817405'/>
<id>urn:sha1:310dd596d0f6d48de3517cfb1bdc90a366817405</id>
<content type='text'>
Mario Kart World draws some of its geometry with NVN task and mesh programs
(the task program culls and writes the mesh workgroup count and a payload
to its stage buffer; each mesh workgroup reads it back and writes vertices
and primitives). Add Task and Mesh stages and translate them for
VK_EXT_mesh_shader:

- the ISBE pseudo instruction from the lowering becomes reads and writes
  of an emulated stage buffer: the task's output region is the task
  payload, the mesh output regions live in workgroup memory
- every EXIT of these stages jumps to one final return, so all
  invocations reach the epilogue: a barrier, then OpEmitMeshTasksEXT, or
  OpSetMeshOutputsEXT and a copy of the 32-element vertex and primitive
  groups (lines named by the mesh header's and the pass-through geometry
  header's output maps) to arrayed and per-primitive outputs
- Sirit lacks the two mesh instructions: they are emitted as OpStore
  markers and replaced after assembly
- fragment inputs a mesh program writes per primitive get PerPrimitiveEXT

The captured task and mesh programs of the title translate to SPIR-V that
spirv-val accepts.
</content>
</entry>
<entry>
<title>[common] Switch to boost::unordered_flat containers (#4326)</title>
<updated>2026-08-31T00:58:09+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-08-31T00:58:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=7fda6dde73ab9fa1eab40d43c90720a1d9ba054f'/>
<id>urn:sha1:7fda6dde73ab9fa1eab40d43c90720a1d9ba054f</id>
<content type='text'>
Replaces all instances of ankerl's unordered map/set with boost's
`unordered_flat_*` classes. This uses std::hash since boost::hash is
actually a lot slower.

Also adds an abstraction layer in `Common` so future changes are quicker
and easier.

Other implementation details:
- ankerl provided hash specializations for tuple and pair, so those were
  ported here
- std::erase_if doesn't work on boost, so just used the ADL'd erase_if

This should be about equal or superior performance as unordered_dense for everything except iteration.

Signed-off-by: crueter &lt;crueter@eden-emu.dev&gt;

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326
Reviewed-by: Lizzie and Samuel &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[fmt] use {#:x} instead of 0x{:#x} (#4170)</title>
<updated>2026-07-25T19:47:07+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-07-25T19:47:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=58dee5330566d8948783eb2246ed4e4cde316068'/>
<id>urn:sha1:58dee5330566d8948783eb2246ed4e4cde316068</id>
<content type='text'>
continuation of #309 but applying to even more files than before :)
also makes them lowercase because `0xfafafa` is better as `0XFAFAFA`

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4170
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
</content>
</entry>
<entry>
<title>[maxwell] Fix Flow::Block comp error (#3882)</title>
<updated>2026-04-25T18:50:11+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-04-25T18:50:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=bd6dd7ecec299f98fbde7598f48156370b80fd8f'/>
<id>urn:sha1:bd6dd7ecec299f98fbde7598f48156370b80fd8f</id>
<content type='text'>
Signed-off-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3882
Reviewed-by: Lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants (#3442)</title>
<updated>2026-02-10T02:34:07+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-02-10T02:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=a8093c2a3cf98ccccabeb1d6a2c1ccc5e191557f'/>
<id>urn:sha1:a8093c2a3cf98ccccabeb1d6a2c1ccc5e191557f</id>
<content type='text'>
mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is

in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained

i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :)

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Co-authored-by: Caio Oliveira &lt;caiooliveirafarias0@gmail.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442
Reviewed-by: DraVee &lt;dravee@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[Maxwell]: Fix shaders compilation memory leak (#2606)</title>
<updated>2025-09-30T23:21:12+00:00</updated>
<author>
<name>Gamer64</name>
<email>gamer64@eden-emu.dev</email>
</author>
<published>2025-09-30T23:21:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=43a7470a7d09ad412c7d9815ae23402f4bb7acb0'/>
<id>urn:sha1:43a7470a7d09ad412c7d9815ae23402f4bb7acb0</id>
<content type='text'>
Co-authored-by: collecting &lt;collecting@citron-emu.org&gt;

"The ObjectPool&lt;Statement&gt; was never being cleared after use. When compiling complex shaders, this would allocate gigabytes of memory, causing the emulator to run out of RAM and be killed by the operating system. This is a critical fix that prevents out-of-memory crashes on all operating systems when playing games with complex shaders."

Co-authored-by: Gamer64 &lt;76565986+Gamer64ytb@users.noreply.github.com&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2606
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: Shinmegumi &lt;shinmegumi@eden-emu.dev&gt;
Co-authored-by: Gamer64 &lt;gamer64@eden-emu.dev&gt;
Co-committed-by: Gamer64 &lt;gamer64@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[common] remove ranges polyfill (#2546)</title>
<updated>2025-09-24T17:29:48+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-09-24T17:29:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=f19bbda517d17e02b269287a17bce8900b5f1559'/>
<id>urn:sha1:f19bbda517d17e02b269287a17bce8900b5f1559</id>
<content type='text'>
Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2546
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>Update fmt to allow for v11</title>
<updated>2025-04-09T23:11:22+00:00</updated>
<author>
<name>crueter</name>
<email>swurl@swurl.xyz</email>
</author>
<published>2025-04-09T23:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9cef9f5dce7c41c9ab2ea5b9b8a294228a535c4c'/>
<id>urn:sha1:9cef9f5dce7c41c9ab2ea5b9b8a294228a535c4c</id>
<content type='text'>
Signed-off-by: swurl &lt;swurl@swurl.xyz&gt;</content>
</entry>
<entry>
<title>general: fix compile for Apple Clang</title>
<updated>2022-11-23T03:22:28+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2022-11-21T16:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5a712bb51a39628b3a484445e16065ebe621ed90'/>
<id>urn:sha1:5a712bb51a39628b3a484445e16065ebe621ed90</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Shader Decompiler: Fix dangerous behavior of invalid iterator insertion.</title>
<updated>2022-10-06T19:00:52+00:00</updated>
<author>
<name>Fernando Sahmkow</name>
<email>fsahmkow27@gmail.com</email>
</author>
<published>2022-03-06T10:03:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=335b4b81cda1923cde44d85c400e4470e840bd21'/>
<id>urn:sha1:335b4b81cda1923cde44d85c400e4470e840bd21</id>
<content type='text'>
</content>
</entry>
</feed>
