Add support for VK_KHR_fragment_shading_rate. Closes #2426

This commit is contained in:
baldurk committed 2022-02-04 16:45:15 +00:00
1 parent e58cb9a73b
commit 6ab4c1ad74
23 files changed
+639 -42

No files matched your search

@@ -909,6 +909,22 @@ void VulkanShaderCache::MakeGraphicsPipelineInfo(VkGraphicsPipelineCreateInfo &p
ret.pNext = &discardRects;
}
static VkPipelineFragmentShadingRateStateCreateInfoKHR shadingRate = {
VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,
};
if(pipeInfo.shadingRate.width != 1 || pipeInfo.shadingRate.height != 1 ||
pipeInfo.shadingRateCombiners[0] != VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR ||
pipeInfo.shadingRateCombiners[1] != VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR)
{
shadingRate.fragmentSize = pipeInfo.shadingRate;
shadingRate.combinerOps[0] = pipeInfo.shadingRateCombiners[0];
shadingRate.combinerOps[1] = pipeInfo.shadingRateCombiners[1];
shadingRate.pNext = ret.pNext;
ret.pNext = &shadingRate;
}
// never create derivatives
ret.flags &= ~VK_PIPELINE_CREATE_DERIVATIVE_BIT;