Citron/src/video_core/renderer_opengl
ReinUsesLisp 58b0ae84b5 renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore
This reworks how host<->device synchronization works on the Vulkan
backend. Instead of "protecting" resources with a fence and signalling
these as free when the fence is known to be signalled by the host GPU,
use timeline semaphores.

Vulkan timeline semaphores allow use to work on a subset of D3D12
fences. As far as we are concerned, timeline semaphores are a value set
by the host or the device that can be waited by either of them.

Taking advantange of this, we can have a monolithically increasing
atomic value for each submission to the graphics queue. Instead of
protecting resources with a fence, we simply store the current logical
tick (the atomic value stored in CPU memory). When we want to know if a
resource is free, it can be compared to the current GPU tick.

This greatly simplifies resource management code and the free status of
resources should have less false negatives.

To workaround bugs in validation layers, when these are attached there's
a thread waiting for timeline semaphores.
2020-09-19 01:46:37 -03:00
..
gl_arb_decompiler.cpp Merge pull request #4391 from lioncash/nrvo 2020-07-24 06:33:09 -07:00
gl_arb_decompiler.h gl_arb_decompiler: Implement an assembly shader decompiler 2020-06-11 22:12:07 -03:00
gl_buffer_cache.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_buffer_cache.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_device.cpp Merge pull request #4359 from ReinUsesLisp/clamp-shared 2020-07-21 04:51:05 -03:00
gl_device.h Merge pull request #4359 from ReinUsesLisp/clamp-shared 2020-07-21 04:51:05 -03:00
gl_fence_manager.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_fence_manager.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_framebuffer_cache.cpp gl_state: Remove completely 2020-02-28 17:56:35 -03:00
gl_framebuffer_cache.h gl_state: Remove completely 2020-02-28 17:56:35 -03:00
gl_query_cache.cpp renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore 2020-09-19 01:46:37 -03:00
gl_query_cache.h renderer_vulkan: Make unconditional use of VK_KHR_timeline_semaphore 2020-09-19 01:46:37 -03:00
gl_rasterizer.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_rasterizer.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_resource_manager.cpp gl_shader_util: Use std::string_view instead of star pointer 2020-08-23 21:23:54 -03:00
gl_resource_manager.h gl_shader_util: Use std::string_view instead of star pointer 2020-08-23 21:23:54 -03:00
gl_sampler_cache.cpp Create an "Advanced" tab in the graphics configuration tab and add anisotropic filtering levels. 2020-02-27 21:34:00 -05:00
gl_sampler_cache.h video_core: Add missing override specifiers 2019-07-07 13:38:39 -04:00
gl_shader_cache.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_shader_cache.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_shader_decompiler.cpp video_core: Enforce -Werror=switch 2020-09-16 17:48:01 -03:00
gl_shader_decompiler.h glsl: Squash constant buffers into a single SSBO when we hit the limit 2020-05-31 21:33:49 -03:00
gl_shader_disk_cache.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_shader_disk_cache.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_shader_manager.cpp gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders 2020-07-18 01:59:57 -03:00
gl_shader_manager.h gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders 2020-07-18 01:59:57 -03:00
gl_shader_util.cpp gl_shader_util: Use std::string_view instead of star pointer 2020-08-23 21:23:54 -03:00
gl_shader_util.h gl_shader_util: Use std::string_view instead of star pointer 2020-08-23 21:23:54 -03:00
gl_state_tracker.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_state_tracker.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_stream_buffer.cpp gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders 2020-07-18 01:59:57 -03:00
gl_stream_buffer.h gl_stream_buffer: Use InvalidateBufferData instead unmap and map 2020-06-24 02:36:14 -03:00
gl_texture_cache.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
gl_texture_cache.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
maxwell_to_gl.h video_core: Enforce -Werror=switch 2020-09-16 17:48:01 -03:00
renderer_opengl.cpp video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
renderer_opengl.h video_core: Remove all Core::System references in renderer 2020-09-06 05:28:48 -03:00
utils.cpp buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00
utils.h buffer_cache: Return handles instead of pointer to handles 2020-04-16 02:33:34 -03:00