summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar lat9nq2021-07-07 14:09:55 -0400
committerGravatar lat9nq2021-07-07 14:09:55 -0400
commit2f0e1f5d02fe42d90dfb58808618dc3a7213fee8 (patch)
tree2e85583b8a16643e1af684a34639d6f7ff2b323a /src
parentMerge pull request #6562 from Morph1984/flush-behavior (diff)
downloadyuzu-2f0e1f5d02fe42d90dfb58808618dc3a7213fee8.tar.gz
yuzu-2f0e1f5d02fe42d90dfb58808618dc3a7213fee8.tar.xz
yuzu-2f0e1f5d02fe42d90dfb58808618dc3a7213fee8.zip
util_shaders: Fix BindImageTexture
According to https://gitlab.freedesktop.org/mesa/mesa/-/issues/3820#note_753371 we need to set these to true for use with 3D textures. Fixes BOTW teleporting on RadeonSI and iris.
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/util_shaders.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/util_shaders.cpp b/src/video_core/renderer_opengl/util_shaders.cpp
index abaf1ee6a..8fb5be393 100644
--- a/src/video_core/renderer_opengl/util_shaders.cpp
+++ b/src/video_core/renderer_opengl/util_shaders.cpp
@@ -261,9 +261,9 @@ void UtilShaders::CopyBC4(Image& dst_image, Image& src_image, std::span<const Im
261 glUniform3ui(LOC_SRC_OFFSET, copy.src_offset.x, copy.src_offset.y, copy.src_offset.z); 261 glUniform3ui(LOC_SRC_OFFSET, copy.src_offset.x, copy.src_offset.y, copy.src_offset.z);
262 glUniform3ui(LOC_DST_OFFSET, copy.dst_offset.x, copy.dst_offset.y, copy.dst_offset.z); 262 glUniform3ui(LOC_DST_OFFSET, copy.dst_offset.x, copy.dst_offset.y, copy.dst_offset.z);
263 glBindImageTexture(BINDING_INPUT_IMAGE, src_image.StorageHandle(), 263 glBindImageTexture(BINDING_INPUT_IMAGE, src_image.StorageHandle(),
264 copy.src_subresource.base_level, GL_FALSE, 0, GL_READ_ONLY, GL_RG32UI); 264 copy.src_subresource.base_level, GL_TRUE, 0, GL_READ_ONLY, GL_RG32UI);
265 glBindImageTexture(BINDING_OUTPUT_IMAGE, dst_image.StorageHandle(), 265 glBindImageTexture(BINDING_OUTPUT_IMAGE, dst_image.StorageHandle(),
266 copy.dst_subresource.base_level, GL_FALSE, 0, GL_WRITE_ONLY, GL_RGBA8UI); 266 copy.dst_subresource.base_level, GL_TRUE, 0, GL_WRITE_ONLY, GL_RGBA8UI);
267 glDispatchCompute(copy.extent.width, copy.extent.height, copy.extent.depth); 267 glDispatchCompute(copy.extent.width, copy.extent.height, copy.extent.depth);
268 } 268 }
269 program_manager.RestoreGuestCompute(); 269 program_manager.RestoreGuestCompute();