diff options
Diffstat (limited to 'layers/parameter_validation_utils.cpp')
| -rw-r--r-- | layers/parameter_validation_utils.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index dec74caa..41a51acb 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -1209,6 +1209,24 @@ bool pv_vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO", i); } + if (pCreateInfos[i].pMultisampleState->sampleShadingEnable == VK_TRUE) { + if (!device_data->physical_device_features.sampleRateShading) { + skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, + __LINE__, VALIDATION_ERROR_10000620, LayerName, + "vkCreateGraphicsPipelines(): parameter " + "pCreateInfos[%d].pMultisampleState->sampleShadingEnable: %s", + i, validation_error_map[VALIDATION_ERROR_10000620]); + } + // TODO Add documentation issue about when minSampleShading must be in range and when it is ignored + // For now a "least noise" test *only* when sampleShadingEnable is VK_TRUE. + if (!in_inclusive_range(pCreateInfos[i].pMultisampleState->minSampleShading, 0.F, 1.0F)) { + skip |= log_msg( + report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + VALIDATION_ERROR_10000624, LayerName, + "vkCreateGraphicsPipelines(): parameter pCreateInfos[%d].pMultisampleState->minSampleShading: %s", + i, validation_error_map[VALIDATION_ERROR_10000624]); + } + } } // TODO: Conditional NULL check based on subpass depth/stencil attachment |
