aboutsummaryrefslogtreecommitdiff
path: root/scripts/parameter_validation_generator.py
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-11-28 11:14:17 +1300
committerChris Forbes <chrisforbes@google.com>2016-11-28 11:14:17 +1300
commit20083d1770a0766ce68016b3ca2fad482291a100 (patch)
tree10f2e104b6e837ada7cc6feb23632521a7ec6018 /scripts/parameter_validation_generator.py
parent23cc2186d10d953bfcdfcb9bb73757bc6316893e (diff)
downloadusermoji-20083d1770a0766ce68016b3ca2fad482291a100.tar.xz
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 <chrisforbes@google.com>
Diffstat (limited to 'scripts/parameter_validation_generator.py')
-rw-r--r--scripts/parameter_validation_generator.py8
1 files changed, 4 insertions, 4 deletions
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')