diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-08-16 20:28:10 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-08-16 20:28:10 +0200 |
commit | 537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd (patch) | |
tree | a18aa86f6e98ff375b97ceb3dad134ce4dcbfcbc /src | |
parent | Merge pull request #6868 from yzct12345/safe-threads-no-deadlocks (diff) | |
download | yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.gz yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.bz2 yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.lz yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.xz yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.tar.zst yuzu-537c6ac8fe13adb63d7cd76ef80f7336f8fa22dd.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_blit_screen.cpp | 4 | ||||
-rw-r--r-- | src/video_core/textures/decoders.cpp | 8 |
2 files changed, 3 insertions, 9 deletions
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp index 5c43b8acf..cb0580182 100644 --- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp +++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp @@ -159,11 +159,13 @@ VkSemaphore VKBlitScreen::Draw(const Tegra::FramebufferConfig& framebuffer, const VAddr framebuffer_addr = framebuffer.address + framebuffer.offset; const u8* const host_ptr = cpu_memory.GetPointer(framebuffer_addr); - const size_t size_bytes = GetSizeInBytes(framebuffer); // TODO(Rodrigo): Read this from HLE constexpr u32 block_height_log2 = 4; const u32 bytes_per_pixel = GetBytesPerPixel(framebuffer); + const u64 size_bytes{Tegra::Texture::CalculateSize(true, bytes_per_pixel, + framebuffer.stride, framebuffer.height, + 1, block_height_log2, 0)}; Tegra::Texture::UnswizzleTexture( mapped_span.subspan(image_offset, size_bytes), std::span(host_ptr, size_bytes), bytes_per_pixel, framebuffer.width, framebuffer.height, 1, block_height_log2, 0); 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 const u32 unswizzled_offset = slice * pitch * height + line * pitch + column * BYTES_PER_PIXEL; - if (const auto offset = (TO_LINEAR ? unswizzled_offset : swizzled_offset); - offset >= input.size()) { - // TODO(Rodrigo): This is an out of bounds access that should never happen. To - // avoid crashing the emulator, break. - ASSERT_MSG(false, "offset {} exceeds input size {}!", offset, input.size()); - break; - } - u8* const dst = &output[TO_LINEAR ? swizzled_offset : unswizzled_offset]; const u8* const src = &input[TO_LINEAR ? unswizzled_offset : swizzled_offset]; |