diff --git a/src/vkcv/GraphicsPipelineManager.cpp b/src/vkcv/GraphicsPipelineManager.cpp index 870220f45b52c022f7c2d445a40e99ab4a6a4a2f..a461051f9784e7d95de7c15c965caa633d3bb35c 100644 --- a/src/vkcv/GraphicsPipelineManager.cpp +++ b/src/vkcv/GraphicsPipelineManager.cpp @@ -274,10 +274,13 @@ namespace vkcv static vk::PipelineRasterizationConservativeStateCreateInfoEXT conservativeRasterization; if (config.m_UseConservativeRasterization) { + const float overestimationSize = 1.0f - conservativeRasterProperties.primitiveOverestimationSize; + const float maxOverestimationSize = conservativeRasterProperties.maxExtraPrimitiveOverestimationSize; + conservativeRasterization = vk::PipelineRasterizationConservativeStateCreateInfoEXT( {}, vk::ConservativeRasterizationModeEXT::eOverestimate, - std::max(1 - conservativeRasterProperties.primitiveOverestimationSize, 0.f) + std::min(std::max(overestimationSize, 0.f), maxOverestimationSize) ); pipelineRasterizationStateCreateInfo.pNext = &conservativeRasterization;