Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/doitsujin/dxvk.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Rebohle <philip.rebohle@tu-dortmund.de>2023-08-23 17:36:58 +0300
committerPhilip Rebohle <philip.rebohle@tu-dortmund.de>2023-08-24 14:12:07 +0300
commit6a5ed02db33cd9b5b8166c1679b14f85c9648281 (patch)
tree01102507f1dccb876c0b2cb36406025620462356
parent64828e2c6c1eef17a221888da203c43ac8a5ae15 (diff)
[dxgi] Use VK_FORMAT_A8_UNORM if available
-rw-r--r--src/dxgi/dxgi_format.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/dxgi/dxgi_format.cpp b/src/dxgi/dxgi_format.cpp
index 306f773e..996d3651 100644
--- a/src/dxgi/dxgi_format.cpp
+++ b/src/dxgi/dxgi_format.cpp
@@ -318,12 +318,10 @@ namespace dxvk {
VK_FORMAT_R8_UINT,
VK_IMAGE_ASPECT_COLOR_BIT },
// DXGI_FORMAT_A8_UNORM
- { VK_FORMAT_R8_UNORM,
- VK_FORMAT_UNDEFINED,
+ { VK_FORMAT_A8_UNORM_KHR,
VK_FORMAT_UNDEFINED,
- VK_IMAGE_ASPECT_COLOR_BIT, 0,
- { VK_COMPONENT_SWIZZLE_ZERO, VK_COMPONENT_SWIZZLE_ZERO,
- VK_COMPONENT_SWIZZLE_ZERO, VK_COMPONENT_SWIZZLE_R }},
+ VK_FORMAT_R8_UINT,
+ VK_IMAGE_ASPECT_COLOR_BIT, 0 },
// DXGI_FORMAT_R1_UNORM
{ }, // Unsupported
// DXGI_FORMAT_R9G9B9E5_SHAREDEXP
@@ -860,6 +858,16 @@ namespace dxvk {
RemapDepthFormat(DXGI_FORMAT_X24_TYPELESS_G8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT);
RemapDepthFormat(DXGI_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT);
}
+
+ // Map A8_UNORM to R8_UNORM with appropriate swizzles if necessary
+ if (!CheckImageFormatSupport(device, VK_FORMAT_A8_UNORM_KHR,
+ VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
+ VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT |
+ VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT)) {
+ RemapColorFormat(DXGI_FORMAT_A8_UNORM, VK_FORMAT_R8_UNORM,
+ { VK_COMPONENT_SWIZZLE_ZERO, VK_COMPONENT_SWIZZLE_ZERO,
+ VK_COMPONENT_SWIZZLE_ZERO, VK_COMPONENT_SWIZZLE_R });
+ }
}