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
diff --git a/scripts/object_tracker_generator.py b/scripts/object_tracker_generator.py
index 50e19cc..4350fa3 100644
--- a/scripts/object_tracker_generator.py
+++ b/scripts/object_tracker_generator.py
@@ -937,7 +937,12 @@
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 01ed1bb..9c673fc 100644
--- a/scripts/parameter_validation_generator.py
+++ b/scripts/parameter_validation_generator.py
@@ -1200,7 +1200,13 @@
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<std::mutex> lock(global_lock);\n' % indent
for line in lines:
cmdDef += '\n'