Aydar Kamaltdinov 5de2aa546c shader_recompiler: complete geometry-stage compaction fallback (#4356)
#4330's gl_PrimitiveId scatter only rewrote the elected lane's atomic.
Every other invocation still got its index through a subgroup shuffle,
which the fallback resolves to its own unchanged local value, so all
non-elected qualifying primitives in a subgroup collide into the same
slot. Extend the same gl_PrimitiveId scatter to the non-elected path,
using each lane's own already-local stride (no cross-lane read needed).

Separately, the predicate gating whether an invocation writes its
compacted data is dead code for this shader's own emitted geometry: a
working reference compile of the same guest shader eliminates it and
its inputs entirely and writes unconditionally. Under our fallback it
is not dead, so invocations where it evaluates false simply never
write their slot. Neutralize the predicate feeding the matched ballot
to match that known-correct unconditional behavior.

Confirmed fixing residual missing/incomplete compacted meshes in NieR
Automata beyond what #4330 alone resolved, no regressions observed on
vendor Qualcomm.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4356
2026-09-05 21:27:58 +02:00
2024-01-08 09:34:32 -05:00
2023-11-04 18:26:49 +00:00
2022-07-27 12:53:49 +02:00
2022-07-27 12:53:49 +02:00


Eden
Eden

Eden is a free and opensource (FOSS) Switch 1 emulator started by developer Camille LaVey.
Written in C++, with builds for Windows, Linux, macOS, Android, FreeBSD and more.

Discord Stoat

Compatibility | Development | Building | Download | Support | License

Compatibility

The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.

A list of supported games will be available in future. Please be patient.

Check out our website for the latest news on exciting features, monthly progress reports, and more!

Packaging status

Contribute

To contribute to Eden; be it financially, code, bug reports, or otherwise, see our Contributing guidelines.

Documentation

We have a user manual! See our User Handbook.

Building

See the General Build Guide

For information on provided development tooling, see the Tools directory

Download

You can download the latest releases from our release page.

Save us some bandwidth! We have mirrors available as well.

License

Eden is licensed under the GPLv3 (or any later version). Refer to the LICENSE.txt file.

Special thanks

Super special thanks to Cloudflare for preventing the git server from blowing up.

  • Yuzu
  • Ryujinx
  • Sudachi
  • Citron
  • Torzu
  • Suyu
  • Ryubing

And everyone who continues or had contributed to the project! <3

S
Description
No description provided
Readme 212 MiB
Languages
C++ 64.1%
cpp 25.5%
POV-Ray SDL 4.4%
Kotlin 3.7%
CMake 0.9%
Other 1.3%