Changed depthClampEnable from VK_TRUE to VK_FALSE where it is not needed.
Depth clamp specific tests in builtin_var.fragdepth set as not supported for incompatible systems.
Affects:
dEQP-VK.device_group.*
dEQP-VK.api.object_management.*.graphics_pipeline
dEQP-VK.binding_model.shader_access.*
dEQP-VK.glsl.builtin_var.fragdepth.*
dEQP-VK.synchronization.smoke.*
dEQP-VK.renderpass.*
dEQP-VK.spirv_assembly.*
dEQP-VK.api.smoke.unused_resolve_attachment
dEQP-VK.wsi.android.incremental_present.*
dEQP-VK.memory.pipeline_barrier.*
Components: Vulkan
VK-GL-CTS issue: 1286
Change-Id: Ia869da75a74800543afb4f8fddd8bf5e8f7f4a7f
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
DE_NULL,
(VkPipelineRasterizationStateCreateFlags)0,
- VK_TRUE, // depthClampEnable
+ VK_FALSE, // depthClampEnable
VK_FALSE, // rasterizerDiscardEnable
VK_POLYGON_MODE_FILL,
VK_CULL_MODE_BACK_BIT,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // sType
DE_NULL, // pNext
0u, // flags
- VK_TRUE, // depthClampEnable
+ VK_FALSE, // depthClampEnable
VK_FALSE, // rasterizerDiscardEnable
VK_POLYGON_MODE_FILL, // polygonMode
VK_CULL_MODE_NONE, // cullMode
vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
DE_NULL,
(vk::VkPipelineRasterizationStateCreateFlags)0,
- VK_TRUE, // depthClipEnable
+ VK_FALSE, // depthClipEnable
VK_FALSE, // rasterizerDiscardEnable
vk::VK_POLYGON_MODE_FILL, // fillMode
vk::VK_CULL_MODE_NONE, // cullMode
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // sType
DE_NULL, // pNext
0u, // flags
- VK_TRUE, // depthClampEnable
+ VK_FALSE, // depthClampEnable
VK_FALSE, // rasterizerDiscardEnable
m_fillModeNonSolid ? VK_POLYGON_MODE_LINE : VK_POLYGON_MODE_FILL, // polygonMode
VK_CULL_MODE_NONE, // cullMode
DE_NULL,
0,
- VK_TRUE,
+ VK_FALSE,
VK_FALSE,
vk::VK_POLYGON_MODE_FILL,
vk::VK_CULL_MODE_NONE,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
DE_NULL,
(VkPipelineRasterizationStateCreateFlags)0u,
- VK_TRUE,
+ VK_FALSE,
VK_FALSE,
VK_POLYGON_MODE_FILL,
VK_CULL_MODE_NONE,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
DE_NULL,
(VkPipelineRasterizationStateCreateFlags)0u,
- VK_TRUE,
+ VK_FALSE,
VK_FALSE,
VK_POLYGON_MODE_FILL,
VK_CULL_MODE_NONE,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
DE_NULL,
(VkPipelineRasterizationStateCreateFlags)0u,
- VK_TRUE,
+ VK_FALSE,
VK_FALSE,
VK_POLYGON_MODE_FILL,
VK_CULL_MODE_NONE,
VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // sType
DE_NULL, // pNext
(VkPipelineRasterizationStateCreateFlags)0u,
- VK_TRUE, // depthClipEnable
+ VK_FALSE, // depthClipEnable
VK_FALSE, // rasterizerDiscardEnable
VK_POLYGON_MODE_FILL, // fillMode
VK_CULL_MODE_NONE, // cullMode
if (m_largeDepthEnable && !de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_EXT_depth_range_unrestricted"))
throw tcu::NotSupportedError("large_depth test variants require the VK_EXT_depth_range_unrestricted extension");
+
+ if (m_context.getDeviceFeatures().depthClamp == VK_FALSE && m_depthClampEnable)
+ throw tcu::NotSupportedError("Depthclamp is not supported.");
}
catch (const vk::Error& e)
{
rasterState.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
rasterState.pNext = DE_NULL;
rasterState.flags = 0;
- rasterState.depthClampEnable = VK_TRUE;
+ rasterState.depthClampEnable = VK_FALSE;
rasterState.rasterizerDiscardEnable = VK_FALSE;
rasterState.polygonMode = VK_POLYGON_MODE_FILL;
rasterState.cullMode = VK_CULL_MODE_NONE;
vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, // sType
DE_NULL, // pNext
(vk::VkPipelineRasterizationStateCreateFlags)0,
- DE_TRUE, // depthClipEnable
+ DE_FALSE, // depthClipEnable
DE_FALSE, // rasterizerDiscardEnable
vk::VK_POLYGON_MODE_FILL, // fillMode
vk::VK_CULL_MODE_NONE, // cullMode;
vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
DE_NULL,
0u,
- VK_TRUE,
+ VK_FALSE,
VK_FALSE,
vk::VK_POLYGON_MODE_FILL,
vk::VK_CULL_MODE_NONE,