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