From c284bde6b1c4a4af3ff651c70836f31deb7532a4 Mon Sep 17 00:00:00 2001 From: Jamie Madill Date: Wed, 8 Nov 2017 14:11:26 -0500 Subject: layers: Don't confuse VkResult/VkBool32 in generators. In some cases, the generator would return the special error for validation failed for functions that return a VkBool32. Fix this, and also some cases of initializing a VkBool32 with VkResult. Change-Id: Icc071e647f293848d62a922d492ed41dfc5a4be1 --- scripts/object_tracker_generator.py | 7 ++++++- scripts/parameter_validation_generator.py | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/object_tracker_generator.py b/scripts/object_tracker_generator.py index 50e19cc3..4350fa39 100644 --- a/scripts/object_tracker_generator.py +++ b/scripts/object_tracker_generator.py @@ -937,7 +937,12 @@ class ObjectTrackerOutputGenerator(OutputGenerator): API = cmdinfo.elem.attrib.get('name').replace('vk', dispatch_table, 1) # Put all this together for the final down-chain call if assignresult != '': - self.appendSection('command', ' if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;') + if resulttype.text == 'VkResult': + self.appendSection('command', ' if (skip) return VK_ERROR_VALIDATION_FAILED_EXT;') + elif resulttype.text == 'VkBool32': + self.appendSection('command', ' if (skip) return VK_FALSE;') + else: + raise Exception('Unknown result type ' + resulttype.text) else: self.appendSection('command', ' if (skip) return;') self.appendSection('command', ' ' + assignresult + API + '(' + paramstext + ');') diff --git a/scripts/parameter_validation_generator.py b/scripts/parameter_validation_generator.py index 01ed1bbf..9c673fc4 100644 --- a/scripts/parameter_validation_generator.py +++ b/scripts/parameter_validation_generator.py @@ -1200,7 +1200,13 @@ class ParameterValidationOutputGenerator(OutputGenerator): cmdDef += '%sbool skip = false;\n' % indent if not just_validate: if command.result != '': - cmdDef += indent + '%s result = VK_ERROR_VALIDATION_FAILED_EXT;\n' % command.result + if command.result == "VkResult": + cmdDef += indent + '%s result = VK_ERROR_VALIDATION_FAILED_EXT;\n' % command.result + elif command.result == "VkBool32": + cmdDef += indent + '%s result = VK_FALSE;\n' % command.result + else: + raise Exception("Unknown result type: " + command.result) + cmdDef += '%sstd::unique_lock lock(global_lock);\n' % indent for line in lines: cmdDef += '\n' -- cgit v1.2.3