summaryrefslogtreecommitdiff
path: root/src/input_common/sdl/sdl_impl.cpp
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-06-25 17:12:33 -0300
committerGravatar ReinUsesLisp2020-07-18 01:59:57 -0300
commita8a2526128970dbe47bc25c28b8d2bfb52ac4a26 (patch)
treee092baf3d1e1ea99baf805e2d9e1285810ded2d7 /src/input_common/sdl/sdl_impl.cpp
parentMerge pull request #4273 from ogniK5377/async-shaders-prod (diff)
downloadyuzu-a8a2526128970dbe47bc25c28b8d2bfb52ac4a26.tar.gz
yuzu-a8a2526128970dbe47bc25c28b8d2bfb52ac4a26.tar.xz
yuzu-a8a2526128970dbe47bc25c28b8d2bfb52ac4a26.zip
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.
Diffstat (limited to 'src/input_common/sdl/sdl_impl.cpp')
0 files changed, 0 insertions, 0 deletions