From 1d731c47f7f3617d34fa19dbb467a53314b8554a Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 9 Aug 2016 13:10:51 -0600 Subject: layers: GH785, Validate rasterinfo->polygonMode If fillModeNonSolid is not enabled, polygonMode cannot be set to POINT or LINE. Change-Id: I6cfdfac8f5c9ff7d27b94bf0aa80ae1249b0ce25 --- layers/parameter_validation.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'layers/parameter_validation.cpp') diff --git a/layers/parameter_validation.cpp b/layers/parameter_validation.cpp index 2b12366f..b93ded1e 100644 --- a/layers/parameter_validation.cpp +++ b/layers/parameter_validation.cpp @@ -2794,6 +2794,16 @@ bool PreCreateGraphicsPipelines(VkDevice device, const VkGraphicsPipelineCreateI "unrecognized enumerator"); return false; } + + if ((pCreateInfos->pRasterizationState->polygonMode != VK_POLYGON_MODE_FILL) && + (data->physical_device_features.fillModeNonSolid == false)) { + log_msg( + mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, + DEVICE_FEATURE, LayerName, + "vkCreateGraphicsPipelines parameter, VkPolygonMode pCreateInfos->pRasterizationState->polygonMode cannot be " + "VK_POLYGON_MODE_POINT or VK_POLYGON_MODE_LINE if VkPhysicalDeviceFeatures->fillModeNonSolid is false."); + return false; + } } int i = 0; -- cgit v1.2.3