summaryrefslogtreecommitdiff
path: root/src/video_core/textures/decoders.cpp
diff options
context:
space:
mode:
authorGravatar ameerj2021-08-16 14:28:10 -0400
committerGravatar ameerj2021-08-16 14:28:10 -0400
commit537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd (patch)
treea18aa86f6e98ff375b97ceb3dad134ce4dcbfcbc /src/video_core/textures/decoders.cpp
parentMerge pull request #6868 from yzct12345/safe-threads-no-deadlocks (diff)
downloadyuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.gz
yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.xz
yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.zip
vk_blit_screen: Fix non-accelerated texture size calculation
Addresses the potential OOB access in UnswizzleTexture.
Diffstat (limited to 'src/video_core/textures/decoders.cpp')
-rw-r--r--src/video_core/textures/decoders.cpp8
1 files changed, 0 insertions, 8 deletions
diff --git a/src/video_core/textures/decoders.cpp b/src/video_core/textures/decoders.cpp
index c32ae956a..d2c4a7fcf 100644
--- a/src/video_core/textures/decoders.cpp
+++ b/src/video_core/textures/decoders.cpp
@@ -63,14 +63,6 @@ void SwizzleImpl(std::span<u8> output, std::span<const u8> input, u32 width, u32
63 const u32 unswizzled_offset = 63 const u32 unswizzled_offset =
64 slice * pitch * height + line * pitch + column * BYTES_PER_PIXEL; 64 slice * pitch * height + line * pitch + column * BYTES_PER_PIXEL;
65 65
66 if (const auto offset = (TO_LINEAR ? unswizzled_offset : swizzled_offset);
67 offset >= input.size()) {
68 // TODO(Rodrigo): This is an out of bounds access that should never happen. To
69 // avoid crashing the emulator, break.
70 ASSERT_MSG(false, "offset {} exceeds input size {}!", offset, input.size());
71 break;
72 }
73
74 u8* const dst = &output[TO_LINEAR ? swizzled_offset : unswizzled_offset]; 66 u8* const dst = &output[TO_LINEAR ? swizzled_offset : unswizzled_offset];
75 const u8* const src = &input[TO_LINEAR ? unswizzled_offset : swizzled_offset]; 67 const u8* const src = &input[TO_LINEAR ? unswizzled_offset : swizzled_offset];
76 68