diff --git a/src/gfxstream/codegen/scripts/cereal/decoder.py b/src/gfxstream/codegen/scripts/cereal/decoder.py index 1dbb1ec698d..7e931a16d3b 100644 --- a/src/gfxstream/codegen/scripts/cereal/decoder.py +++ b/src/gfxstream/codegen/scripts/cereal/decoder.py @@ -29,6 +29,11 @@ DELAYED_DECODER_DELETE_DICT_ENTRIES = [ "vkDestroyShaderModule", ] +GLOBAL_COMMANDS_WITHOUT_DISPATCH = [ + "vkEnumerateInstanceExtensionProperties", + "vkEnumerateInstanceLayerProperties", +] + SNAPSHOT_API_CALL_INFO_VARNAME = "snapshotApiCallInfo" global_state_prefix = "m_state->on_" @@ -338,7 +343,11 @@ def emit_dispatch_call(api, cgen): else: cgen.stmt("m_state->lock()") - cgen.vkApiCall(api, customPrefix="vk->", customParameters=customParams, \ + whichDispatch = "vk->" + if api.name in GLOBAL_COMMANDS_WITHOUT_DISPATCH: + whichDispatch = "m_vk->" + + cgen.vkApiCall(api, customPrefix=whichDispatch, customParameters=customParams, \ globalStatePrefix=global_state_prefix, checkForDeviceLost=True, checkForOutOfMemory=True) @@ -944,8 +953,6 @@ size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, .build(); """) - self.cgen.stmt("auto vk = m_vk") - self.cgen.line("switch (opcode)") self.cgen.beginBlock() # switch stmt