aboutsummaryrefslogtreecommitdiff
path: root/scripts/parameter_validation_generator.py
diff options
context:
space:
mode:
authorDustin Graves <dustin@lunarg.com>2017-03-30 15:42:16 -0600
committerDustin Graves <dustin@lunarg.com>2017-03-31 10:03:46 -0600
commitc3e2a36568511e9959391ab5950cb195b1c8d087 (patch)
tree252dc56edee85753bde298b0981ac3d3f442827a /scripts/parameter_validation_generator.py
parent66598948c622ec22ba7edfdc241448da2d51dc49 (diff)
downloadusermoji-c3e2a36568511e9959391ab5950cb195b1c8d087.tar.xz
layers: Fix WriteDescriptorSet::dstSet validation
VkWriteDescriptorSet::dstSet is ignored by vkCmdPushDescriptorSetsKHR, so the 'must not be a null handle' validation for dstSet has been moved from the code validating the VkWriteDescriptor struct members to the code validating the vkUpdateDescriptorSets function parameters. Change-Id: Ia6f11d33e4d57d4c848aab72cfd91da5d5a15a30
Diffstat (limited to 'scripts/parameter_validation_generator.py')
-rw-r--r--scripts/parameter_validation_generator.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index 1d0dec81..57e5551d 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -136,6 +136,8 @@ class ParamCheckerOutputGenerator(OutputGenerator):
'vkEnumerateDeviceExtensionsProperties',
'vkCreateDebugReportCallbackEXT',
'vkDebugReportMessageEXT']
+ # Structure fields to ignore
+ self.structMemberBlacklist = { 'VkWriteDescriptorSet' : ['dstSet'] }
# Validation conditions for some special case struct members that are conditionally validated
self.structMemberValidationConditions = { 'VkPipelineColorBlendStateCreateInfo' : { 'logicOp' : '{}logicOpEnable == VK_TRUE' } }
# Header version
@@ -360,6 +362,10 @@ class ParamCheckerOutputGenerator(OutputGenerator):
isoptional = False
if self.paramIsOptional(member) or (name == 'pNext') or (isstaticarray):
isoptional = True
+ # Determine if value should be ignored by code generation.
+ noautovalidity = False
+ if (member.attrib.get('noautovalidity') is not None) or ((typeName in self.structMemberBlacklist) and (name in self.structMemberBlacklist[typeName])):
+ noautovalidity = True
membersInfo.append(self.CommandParam(type=type, name=name,
ispointer=self.paramIsPointer(member),
isstaticarray=isstaticarray,
@@ -368,7 +374,7 @@ class ParamCheckerOutputGenerator(OutputGenerator):
isconst=True if 'const' in cdecl else False,
isoptional=isoptional,
iscount=iscount,
- noautovalidity=True if member.attrib.get('noautovalidity') is not None else False,
+ noautovalidity=noautovalidity,
len=self.getLen(member),
extstructs=member.attrib.get('validextensionstructs') if name == 'pNext' else None,
condition=conditions[name] if conditions and name in conditions else None,