diff options
| author | Dustin Graves <dustin@lunarg.com> | 2016-04-25 15:54:16 -0600 |
|---|---|---|
| committer | Dustin Graves <dustin@lunarg.com> | 2016-04-26 17:11:16 -0600 |
| commit | 0fdb77e86a2673e042fa809171472aea4b6ac2da (patch) | |
| tree | 84cf6468ed8ccf88befec585ca9dd8685e32b5ce /generator.py | |
| parent | 822e21f064f79a3b1956e7960277860d71382419 (diff) | |
| download | usermoji-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
Diffstat (limited to 'generator.py')
| -rw-r--r-- | generator.py | 13 |
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)) |
