From 20083d1770a0766ce68016b3ca2fad482291a100 Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 28 Nov 2016 11:14:17 +1300 Subject: layers: Tweak PV generator to track newly introduced enums separately Within each feature block, we need to generate a helper value for 'all valid bits'. This worked fine; however, across features blocks an enum may be used -- for example, core eums used in extension functions. Previously, we'd clear out all the enums we know about at the feature boundary, which left various fields unvalidated. Signed-off-by: Chris Forbes --- scripts/parameter_validation_generator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'scripts/parameter_validation_generator.py') diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py index e0d215da..047405d9 100644 --- a/scripts/parameter_validation_generator.py +++ b/scripts/parameter_validation_generator.py @@ -150,6 +150,7 @@ class ParamCheckerOutputGenerator(OutputGenerator): self.enumRanges = dict() # Map of enum name to BEGIN/END range values self.flags = set() # Map of flags typenames self.flagBits = dict() # Map of flag bits typename to list of values + self.newFlags = set() # Map of flags typenames /defined in the current feature/ # Named tuples to store struct and command data self.StructType = namedtuple('StructType', ['name', 'value']) self.CommandParam = namedtuple('CommandParam', ['type', 'name', 'ispointer', 'isstaticarray', 'isbool', 'israngedenum', @@ -228,9 +229,7 @@ class ParamCheckerOutputGenerator(OutputGenerator): self.commands = [] self.structMembers = [] self.validatedStructs = dict() - self.enumRanges = dict() - self.flags = set() - self.flagBits = dict() + self.newFlags = set() def endFeature(self): # C-specific # Actually write the interface to the output file. @@ -250,7 +249,7 @@ class ParamCheckerOutputGenerator(OutputGenerator): write('const uint32_t GeneratedHeaderVersion = {};'.format(self.headerVersion), file=self.outFile) self.newline() # Write the declarations for the VkFlags values combining all flag bits - for flag in sorted(self.flags): + for flag in sorted(self.newFlags): flagBits = flag.replace('Flags', 'FlagBits') if flagBits in self.flagBits: bits = self.flagBits[flagBits] @@ -292,6 +291,7 @@ class ParamCheckerOutputGenerator(OutputGenerator): self.handleTypes.add(name) elif (category == 'bitmask'): self.flags.add(name) + self.newFlags.add(name) elif (category == 'define'): if name == 'VK_HEADER_VERSION': nameElem = typeElem.find('name') -- cgit v1.2.3