diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-05-09 15:47:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-09 15:47:22 +0200 |
commit | 1f14b58315f807f62aeb31d0c23b859b501324b7 (patch) | |
tree | e5625e146ea3127cd3daf99d6abe3386af1de300 | |
parent | Merge pull request #10208 from german77/amiibo_joycon (diff) | |
parent | Texture Cache: Fix ASTC textures (diff) | |
download | yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar.gz yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar.bz2 yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar.lz yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar.xz yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.tar.zst yuzu-1f14b58315f807f62aeb31d0c23b859b501324b7.zip |
-rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 2 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 2 | ||||
-rw-r--r-- | src/video_core/texture_cache/util.cpp | 10 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index 052456f61..31118886f 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -231,7 +231,7 @@ void ApplySwizzle(GLuint handle, PixelFormat format, std::array<SwizzleSource, 4 [[nodiscard]] bool CanBeAccelerated(const TextureCacheRuntime& runtime, const VideoCommon::ImageInfo& info) { - if (IsPixelFormatASTC(info.format) && !runtime.HasNativeASTC()) { + if (IsPixelFormatASTC(info.format) && info.size.depth == 1 && !runtime.HasNativeASTC()) { return Settings::values.accelerate_astc.GetValue() && !Settings::values.async_astc.GetValue(); } diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 99dd1260a..9ca7751c5 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -1268,7 +1268,7 @@ Image::Image(TextureCacheRuntime& runtime_, const ImageInfo& info_, GPUVAddr gpu if (IsPixelFormatASTC(info.format) && !runtime->device.IsOptimalAstcSupported()) { if (Settings::values.async_astc.GetValue()) { flags |= VideoCommon::ImageFlagBits::AsynchronousDecode; - } else if (Settings::values.accelerate_astc.GetValue()) { + } else if (Settings::values.accelerate_astc.GetValue() && info.size.depth == 1) { flags |= VideoCommon::ImageFlagBits::AcceleratedUpload; } flags |= VideoCommon::ImageFlagBits::Converted; diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index de37db684..f1071aa23 100644 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -896,11 +896,11 @@ void ConvertImage(std::span<const u8> input, const ImageInfo& info, std::span<u8 ASSERT(copy.buffer_row_length == Common::AlignUp(mip_size.width, tile_size.width)); ASSERT(copy.buffer_image_height == Common::AlignUp(mip_size.height, tile_size.height)); if (IsPixelFormatASTC(info.format)) { - ASSERT(copy.image_extent.depth == 1); - Tegra::Texture::ASTC::Decompress(input.subspan(copy.buffer_offset), - copy.image_extent.width, copy.image_extent.height, - copy.image_subresource.num_layers, tile_size.width, - tile_size.height, output.subspan(output_offset)); + Tegra::Texture::ASTC::Decompress( + input.subspan(copy.buffer_offset), copy.image_extent.width, + copy.image_extent.height, + copy.image_subresource.num_layers * copy.image_extent.depth, tile_size.width, + tile_size.height, output.subspan(output_offset)); } else { DecompressBC4(input.subspan(copy.buffer_offset), copy.image_extent, output.subspan(output_offset)); |