Merge "Add AHARDWAREBUFFER_FORMAT_B8G8R8A8_UNORM in android_format_is_yuv" into main
diff --git a/src/gfxstream/codegen/scripts/cereal/decoder.py b/src/gfxstream/codegen/scripts/cereal/decoder.py
index 1dbb1ec..7e931a1 100644
--- a/src/gfxstream/codegen/scripts/cereal/decoder.py
+++ b/src/gfxstream/codegen/scripts/cereal/decoder.py
@@ -29,6 +29,11 @@
     "vkDestroyShaderModule",
 ]
 
+GLOBAL_COMMANDS_WITHOUT_DISPATCH = [
+    "vkEnumerateInstanceExtensionProperties",
+    "vkEnumerateInstanceLayerProperties",
+]
+
 SNAPSHOT_API_CALL_INFO_VARNAME = "snapshotApiCallInfo"
 
 global_state_prefix = "m_state->on_"
@@ -338,7 +343,11 @@
         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 @@
                 .build();
         """)
 
-        self.cgen.stmt("auto vk = m_vk")
-
         self.cgen.line("switch (opcode)")
         self.cgen.beginBlock()  # switch stmt
 
diff --git a/src/gfxstream/codegen/scripts/cereal/subdecode.py b/src/gfxstream/codegen/scripts/cereal/subdecode.py
index a5f81ec..6780aa5 100644
--- a/src/gfxstream/codegen/scripts/cereal/subdecode.py
+++ b/src/gfxstream/codegen/scripts/cereal/subdecode.py
@@ -333,17 +333,17 @@
             "#define MAX_PACKET_LENGTH %s\n" % MAX_PACKET_LENGTH)
 
         self.module.appendImpl(
-            "size_t subDecode(VulkanMemReadingStream* readStream, VulkanDispatch* vk, void* boxed_dispatchHandle, void* dispatchHandle, VkDeviceSize dataSize, const void* pData, const VkDecoderContext& context)\n")
+            "size_t subDecode(VulkanMemReadingStream* readStream, VulkanDispatch* vk, void* boxed_dispatchHandle, void* dispatchHandle, VkDeviceSize subDecodeDataSize, const void* pSubDecodeData, const VkDecoderContext& context)\n")
 
         self.cgen.beginBlock()  # function body
 
         self.cgen.stmt("auto& metricsLogger = *context.metricsLogger")
         self.cgen.stmt("uint32_t count = 0")
-        self.cgen.stmt("unsigned char *buf = (unsigned char *)pData")
+        self.cgen.stmt("unsigned char *buf = (unsigned char *)pSubDecodeData")
         self.cgen.stmt("android::base::BumpPool* pool = readStream->pool()")
-        self.cgen.stmt("unsigned char *ptr = (unsigned char *)pData")
+        self.cgen.stmt("unsigned char *ptr = (unsigned char *)pSubDecodeData")
         self.cgen.stmt(
-            "const unsigned char* const end = (const unsigned char*)buf + dataSize")
+            "const unsigned char* const end = (const unsigned char*)buf + subDecodeDataSize")
         self.cgen.stmt(
             "VkDecoderGlobalState* globalstate = VkDecoderGlobalState::get()")