summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar bunnei2022-02-21 14:34:27 -0700
committerGravatar GitHub2022-02-21 14:34:27 -0700
commitefe50d88ec48b4782f6b9185b068cd497e8de322 (patch)
tree88dd81fb42e7ae3121cb75a15762bf4f16f277a8 /src/video_core/renderer_vulkan
parentMerge pull request #7919 from bunnei/phys-mem-updates (diff)
parentvulkan_device: fix missing format in ANV (diff)
downloadyuzu-efe50d88ec48b4782f6b9185b068cd497e8de322.tar.gz
yuzu-efe50d88ec48b4782f6b9185b068cd497e8de322.tar.xz
yuzu-efe50d88ec48b4782f6b9185b068cd497e8de322.zip
Merge pull request #7913 from voidanix/anv-fix
vulkan_device: fix missing format in ANV
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index 0ba56ff1e..0f62779de 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -554,10 +554,12 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im
554 }; 554 };
555} 555}
556 556
557[[nodiscard]] bool IsFormatFlipped(PixelFormat format) { 557[[nodiscard]] bool IsFormatFlipped(PixelFormat format, bool emulate_bgr565) {
558 switch (format) { 558 switch (format) {
559 case PixelFormat::A1B5G5R5_UNORM: 559 case PixelFormat::A1B5G5R5_UNORM:
560 return true; 560 return true;
561 case PixelFormat::B5G6R5_UNORM:
562 return emulate_bgr565;
561 default: 563 default:
562 return false; 564 return false;
563 } 565 }
@@ -1488,7 +1490,7 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI
1488 }; 1490 };
1489 if (!info.IsRenderTarget()) { 1491 if (!info.IsRenderTarget()) {
1490 swizzle = info.Swizzle(); 1492 swizzle = info.Swizzle();
1491 if (IsFormatFlipped(format)) { 1493 if (IsFormatFlipped(format, device->MustEmulateBGR565())) {
1492 std::ranges::transform(swizzle, swizzle.begin(), SwapBlueRed); 1494 std::ranges::transform(swizzle, swizzle.begin(), SwapBlueRed);
1493 } 1495 }
1494 if ((aspect_mask & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) != 0) { 1496 if ((aspect_mask & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) != 0) {