eden-miror/src/shader_recompiler/ir_opt
PavelBARABANOV 3d3ed4b7d1
[shader_recompiler, renderer_vulkan] draw sprites whose texture handle comes from a vertex attribute (#4566)
- [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.

-------------------
credit: Ghael-V

Draw sprites whose texture handle comes from a vertex attribute. A bindless handle read from an interpolated vertex attribute could not be tracked to a constant buffer, so pipeline creation threw and every draw using the shader was dropped (FIFA player indicators, shadows and some text).

The handle now gets a sentinel descriptor, and the Vulkan rasterizer splits a triangle-list draw into runs of vertices that share a handle and binds each run's texture before drawing it.

4fec247e9e
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4566
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2026-11-01 21:44:40 +01:00
..
collect_shader_info_pass.cpp [vulkan] Implementation for VK_EXT_shader_quad_control (#4168) 2026-08-28 01:21:22 +02:00
conditional_barrier_pass.cpp shader_recompiler: remove barriers in conditional control flow when device lacks support 2023-06-10 12:30:39 -04:00
constant_propagation_pass.cpp [shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508) 2026-10-14 00:04:16 +02:00
dead_code_elimination_pass.cpp
dual_vertex_pass.cpp
geometry_compaction_pass.cpp [shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508) 2026-10-14 00:04:16 +02:00
global_memory_to_storage_buffer_pass.cpp [cmake] Fix some macOS compilation errors (#4350) 2026-09-05 23:43:46 +02:00
identity_removal_pass.cpp [vk, ogl/IR, dynarmic/IR] friendlier IR identity pointer chasing, inline AA passes (#3250) 2026-01-20 02:36:24 +01:00
layer_pass.cpp
lower_fp16_to_fp32.cpp
lower_fp64_to_fp32.cpp [vulkan] 4th Vulkan Global Maintenance (#4212) 2026-07-16 20:56:00 +02:00
lower_int64_to_int32.cpp [vulkan] 4th Vulkan Global Maintenance (#4212) 2026-07-16 20:56:00 +02:00
passes.h [shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508) 2026-10-14 00:04:16 +02:00
position_pass.cpp
rescaling_pass.cpp [video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503) 2026-10-08 23:11:34 +02:00
ssa_rewrite_pass.cpp [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
texture_pass.cpp [shader_recompiler, renderer_vulkan] draw sprites whose texture handle comes from a vertex attribute (#4566) 2026-11-01 21:44:40 +01:00
vendor_workaround_pass.cpp [video_core] Skip fragment shaders with known issues on non-NVIDIA drivers (#4503) 2026-10-08 23:11:34 +02:00
verification_pass.cpp