yuzu/src/video_core
ReinUsesLisp a8a2526128 gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders
NV_shader_buffer_{load,store} is a 2010 extension that allows GL applications
to use what in Vulkan is known as physical pointers, this is basically C
pointers. On GLASM these is exposed through the LOAD/STORE/ATOM
instructions.

Up until now, assembly shaders were using NV_shader_storage_buffer_object.
These work fine, but have a (probably unintended) limitation that forces
us to have the limit of a single stage for all shader stages. In contrast,
with NV_shader_buffer_{load,store} we can pass GPU addresses to the
shader through local parameters (GLASM equivalent uniform constants, or
push constants on Vulkan). Local parameters have the advantage of being
per stage, allowing us to generate code without worrying about binding
overlaps.
2020-07-18 01:59:57 -03:00
..
buffer_cache configuration: implement per-game configurations (#4098) 2020-07-09 22:42:09 -04:00
engines video_core/textures: Add and use SwizzleSliceToVoxel, and minor style changes 2020-07-10 04:09:32 -03:00
macro Merge pull request #4369 from lioncash/hle-macro 2020-07-17 05:20:41 -04:00
renderer_opengl gl_arb_decompiler: Use NV_shader_buffer_{load,store} on assembly shaders 2020-07-18 01:59:57 -03:00
renderer_vulkan Merge pull request #4364 from lioncash/desig5 2020-07-18 00:12:43 -04:00
shader Fix style issues 2020-07-18 14:24:32 +10:00
texture_cache Merge pull request #4242 from ReinUsesLisp/maxwell-dma 2020-07-14 14:04:16 -04:00
textures Merge pull request #4242 from ReinUsesLisp/maxwell-dma 2020-07-14 14:04:16 -04:00
CMakeLists.txt async shaders 2020-07-17 14:24:57 +10:00
compatible_formats.cpp texture_cache: Test format compatibility before copying 2020-06-26 20:52:22 -03:00
compatible_formats.h video_core/compatible_formats: Table to test if two formats are legal to view or copy 2020-06-26 19:28:11 -03:00
dirty_flags.cpp DirtyFlags: relax need to set render_targets as dirty 2020-03-14 11:47:33 -04:00
dirty_flags.h DirtyFlags: relax need to set render_targets as dirty 2020-03-14 11:47:33 -04:00
dma_pusher.cpp DmaPusher: Remove dead code in step 2020-05-16 12:42:27 +10:00
dma_pusher.h DmaPusher: Remove dead code in step 2020-05-16 12:42:27 +10:00
fence_manager.h fixed_pipeline_state: explicitly use template keyword after 1f345ebe3a 2020-05-01 23:38:23 +00:00
gpu_asynch.cpp General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_asynch.h General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_synch.cpp General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_synch.h General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_thread.cpp General: Tune the priority of main emulation threads so they have higher priority than less important helper threads. 2020-06-27 11:36:09 -04:00
gpu_thread.h GPU: Implement Flush Requests for Async mode. 2020-04-22 11:36:17 -04:00
gpu.cpp async shaders 2020-07-17 14:24:57 +10:00
gpu.h async shaders 2020-07-17 14:24:57 +10:00
guest_driver.cpp gl_shader_cache: Rework shader cache and remove post-specializations 2020-03-09 18:40:06 -03:00
guest_driver.h gl_shader_cache: Rework shader cache and remove post-specializations 2020-03-09 18:40:06 -03:00
memory_manager.cpp memory_manager: Eliminate variable shadowing 2020-06-19 22:02:58 -04:00
memory_manager.h memory_manager: Eliminate variable shadowing 2020-06-19 22:02:58 -04:00
morton.cpp texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
morton.h renderer_opengl: Use block linear swizzling for CPU framebuffers 2019-08-21 02:17:14 -03:00
query_cache.h configuration: implement per-game configurations (#4098) 2020-07-09 22:42:09 -04:00
rasterizer_accelerated.cpp core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
rasterizer_accelerated.h core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
rasterizer_interface.h {maxwell_3d,buffer_cache}: Implement memory barriers using 3D registers 2020-04-28 02:18:12 -03:00
renderer_base.cpp configuration: implement per-game configurations (#4098) 2020-07-09 22:42:09 -04:00
renderer_base.h Frontend/GPU: Refactor context management 2020-03-24 21:03:42 -06:00
sampler_cache.cpp video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
sampler_cache.h video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
shader_cache.h shader_cache: Make use of std::erase_if 2020-07-14 15:49:15 -04:00
shader_notify.cpp Fix style issues 2020-07-18 14:24:32 +10:00
shader_notify.h async shaders 2020-07-17 14:24:57 +10:00
surface.cpp texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
surface.h texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
video_core.cpp configuration: implement per-game configurations (#4098) 2020-07-09 22:42:09 -04:00
video_core.h Frontend/GPU: Refactor context management 2020-03-24 21:03:42 -06:00