<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/shader_recompiler/frontend/ir/opcodes.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>[vulkan] Implementation for VK_EXT_shader_quad_control (#4168)</title>
<updated>2026-08-27T23:21:22+00:00</updated>
<author>
<name>CamilleLaVey</name>
<email>camillelavey99@gmail.com</email>
</author>
<published>2026-08-27T23:21:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=50cb8fd1c94eecfbf1a052abddf7f9d2b0725015'/>
<id>urn:sha1:50cb8fd1c94eecfbf1a052abddf7f9d2b0725015</id>
<content type='text'>
An experimental approach to introduce an smarter way to use and access QUAD's capabilities on shaders, suggested by @gidoly some months ago, finally came into something usable; current implementation checks GLASM, GLSL and Vulkan on their own way, stablishes proper emitters and receivers for Quads inside our recompiler, which are the introductions for future changes; checks for support and actual feature bit, OpCodes and mask were added within this PR. Meanwhile the expected behavior was to reduce graphical issues (on games with Quad shaders reliant), we encountered a very slight performance increase depending on what game and shader are actually compiled.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4168
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: Samuel &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[shader_recompiler] fix META_TABLE/NUM_ARGS table being duplicated per TU that included opcodes.h (#4180)</title>
<updated>2026-07-07T17:50:56+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-07-07T17:50:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=072be286d1f784cdd8f2f975bb57454f42606ad3'/>
<id>urn:sha1:072be286d1f784cdd8f2f975bb57454f42606ad3</id>
<content type='text'>
small oopsie; we dont need 6 copies of the same 22KB table
(removes 5*22 = 110 KB worth of redundant stuff)

this also enforces static on the types defined in the header so they arent memoized into a non-inlined value (aka. compiler just grabs value instead of well, yknow, assuming its a constant area)

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4180
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
</content>
</entry>
<entry>
<title>general: Convert source file copyright comments over to SPDX</title>
<updated>2022-04-23T09:55:32+00:00</updated>
<author>
<name>Morph</name>
<email>39850852+Morph1984@users.noreply.github.com</email>
</author>
<published>2022-04-23T08:59:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=2b87305d319f0bd04da36fb96314934f37b12637'/>
<id>urn:sha1:2b87305d319f0bd04da36fb96314934f37b12637</id>
<content type='text'>
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
</content>
</entry>
<entry>
<title>shader_recompiler: Reduce unused includes</title>
<updated>2022-03-20T06:25:08+00:00</updated>
<author>
<name>ameerj</name>
<email>52414509+ameerj@users.noreply.github.com</email>
</author>
<published>2022-03-19T04:59:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=0df188787ad44a35b062231332b3fe7272035b08'/>
<id>urn:sha1:0df188787ad44a35b062231332b3fe7272035b08</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader: Inline common Opcode and Inst functions</title>
<updated>2021-07-23T01:51:28+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2021-04-21T03:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3a391243594ab2dae96170fc0416348da21432cf'/>
<id>urn:sha1:3a391243594ab2dae96170fc0416348da21432cf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader: Calculate number of arguments in an opcode at compile time</title>
<updated>2021-07-23T01:51:28+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2021-04-21T01:20:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=c44139cda06014fd270f8fde30a1e3d8eadb5e8a'/>
<id>urn:sha1:c44139cda06014fd270f8fde30a1e3d8eadb5e8a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader: Implement tessellation shaders, polygon mode and invocation id</title>
<updated>2021-07-23T01:51:27+00:00</updated>
<author>
<name>ReinUsesLisp</name>
<email>reinuseslisp@airmail.cc</email>
</author>
<published>2021-04-16T01:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=38908d0f7e7291138de768aedb3469a43007c9e6'/>
<id>urn:sha1:38908d0f7e7291138de768aedb3469a43007c9e6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader: Address feedback + clang format</title>
<updated>2021-07-23T01:51:26+00:00</updated>
<author>
<name>lat9nq</name>
<email>22451773+lat9nq@users.noreply.github.com</email>
</author>
<published>2021-04-10T06:32:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=5b95114cd475279bd602dd54df4e04f7fcd66093'/>
<id>urn:sha1:5b95114cd475279bd602dd54df4e04f7fcd66093</id>
<content type='text'>
</content>
</entry>
<entry>
<title>shader_recompiler,video_core: Cleanup some GCC and Clang errors</title>
<updated>2021-07-23T01:51:26+00:00</updated>
<author>
<name>lat9nq</name>
<email>22451773+lat9nq@users.noreply.github.com</email>
</author>
<published>2021-04-06T02:25:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=a4e7a41e7f7d0af4bd0187fddf68c4b6c7ca796f'/>
<id>urn:sha1:a4e7a41e7f7d0af4bd0187fddf68c4b6c7ca796f</id>
<content type='text'>
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.

Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler

shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth

thread_worker: Include condition_variable

Don't use list initializers in control flow

Co-authored-by: ReinUsesLisp &lt;reinuseslisp@airmail.cc&gt;
</content>
</entry>
</feed>
