eden-miror/src/video_core
CamilleLaVey a594c8d60e
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
[shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508)
This works provides better emulation on certain GS missing for shader invocation data + geometry pass fallback in qcom/turnip drivers, some of those were provided as community patch by @a.kamaltdinov; which was refined to address the requirements on forced gpu reads; which used to kill some performance on low end devices; now, the stability with some of the graphical problems have been addressed and balanced. Shuffle shaders (SHFFL) are not actually provided on QCOM and turnip drivers, so any game that previously required this stage draw, will now avoid being ignored and tax some performance based on the complexity of the stage draw from now on. This will also address partially some tessellation problems as well.

_Special Thanks:_

1.- @a.kamaltdinov (for the initial patch "early fix for nier" provided for #4325)
2.- @PavelBARABANOV (because the making the cherry-pick easier for a new PR)

Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4508
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
2026-10-14 00:04:16 +02:00
..
buffer_cache [*] Remove Fix{Static,Small}VectorADL workaround for GCC 12 (#4386) 2026-10-12 22:21:17 +02: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 [cmake] Fix some macOS compilation errors (#4350) 2026-09-05 23:43:46 +02: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 nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
renderer_opengl [shader_recompiler, vulkan] Virtual buffer pages with multi-range + sparse buffers binding (#4362) 2026-09-08 20:42:20 +02:00
renderer_vulkan [shader_recompiler, vulkan, qcom, tu] Provide handling to missing shader subgroups on QCOM (#4508) 2026-10-14 00:04:16 +02: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 nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
cdma_pusher.cpp [fmt] use {#:x} instead of 0x{:#x} (#4170) 2026-07-25 21:47:07 +02:00
cdma_pusher.h [video_core] fix H264 and jthread() causing spurious errors (#3907) 2026-04-29 19:23:20 +02:00
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 [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
dirty_flags.cpp
dirty_flags.h [scheduler, dma, maxwell] Reduce CPU stalls in the GPU command processing pipeline through multiple targeted optimizations (#3296) 2026-01-18 03:45:18 +01:00
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 [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
fsr.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
gpu.cpp [settings] add PR4490 & PR4492 toggles (#4502) 2026-10-05 22:37:30 +02:00
gpu.h [video_core] buffer cache readback for nce invalidations (#4490) 2026-09-30 22:13:37 +02:00
gpu_thread.cpp [gpu] Fix infinite hangup/freezes at shutdown/reset (#4395) 2026-09-11 15:29:52 +02: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 [video_core] simplify InvalidationAccumulator (#3890) 2026-04-28 00:24:54 +02:00
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 gpu: dependency-inject scaling/antialiasing filter state for capture layers 2024-02-09 09:20:53 -05:00
pte_kind.h [video_core] correct not-quite-correct PTE_kind enumeration (#4077) 2026-06-15 22:05:18 +02:00
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 [Rasterizer]: Implement "Skip CPU Inner Invalidation" hack 2025-07-09 04:23:22 +02: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 [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
smaa_search_tex.h [*] basic in-house cpp linting (#4039) 2026-06-04 05:49:07 +02:00
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 [vulkan] 2nd Vulkan Global Maintenance (#3853) 2026-04-24 16:37:18 +02:00
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