eden/src/video_core/texture_cache
lizzie c9c136bea7
[texture_cache, buffer_cache] Added TLS handling + changed command queue for GPU threading. (#3579)
(Merge of #3495 + #3108)

This PR works around to simplify math operations on hot pointers inside the access and requests to the cache of buffers and texture cache, removing previous logic of indirection and replaced by a PoD approach.

This will ensure less CPU times spended on the same request and flow directly into another chain of the render, in the same way, command queue currently uses an internal mutex that constraints the flow of data within the GPU threads, we're moving over a single command, I verified to keep using mutexes instead of internal mutex + mutex per operation, which are resolved by themselves.

In simplier words, this aims to improve performance on those games and devices where the waits for next orders on GPU commands were heavier than a single verification.

Co-Authored-by: @CamilleLaVey
Co-Authored-by: @Lizzie
Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3579
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2026-02-20 00:52:07 +01:00
..
accelerated_swizzle.cpp Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
accelerated_swizzle.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
decode_bc.cpp [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
decode_bc.h video_core: Fix buffer_row_length computation for linear compressed textures 2023-12-26 16:33:03 +02:00
descriptor_table.h Move to Clang Format 15 2023-01-29 17:49:42 -07:00
format_lookup_table.cpp add Z32, FLOAT, UINT, UINT, UINT, LINEAR to format lookup table 2023-10-09 02:13:17 +11:00
format_lookup_table.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
formatter.cpp [common] remove ranges polyfill (#2546) 2025-09-24 19:29:48 +02:00
formatter.h Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
image_base.cpp [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
image_base.h ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
image_info.cpp [video_core] Remove redundant check on image_view and image_view_info (#2891) 2025-10-30 03:45:43 +01:00
image_info.h Texture Cache: Fix untracking on GPU remap 2024-02-10 14:49:49 +01:00
image_view_base.cpp [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
image_view_base.h video_core: Add per-image anisotropy heuristics (format & mip count) 2023-06-15 18:19:32 +02:00
image_view_info.cpp [video_core] Remove redundant check on image_view and image_view_info (#2891) 2025-10-30 03:45:43 +01:00
image_view_info.h general: Convert source file copyright comments over to SPDX 2022-04-23 05:55:32 -04:00
render_targets.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
samples_helper.h Get out of render pass before query barriers, fix image names with samples > 1, remove image alias bit 2023-10-11 17:15:35 +01:00
texture_cache.cpp general: Format licenses as per SPDX guidelines 2022-10-06 21:00:54 +02:00
texture_cache.h [texture_cache, buffer_cache] Added TLS handling + changed command queue for GPU threading. (#3579) 2026-02-20 00:52:07 +01:00
texture_cache_base.h [texture_cache, buffer_cache] Added TLS handling + changed command queue for GPU threading. (#3579) 2026-02-20 00:52:07 +01:00
types.h [video_core] Increase MAX_MIP_LEVELS to 16 according to specs (#2965) 2025-11-07 01:42:52 +01:00
util.cpp [video_core] Increase MAX_MIP_LEVELS to 16 according to specs (#2965) 2025-11-07 01:42:52 +01:00
util.h [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00