Browse Source
[texture_cache, buffer_cache] Added TLS handling + changed command queue for GPU threading. (#3579)
[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>pull/3559/head
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
12 changed files with 264 additions and 70 deletions
-
7src/core/device_memory_manager.h
-
44src/core/device_memory_manager.inc
-
8src/video_core/buffer_cache/buffer_base.h
-
115src/video_core/buffer_cache/buffer_cache.h
-
15src/video_core/buffer_cache/buffer_cache_base.h
-
5src/video_core/gpu_thread.h
-
6src/video_core/renderer_opengl/gl_compute_pipeline.cpp
-
6src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
-
4src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
-
4src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
-
110src/video_core/texture_cache/texture_cache.h
-
10src/video_core/texture_cache/texture_cache_base.h
Write
Preview
Loading…
Cancel
Save
Reference in new issue