aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDustin Graves <dustin@lunarg.com>2016-04-25 15:54:16 -0600
committerDustin Graves <dustin@lunarg.com>2016-04-26 17:11:16 -0600
commit0fdb77e86a2673e042fa809171472aea4b6ac2da (patch)
tree84cf6468ed8ccf88befec585ca9dd8685e32b5ce
parent822e21f064f79a3b1956e7960277860d71382419 (diff)
downloadusermoji-0fdb77e86a2673e042fa809171472aea4b6ac2da.tar.xz
layers: Add missing compute stage sType check
The parameter_validation code generator was only generating sType checks for pointers to structures. There is one case where a non-pointer struct parameter needs to be validated: the VkComputePipelineCreateInfo::stage member of the vkCreateComputePipelines pCreateInfos parameter. The code generator has been updated to handle this case. Change-Id: I1e695fcc875574eae94912ceb6338428d7ed8b49
-rw-r--r--generator.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/generator.py b/generator.py
index 0bf6e95d..b5b96547 100644
--- a/generator.py
+++ b/generator.py
@@ -3488,10 +3488,15 @@ class ParamCheckerOutputGenerator(OutputGenerator):
enumRange = self.enumRanges[value.type]
usedLines.append('skipCall |= validate_ranged_enum_array(report_data, "{}", "{}", "{}", {}, {}, {pf}{}, {pf}{});\n'.format(funcName, valueDisplayName, value.type, enumRange[0], enumRange[1], lenParam.name, value.name, pf=valuePrefix))
# Non-pointer types
- elif value.type in self.validatedStructs:
- memberNamePrefix = '{}{}.'.format(valuePrefix, value.name)
- memberDisplayNamePrefix = '{}.'.format(valueDisplayName)
- usedLines.append(self.expandStructCode(self.validatedStructs[value.type], funcName, memberNamePrefix, memberDisplayNamePrefix, '', []))
+ elif (value.type in self.structTypes) or (value.type in self.validatedStructs):
+ if value.type in self.structTypes:
+ stype = self.structTypes[value.type]
+ usedLines.append('skipCall |= validate_struct_type(report_data, "{}", "{}", "{sv}", &({}{vn}), {sv}, false);\n'.format(
+ funcName, valueDisplayName, valuePrefix, vn=value.name, sv=stype.value))
+ if value.type in self.validatedStructs:
+ memberNamePrefix = '{}{}.'.format(valuePrefix, value.name)
+ memberDisplayNamePrefix = '{}.'.format(valueDisplayName)
+ usedLines.append(self.expandStructCode(self.validatedStructs[value.type], funcName, memberNamePrefix, memberDisplayNamePrefix, '', []))
elif value.type in self.handleTypes:
if not self.isHandleOptional(value, None):
usedLines.append('skipCall |= validate_required_handle(report_data, "{}", "{}", {}{});\n'.format(funcName, valueDisplayName, valuePrefix, value.name))