aboutsummaryrefslogtreecommitdiff
path: root/layers/parameter_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-08-09 13:10:51 -0600
committerMark Lobodzinski <mark@lunarg.com>2016-08-15 16:48:04 -0600
commit1d731c47f7f3617d34fa19dbb467a53314b8554a (patch)
treea9d59d3867fee997a56c1ab3ced20704596b66d7 /layers/parameter_validation.cpp
parentc27c4c486479384fd50adb4997957e7db26665af (diff)
downloadusermoji-1d731c47f7f3617d34fa19dbb467a53314b8554a.tar.xz
layers: GH785, Validate rasterinfo->polygonMode
If fillModeNonSolid is not enabled, polygonMode cannot be set to POINT or LINE. Change-Id: I6cfdfac8f5c9ff7d27b94bf0aa80ae1249b0ce25
Diffstat (limited to 'layers/parameter_validation.cpp')
-rw-r--r--layers/parameter_validation.cpp10
1 files changed, 10 insertions, 0 deletions
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;