mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-07-04 23:31:19 +01:00
d8827b07b5
The following code is broken on AMD's proprietary GLSL compiler: ```glsl uint idx = ...; vec4 values = ...; float some_value = values[idx & 3]; ``` It index the wrong components, to fix this the following pessimized code is emitted when that bug is present: ```glsl uint idx = ...; vec4 values = ...; float some_value; if ((idx & 3) == 0) some_value = values.x; if ((idx & 3) == 1) some_value = values.y; if ((idx & 3) == 2) some_value = values.z; if ((idx & 3) == 3) some_value = values.w; ``` |
||
---|---|---|
.. | ||
debug_utils | ||
engines | ||
renderer_opengl | ||
renderer_vulkan | ||
shader | ||
textures | ||
CMakeLists.txt | ||
dma_pusher.cpp | ||
dma_pusher.h | ||
gpu.cpp | ||
gpu.h | ||
gpu_asynch.cpp | ||
gpu_asynch.h | ||
gpu_synch.cpp | ||
gpu_synch.h | ||
gpu_thread.cpp | ||
gpu_thread.h | ||
macro_interpreter.cpp | ||
macro_interpreter.h | ||
memory_manager.cpp | ||
memory_manager.h | ||
morton.cpp | ||
morton.h | ||
rasterizer_cache.cpp | ||
rasterizer_cache.h | ||
rasterizer_interface.h | ||
renderer_base.cpp | ||
renderer_base.h | ||
sampler_cache.cpp | ||
sampler_cache.h | ||
surface.cpp | ||
surface.h | ||
texture_cache.cpp | ||
texture_cache.h | ||
video_core.cpp | ||
video_core.h |