diff options
| author | John Zulauf <jzulauf@lunarg.com> | 2017-11-06 11:15:53 -0700 |
|---|---|---|
| committer | jzulauf-lunarg <32470354+jzulauf-lunarg@users.noreply.github.com> | 2017-11-30 13:02:21 -0700 |
| commit | 96a24419d8c7b3424798ff81fb9bfb06009419a0 (patch) | |
| tree | 735e37528541e9d2b5fceefe08185d9a0c72d5bb /layers/parameter_validation_utils.cpp | |
| parent | 11340ed2b58add8c7c19f27d699f59451df622d8 (diff) | |
| download | usermoji-96a24419d8c7b3424798ff81fb9bfb06009419a0.tar.xz | |
layers: Added PipelineMultiSample VUID checks
Added validation checks for:
VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784
(VALIDATION_ERROR_10000620)
If the sample rate shading feature is not enabled,
sampleShadingEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786
(VALIDATION_ERROR_10000624)
minSampleShading must be in the range [0,1]
Change-Id: I21cdaf99f8970df4f2e03026a4dae00746ad8386
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 |
