vkreplay: Make sure differences in ext and layers in trace/replay doesn't abort
Continue if certain expected errors are gotten for layer and ext property
queries on replay don't cause the replay to exit prematurely.
diff --git a/vktrace/vktrace_generate.py b/vktrace/vktrace_generate.py
index b7b3ce5..121d252 100755
--- a/vktrace/vktrace_generate.py
+++ b/vktrace/vktrace_generate.py
@@ -1769,6 +1769,7 @@
rbody.append(rr_string)
# handle return values or anything that needs to happen after the real_*(..) call
+ get_ext_layers_proto = ['GetGlobalExtensionProperties', 'GetPhysicalDeviceExtensionProperties','GetGlobalLayerProperties', 'GetPhysicalDeviceLayerProperties']
if 'DestroyDevice' in proto.name:
rbody.append(' if (replayResult == VK_SUCCESS)')
rbody.append(' {')
@@ -1779,6 +1780,11 @@
rbody.append(' m_objMapper.rm_from_devices_map(pPacket->device);')
rbody.append(' m_display->m_initedVK = false;')
rbody.append(' }')
+ elif proto.name in get_ext_layers_proto:
+ rbody.append(' if (replayResult == VK_ERROR_INVALID_LAYER || replayResult == VK_INCOMPLETE)')
+ rbody.append(' { // ignore errors caused by trace config != replay config')
+ rbody.append(' replayResult = VK_SUCCESS;')
+ rbody.append(' }')
elif 'DestroySwapchainKHR' in proto.name:
rbody.append(' if (replayResult == VK_SUCCESS)')
rbody.append(' {')