Add support for sampling VK_FORMAT_D32_SFLOAT (without depth compare)
Bug: b/131246807
Test: dEQP-VK.*d32_sfloat*
Change-Id: I1ec0d8eefa7d46422e9b6dd85766f55ae3f21179
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30488
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index f7ae859..93ae7e3 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -257,6 +257,7 @@
break;
case VK_FORMAT_R32_SFLOAT:
case VK_FORMAT_R16_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT:
c.y = Float4(0.0f);
case VK_FORMAT_R32G32_SFLOAT:
case VK_FORMAT_R16G16_SFLOAT:
@@ -1887,6 +1888,7 @@
case VK_FORMAT_R32_SFLOAT:
case VK_FORMAT_R32_SINT:
case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_D32_SFLOAT:
// FIXME: Optimal shuffling?
c.x.x = *Pointer<Float>(buffer[f0] + index[0] * 4);
c.x.y = *Pointer<Float>(buffer[f1] + index[1] * 4);
diff --git a/src/Vulkan/VkFormat.cpp b/src/Vulkan/VkFormat.cpp
index 3f757eb..9ad6be3 100644
--- a/src/Vulkan/VkFormat.cpp
+++ b/src/Vulkan/VkFormat.cpp
@@ -1923,6 +1923,7 @@
case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
case VK_FORMAT_A2B10G10R10_UINT_PACK32:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
+ case VK_FORMAT_D32_SFLOAT:
return false;
default:
UNIMPLEMENTED("Format: %d", int(format));
@@ -1977,6 +1978,8 @@
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
return component < 3;
+ case VK_FORMAT_D32_SFLOAT:
+ return false;
default:
UNIMPLEMENTED("Format: %d", int(format));
}
@@ -1984,4 +1987,4 @@
return false;
}
-} // namespace vk
\ No newline at end of file
+} // namespace vk