eden-miror/src/video_core
CamilleLaVey 1fbace438c
[vulkan, qcom] Another set of fixes for QCOM stock driver (#3334)
This pr is another set of fixes for the system driver (stock) on Qualcomm devices, mostly taking into consideration drivers from series 512.800.0 and on, reduces unwanted loads in the GPU by allocating properly features that were forced available, when they weren't, generating wrong commands between shader recompiler and Adreno's compiler; also this pr has a bunch of small fixes on games that some textures were displayed wrongly due to double swizzling during the creation of shaders, which allows serveral games to be fixed:

- Zelda: Link's Awakening (no blur, hearts properly displayed, flickering highly reduced on NCE)
- Zelda: Echoes Of Wisdom (no blur, hearts properly displayed, reduced highly flickering, rift properly rendered)
- Mario Kart 8 Deluxe (no longer wrong blue texture on icons of the cups or countdown marker, no longer freezes when compilling shaders on game versions below NCE update to bring more compatibility with CTGP MOD)
- Naruto's Ninja Storm series (no longer blue texturing on Naruto or main character on the screeen)
- Pokemon Scarlet/ Violet (no longer missing characters or npc)
- And many more games that are missing from our scope of testing.

But not only that, but also improved GPU - CPU synchornization for better performance (by 15% compared to previous builds) more stable shader compilations and removed unneeded emulation paths; making games as Breath Of The Wild less stuttery than it was used to; along some cleaning from dead code, allowing mobile devices to go brrrr, always long live to the Snapdragon Master Race, it's needed to explain that devices from A7XX need to use the driver 819.2, meanwhile A8XX can use 842.9 to obtain all the benefits from VK 1.4 allowed in Eden.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3334
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Co-committed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-01-19 04:10:54 +01:00
..
buffer_cache [buffer_cache] Add batching support for memory tracker updates (#3288) 2026-01-18 03:48:09 +01:00
control [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
engines [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
host1x [host1x/vic] fix bad vectorization codegen in (windows) (#3285) 2026-01-10 09:58:28 +01:00
host_shaders [cmake, tools] update CPMUtil and add support for CPMUtil bundled Qt, module updates, cleanups (#3289) 2026-01-14 19:29:13 +01:00
query_cache [vk] Fix query cache leak on missed sync (#131) 2025-07-26 18:12:54 +02:00
renderer_null nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
renderer_opengl [common] merge RenderBackend and ShaderBackend options (#3313) 2026-01-18 12:33:00 +01:00
renderer_vulkan [vulkan, qcom] Another set of fixes for QCOM stock driver (#3334) 2026-01-19 04:10:54 +01:00
texture_cache [video_core] Avoid false feedback loop barriers for render targets (#3338) 2026-01-19 03:05:14 +01:00
textures [fixup] Revert "[video_core] remove decoders.cpp template<A,B> spam (16 copies of the same function) (#3263)" (#3333) 2026-01-18 05:42:05 +01:00
vulkan_common [vulkan, qcom] Another set of fixes for QCOM stock driver (#3334) 2026-01-19 04:10:54 +01:00
cache_types.h RasterizerMemory: Add filtering for flushing/invalidation operations. 2023-01-01 16:43:58 -05:00
capture.h nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
cdma_pusher.cpp [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
cdma_pusher.h Port changes from Early Access 2025-04-04 03:40:46 +02:00
CMakeLists.txt [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
compatible_formats.cpp renderer_vulkan: Fix some missing view formats 2023-07-01 16:03:35 +03:00
compatible_formats.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
delayed_destruction_ring.h [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
dirty_flags.cpp Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong. 2022-10-10 20:59:57 +01:00
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 [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.h [video_core] Improve DMA logic and add an option to sync memory operations (#276) 2025-08-20 00:21:25 +02:00
fence_manager.h [video_core] Fix SignalFence and restore OpenGL rendering (#3224) 2025-12-31 01:17:24 +01:00
framebuffer_config.cpp video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05:00
framebuffer_config.h nvnflinger/gpu: implement blending 2024-02-09 09:20:53 -05: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, frontend] Reorganize graphics/CPU settings, saner defaults (#3233) 2025-12-30 18:03:09 +01:00
gpu.h [vk, opengl] defer checks to topmost call (avoid unnecessary call) (#40) 2025-07-13 03:40:48 +02:00
gpu_thread.cpp [video_core] Rework GPU Accuracy levels and remove Early Release Fences toggle (#3129) 2025-12-09 18:11:05 +01:00
gpu_thread.h nvnflinger/gpu: implement layer stack composition 2024-01-31 11:27:21 -05:00
guest_memory.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
invalidation_accumulator.h BufferBase: Don't ignore GPU pages. 2023-01-05 14:00:10 -05:00
macro.cpp [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
macro.h [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
memory_manager.cpp [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00
memory_manager.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +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: Implement memory manager page kind 2022-10-17 15:33:29 +08:00
query_cache.h VideoCore: Move Slot Vector to Common 2024-02-04 20:01:47 +01:00
rasterizer_download_area.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
rasterizer_interface.h [Rasterizer]: Implement "Skip CPU Inner Invalidation" hack 2025-07-09 04:23:22 +02:00
renderer_base.cpp general: Silence -Wshadow{,-uncaptured-local} warnings 2023-07-18 19:31:35 -04:00
renderer_base.h nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
shader_cache.cpp [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00
shader_cache.h [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00
shader_environment.cpp [am] Improve some error messages (#2996) 2025-11-10 23:32:50 +01:00
shader_environment.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
shader_notify.cpp general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
shader_notify.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
smaa_area_tex.h video_core: Integrate SMAA 2022-12-08 17:17:45 -05:00
smaa_search_tex.h video_core: Integrate SMAA 2022-12-08 17:17:45 -05:00
surface.cpp [vk] Exclude size equal alpha different copies from incompatible copy (#138) 2025-07-27 19:56:22 +02:00
surface.h [vk, opengl] macro-ify PixelSurface and SurfaceFormat lists (#3060) 2025-12-30 21:30:34 +01:00
transform_feedback.cpp [common] remove ranges polyfill (#2546) 2025-09-24 19:29:48 +02:00
transform_feedback.h Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
video_core.cpp [common] merge RenderBackend and ShaderBackend options (#3313) 2026-01-18 12:33:00 +01:00
video_core.h chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00