From 0cef5afd90808f9b0dbfac66c9a448b5150d96aa Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Fri, 28 Mar 2025 16:48:57 +0300 Subject: [PATCH] + --- vulkan/vImageManager.pas | 6 ++++++ vulkan/vRegs2Vulkan.pas | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/vulkan/vImageManager.pas b/vulkan/vImageManager.pas index 4741d31d..d2afe8f6 100644 --- a/vulkan/vImageManager.pas +++ b/vulkan/vImageManager.pas @@ -554,6 +554,12 @@ begin //downlift to image key_view.cformat:=FFormat; end; + VK_FORMAT_R16_UNORM: + if (key_view.cformat=VK_FORMAT_D16_UNORM) then + begin + //downlift to image + key_view.cformat:=FFormat; + end; else; end; diff --git a/vulkan/vRegs2Vulkan.pas b/vulkan/vRegs2Vulkan.pas index fd1c02da..c257a201 100644 --- a/vulkan/vRegs2Vulkan.pas +++ b/vulkan/vRegs2Vulkan.pas @@ -2069,7 +2069,17 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UNORM; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_UNORM; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_UNORM; - IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_UNORM; + + IMG_DATA_FORMAT_16 : + if (not (iu_storage in hint)) and + IsTileModeDepth(PT^.tiling_idx) then + begin + Result:=VK_FORMAT_D16_UNORM; + end else + begin + Result:=VK_FORMAT_R16_UNORM; + end; + IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_UNORM; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_UNORM; IMG_DATA_FORMAT_5_6_5 :Result:=VK_FORMAT_R5G6B5_UNORM_PACK16;