Add support for sampling VK_FORMAT_D16_UNORM
Test: dEQP-VK.*d16_unorm*
Bug: b/131246807
Change-Id: Ifaec74c1a2273af4585dd2423e87db4992cbf14e
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30531
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index 48ab75f..a74c43e 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -259,6 +259,7 @@
case VK_FORMAT_R32_SFLOAT:
case VK_FORMAT_R16_SFLOAT:
case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D16_UNORM:
c.y = Float4(0.0f);
case VK_FORMAT_R32G32_SFLOAT:
case VK_FORMAT_R16G16_SFLOAT:
diff --git a/src/Vulkan/VkFormat.cpp b/src/Vulkan/VkFormat.cpp
index c1851cf..8e40265 100644
--- a/src/Vulkan/VkFormat.cpp
+++ b/src/Vulkan/VkFormat.cpp
@@ -1708,6 +1708,7 @@
case VK_FORMAT_A2B10G10R10_UINT_PACK32:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
+ case VK_FORMAT_D16_UNORM:
return false;
default:
UNIMPLEMENTED("Format: %d", int(format));
@@ -1763,6 +1764,7 @@
case VK_FORMAT_A2B10G10R10_UINT_PACK32:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
+ case VK_FORMAT_D16_UNORM:
return false;
default:
UNIMPLEMENTED("Format: %d", int(format));
@@ -1818,6 +1820,7 @@
case VK_FORMAT_R16G16B16A16_SINT:
case VK_FORMAT_R16G16B16A16_UINT:
case VK_FORMAT_R16G16B16A16_SFLOAT:
+ case VK_FORMAT_D16_UNORM:
return true;
default:
UNIMPLEMENTED("Format: %d", int(format));
@@ -1928,6 +1931,7 @@
case VK_FORMAT_A2B10G10R10_UINT_PACK32:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D16_UNORM:
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
return false;
default:
@@ -1985,6 +1989,7 @@
case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
return component < 3;
case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D16_UNORM:
return false;
default:
UNIMPLEMENTED("Format: %d", int(format));