eden/src/video_core
Zephyron 0c5659a198 video_core: Enhance Vulkan shader compilation with async threading system
Implement a robust asynchronous shader compilation system inspired by commit
1fd5fefcb17fe7fe65faed1c991fb41db782ab0f. This enhancement provides:

- True multi-threaded shader compilation with atomic status tracking
- Persistent disk caching for faster shader loading
- Command queue system for background processing
- Integration with Citron's scheduler for better resource management
- Parallel shader loading to reduce startup times
- Improved error handling and recovery mechanisms

These changes significantly reduce shader compilation stuttering and improve
overall performance when using asynchronous shaders. The implementation
maintains compatibility with Citron's existing architecture while adding
more robust threading capabilities.

Co-authored-by: boss.sfc <boss.sfc@citron-emu.org>
Co-committed-by: boss.sfc <boss.sfc@citron-emu.org>
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2025-04-12 23:39:24 -03:00
..
buffer_cache general: workarounds for SMMU syncing issues (#12749) 2024-02-27 15:42:15 +01:00
control video_core: make gpu context aware of rendering program 2024-02-26 11:16:14 -05:00
engines vk_rasterizer: flip scissor y on lower left origin mode (#13122) 2024-02-27 15:40:33 +01:00
host1x Port changes from Early Access 2025-04-04 03:40:46 +02:00
host_shaders video_core/vulkan: Improve texture format conversion handling 2025-04-11 17:05:41 -03:00
macro externals: Downgrade dynarmic to ae99622 and xbyak to 0d67fd15; modify ABI parameter handling in macro_jit_x64.cpp 2025-04-04 03:23:32 +02:00
query_cache Merge pull request #12499 from Kelebek1/time 2024-01-25 14:19:01 -05:00
renderer_null nvnflinger/gpu: implement applet capture 2024-02-09 09:20:53 -05:00
renderer_opengl build: fix linux compilation 2025-04-12 23:37:27 -03:00
renderer_vulkan video_core: Enhance Vulkan shader compilation with async threading system 2025-04-12 23:39:24 -03:00
texture_cache Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
textures Revert "HACK: Avoid swizzling and reuploading ASTC image every frame" 2023-08-06 14:55:05 -04:00
vulkan_common Update fmt to allow for v11 2025-04-10 01:11:22 +02: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 Port changes from Early Access 2025-04-04 03:40:46 +02:00
cdma_pusher.h Port changes from Early Access 2025-04-04 03:40:46 +02:00
CMakeLists.txt feat(vulkan): implement enhanced texture and shader management 2025-04-12 23:39:19 -03: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 general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04: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 general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
dma_pusher.cpp Unified torzu and sudachi friend.cpp + fix android build on dma_pusher 2025-04-04 03:40:49 +02:00
dma_pusher.h ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
fence_manager.h scope_exit: Make constexpr 2024-02-19 16:00:46 +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 video_core/opengl: Add FSR upscaling filter to the OpenGL renderer 2023-01-26 21:43:33 +01:00
fsr.h video_core/opengl: Add FSR upscaling filter to the OpenGL renderer 2023-01-26 21:43:33 +01:00
gpu.cpp Port changes from Early Access 2025-04-04 03:40:46 +02:00
gpu.h Port changes from Early Access 2025-04-04 03:40:46 +02:00
gpu_thread.cpp Port changes from Early Access 2025-04-04 03:40:46 +02: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
memory_manager.cpp MemoryManager: Reduce the page table size based on last big page address. 2024-02-01 13:00:36 +01:00
memory_manager.h Port changes from Early Access 2025-04-04 03:40:46 +02:00
precompiled_headers.h CMake: Consolidate common PCH headers 2022-11-30 18:30:30 -05: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 video_core: simplify accelerated surface fetch and crop handling between APIs 2024-01-31 11:27:20 -05: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 Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
shader_cache.h Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
shader_environment.cpp Fix typos in video_core 2024-01-07 22:44:55 +00:00
shader_environment.h shader_recompiler: use float image operations on load/store when required 2023-12-21 14:34:46 -05: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 texture_cache: avoid overestimation of ASTC texture sizes 2024-02-11 13:41:13 -05:00
surface.h texture_cache: avoid overestimation of ASTC texture sizes 2024-02-11 13:41:13 -05:00
transform_feedback.cpp Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
transform_feedback.h Remove memory allocations in some hot paths 2023-06-22 08:05:10 +01:00
video_core.cpp Removed telemetry and anonymized SCM (git) strings 2025-04-04 03:40:47 +02:00
video_core.h chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00