eden-miror/src/video_core
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
..
buffer_cache [buffer_cashe] use old logic when Optimized Vertex Buffers is disabled (#4528) 2026-10-26 17:25:24 +01:00
control [video_core/control] Fix SIGBUS due to uninit channel_state (#4406) 2026-09-14 00:39:07 +02:00
engines [video_core] cpu buffer fix + kepler uploads / maxwell macro dirty tracking fixes (#4473) 2026-09-24 18:44:14 +02:00
frame_gen [android] Add LSFG UI to quick settings (#4393) 2026-09-14 02:53:30 +02:00
gpu_logging [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
host1x [video_core/host1x] VP9 Video Playback Fixes (#4590) 2026-10-30 03:06:33 +01:00
host_shaders [vulkan, sgsr] Adjustments to SGSR implementation (#4293) 2026-08-23 23:36:24 +02:00
post_processing [vulkan, android] Add feature of post-processing shaders on Android (#4348) 2026-09-10 15:14:02 +02:00
query_cache [buffer_cache] Simplify GPU fence synchronization and remove GPU buffer readback (#4477) 2026-09-26 05:01:27 +02:00
renderer_null
renderer_opengl Revert "[video_core] Improve asynchronous shader building (#2560)" (#4512) 2026-10-26 17:26:32 +01:00
renderer_vulkan [shader_recompiler, renderer_vulkan] draw sprites whose texture handle comes from a vertex attribute (#4566) 2026-11-01 21:44:40 +01:00
texture_cache [*] Remove Fix{Static,Small}VectorADL workaround for GCC 12 (#4386) 2026-10-12 22:21:17 +02:00
textures [vulkan] Removal of QCOM sampler limiters + CustomBorderColor and ColorBorderSwizzle adjustments (#4301) 2026-08-25 20:03:18 +02:00
vulkan_common [shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508) 2026-10-14 00:04:16 +02:00
cache_types.h
capture.h
cdma_pusher.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
cdma_pusher.h
CMakeLists.txt Revert "[audio] Replace libopus with FFmpeg (#4169)" (#4419) 2026-09-14 14:34:24 +02:00
compatible_formats.cpp
compatible_formats.h
delayed_destruction_ring.h
dirty_flags.cpp
dirty_flags.h
dma_pusher.cpp [video_core] cpu buffer fix + kepler uploads / maxwell macro dirty tracking fixes (#4473) 2026-09-24 18:44:14 +02:00
dma_pusher.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
fence_manager.h [buffer_cache] Simplify GPU fence synchronization and remove GPU buffer readback (#4477) 2026-09-26 05:01:27 +02:00
framebuffer_config.cpp [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
framebuffer_config.h [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
fsr.cpp
fsr.h
gpu.cpp [video_core] Revert 4490 and 4531 (#4584) 2026-10-30 03:26:33 +01:00
gpu.h [video_core] Revert 4490 and 4531 (#4584) 2026-10-30 03:26:33 +01:00
gpu_thread.cpp [gpu_thread] drop affinity pinning, fix BOTW perf regression (#4603) 2026-10-30 19:55:35 +01:00
gpu_thread.h [gpu] Fix infinite hangup/freezes at shutdown/reset (#4395) 2026-09-11 15:29:52 +02:00
guest_memory.h
invalidation_accumulator.h
macro.cpp [meta] Discourage profanity usage (#4239) 2026-08-09 02:53:16 +02:00
macro.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
memory_manager.cpp [*] Remove Fix{Static,Small}VectorADL workaround for GCC 12 (#4386) 2026-10-12 22:21:17 +02:00
memory_manager.h [common/core/dynarmic] Optimize page table allocations (#4219) 2026-09-09 21:35:49 +02:00
present.h
pte_kind.h
query_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
rasterizer_download_area.h
rasterizer_interface.h [video_core] Revert 4490 and 4531 (#4584) 2026-10-30 03:26:33 +01:00
renderer_base.cpp [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
renderer_base.h [core, hle, video_core, memory] Improve multi-process, display layers, dynamic shader cache and rework overlay (#4238) 2026-08-29 01:04:02 +02:00
shader_cache.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
shader_cache.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
shader_environment.cpp [video_core] gate Mesa EXIT terminator detection behind non-proprietary driver (#4151) 2026-07-01 13:06:00 +02:00
shader_environment.h [common] Switch to boost::unordered_flat containers (#4326) 2026-08-31 02:58:09 +02:00
shader_notify.cpp
shader_notify.h
smaa_area_tex.h
smaa_search_tex.h
surface.cpp [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
surface.h [vulkan] 3rd Vulkan Global Maintenance (#4189) 2026-07-09 04:22:43 +02:00
transform_feedback.cpp
transform_feedback.h
video_core.cpp [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00
video_core.h [video_core, hle] remove redundant parent references in system structs (#3908) 2026-06-23 06:31:25 +02:00