aboutsummaryrefslogtreecommitdiff
path: root/scripts/parameter_validation_generator.py
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-12-05 07:38:41 -0700
committerMark Lobodzinski <mark@lunarg.com>2016-12-12 10:51:15 -0700
commit69262028cde64d9e45c8052fdf0aeabce40c1355 (patch)
tree502ee44979835fd75473999f8a6d648b87fab048 /scripts/parameter_validation_generator.py
parentdba95552978423417af16ecf6e473d9773c7d76a (diff)
downloadusermoji-69262028cde64d9e45c8052fdf0aeabce40c1355.tar.xz
layers: Fix param_val codegen for arrays of structs
New extensions exposed a hole where arrays of structs were not getting deferenced correctly. Change-Id: Ia2474babee10f25c1446dfe58b5bd9778d3c9abc
Diffstat (limited to 'scripts/parameter_validation_generator.py')
-rw-r--r--scripts/parameter_validation_generator.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py
index 047405d9..7c78b5f6 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -801,8 +801,12 @@ class ParamCheckerOutputGenerator(OutputGenerator):
expr.append(indent + '{')
indent = self.incIndent(indent)
# Prefix for value name to display in error message
- memberNamePrefix = '{}{}[{}].'.format(prefix, value.name, indexName)
- memberDisplayNamePrefix = ('{}[%i].'.format(valueDisplayName), indexName)
+ if value.ispointer == 2:
+ memberNamePrefix = '{}{}[{}]->'.format(prefix, value.name, indexName)
+ memberDisplayNamePrefix = ('{}[%i]->'.format(valueDisplayName), indexName)
+ else:
+ memberNamePrefix = '{}{}[{}].'.format(prefix, value.name, indexName)
+ memberDisplayNamePrefix = ('{}[%i].'.format(valueDisplayName), indexName)
else:
memberNamePrefix = '{}{}->'.format(prefix, value.name)
memberDisplayNamePrefix = '{}->'.format(valueDisplayName)
@@ -821,6 +825,8 @@ class ParamCheckerOutputGenerator(OutputGenerator):
def genFuncBody(self, funcName, values, valuePrefix, displayNamePrefix, structTypeName):
lines = [] # Generated lines of code
unused = [] # Unused variable names
+ if funcName == "vkRegisterObjectsNVX":
+ indent = 0
for value in values:
usedLines = []
lenParam = None
@@ -925,6 +931,8 @@ class ParamCheckerOutputGenerator(OutputGenerator):
usedLines.append('skipCall |= validate_bool32(report_data, "{}", {ppp}"{}"{pps}, {}{});\n'.format(funcName, valueDisplayName, valuePrefix, value.name, **postProcSpec))
elif value.israngedenum:
enumRange = self.enumRanges[value.type]
+ if value.type == "VkObjectEntryTypeNVX":
+ garbage = 2
usedLines.append('skipCall |= validate_ranged_enum(report_data, "{}", {ppp}"{}"{pps}, "{}", {}, {}, {}{});\n'.format(funcName, valueDisplayName, value.type, enumRange[0], enumRange[1], valuePrefix, value.name, **postProcSpec))
#
# If this is a struct, see if it contains members that need to be checked