From d9a71239b2aae14102d7ed1ebeb73b4421d69ff6 Mon Sep 17 00:00:00 2001 From: Yahan Zhou Date: Mon, 4 Dec 2023 13:08:33 -0800 Subject: [PATCH] Use old en/decoding for vkQueueSignalReleaseImage We accidentially changed the xml definition for vkQueueSignalReleaseImageANDROID. As a result it changed its encoding and decoding, which breaks Android emulator when launching old system images (API level 29~32). To fix this, we overwrite it with the old definition so that it keeps using the old encoding/decoding. Note that API 33+ uses vkQueueSignalReleaseImageANDROIDAsyncGOOGLE which does not have this problem. Reviewed-by: Aaron Ruby Acked-by: Yonggang Luo Acked-by: Adam Jackson Part-of: --- src/gfxstream/codegen/scripts/genvk.py | 5 +++-- src/gfxstream/codegen/xml/vk_gfxstream.xml | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/gfxstream/codegen/scripts/genvk.py b/src/gfxstream/codegen/scripts/genvk.py index dd6b93bcbab..f6dbc2951cb 100755 --- a/src/gfxstream/codegen/scripts/genvk.py +++ b/src/gfxstream/codegen/scripts/genvk.py @@ -1179,7 +1179,7 @@ if __name__ == '__main__': if name is not None: return name try: - return entry.find("proto").find("name") + return entry.find("proto").find("name").text except AttributeError: return None @@ -1198,6 +1198,7 @@ if __name__ == '__main__': if name not in originalEntryDict.keys(): treeEntries.append(entry) continue + print(f'Entry {entriesName}:{name}') originalEntry = originalEntryDict[name] @@ -1213,7 +1214,7 @@ if __name__ == '__main__': # Overwriting an existing entry. This happen for # VkNativeBufferANDROID - if entriesName == "types": + if entriesName == "types" or entriesName == "commands": originalEntry.clear() originalEntry.attrib = entry.attrib for child in entry: diff --git a/src/gfxstream/codegen/xml/vk_gfxstream.xml b/src/gfxstream/codegen/xml/vk_gfxstream.xml index cc2515b099e..469ca84cf83 100644 --- a/src/gfxstream/codegen/xml/vk_gfxstream.xml +++ b/src/gfxstream/codegen/xml/vk_gfxstream.xml @@ -230,6 +230,14 @@ specific entries. const VkSemaphore* pWaitSemaphores VkImage image + + VkResult vkQueueSignalReleaseImageANDROID + VkQueue queue + uint32_t waitSemaphoreCount + const VkSemaphore* pWaitSemaphores + VkImage image + int* pNativeFenceFd + void vkQueueFlushCommandsFromAuxMemoryGOOGLE VkQueue queue