dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltazero
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltasmall
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltaone
-dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltalarge
+dEQP-VK.draw.inverted_depth_ranges.depthclamp_depth_range_unrestricted
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltasmall
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltaone
-dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltalarge
+dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
dEQP-VK.compute.basic.empty_shader
dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
dEQP-VK.compute.basic.ubo_to_ssbo_single_group
const DeviceInterface& vk = m_context.getDeviceInterface();
const VkDevice device = m_context.getDevice();
+ if (m_params.depthClampEnable && !m_context.getDeviceFeatures().depthClamp)
+ TCU_THROW(NotSupportedError, "DepthClamp device feature not supported.");
+
+ if (params.minDepth > 1.0f ||
+ params.minDepth < 0.0f ||
+ params.maxDepth > 1.0f ||
+ params.maxDepth < 0.0f)
+ {
+ if (!de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_EXT_depth_range_unrestricted"))
+ throw tcu::NotSupportedError("Test variant with minDepth/maxDepth outside 0..1 requires the VK_EXT_depth_range_unrestricted extension");
+ }
+
// Vertex data
{
std::vector<Vec4> vertexData;
tcu::TestStatus InvertedDepthRangesTestInstance::iterate (void)
{
- // Check requirements
-
- if (m_params.depthClampEnable && !m_context.getDeviceFeatures().depthClamp)
- TCU_THROW(NotSupportedError, "DepthClamp device feature not supported.");
-
-
// Set up the viewport and draw
const VkViewport viewport =
float delta;
} delta[] =
{
- { "deltazero", 0.0f },
- { "deltasmall", 0.3f },
- { "deltaone", 1.0f },
- { "deltalarge", 2.7f },
+ { "deltazero", 0.0f },
+ { "deltasmall", 0.3f },
+ { "deltaone", 1.0f },
+
+ // Range > 1.0 requires VK_EXT_depth_range_unrestricted extension
+ { "depth_range_unrestricted", 2.7f },
};
for (int ndxDepthClamp = 0; ndxDepthClamp < DE_LENGTH_OF_ARRAY(depthClamp); ++ndxDepthClamp)
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltazero
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltasmall
dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltaone
-dEQP-VK.draw.inverted_depth_ranges.depthclamp_deltalarge
+dEQP-VK.draw.inverted_depth_ranges.depthclamp_depth_range_unrestricted
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltasmall
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltaone
-dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltalarge
+dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_depth_range_unrestricted
dEQP-VK.compute.basic.empty_shader
dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation
dEQP-VK.compute.basic.ubo_to_ssbo_single_group