--- /dev/null
+From 1dacfbbf8c8c5a5c48c38846e3d8cae88ef7fce1 Mon Sep 17 00:00:00 2001
+From: Yiwei Zhang <zzyiwei@chromium.org>
+Date: Fri, 7 Apr 2023 20:38:40 -0700
+Subject: [PATCH 1/2] vkr: adopt venus protocol release
+
+- sync to latest protocol
+- drop experimental feature query
+- drop 100000 experimental version
+
+Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
+---
+ .../venus-protocol/vn_protocol_renderer.h | 2 +-
+ .../vn_protocol_renderer_defines.h | 66 ++++------
+ .../vn_protocol_renderer_device_memory.h | 38 +++---
+ .../vn_protocol_renderer_dispatches.h | 26 ++--
+ .../vn_protocol_renderer_fence.h | 20 +--
+ .../vn_protocol_renderer_info.h | 6 +-
+ .../vn_protocol_renderer_semaphore.h | 66 +++++-----
+ .../vn_protocol_renderer_transport.h | 120 +++++-------------
+ src/venus/vkr_device_memory.c | 6 +-
+ src/venus/vkr_queue.c | 33 +++--
+ src/venus/vkr_transport.c | 51 ++------
+ 11 files changed, 161 insertions(+), 273 deletions(-)
+
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer.h b/src/venus/venus-protocol/vn_protocol_renderer.h
+index fc1bfd16..96098538 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer.h
+@@ -1,4 +1,4 @@
+-/* This file is generated by venus-protocol git-fbda104b. */
++/* This file is generated by venus-protocol git-36572e74. */
+
+ /*
+ * Copyright 2020 Google LLC
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_defines.h b/src/venus/venus-protocol/vn_protocol_renderer_defines.h
+index 13707c4a..fc82e417 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_defines.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_defines.h
+@@ -21,8 +21,8 @@
+ #define VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA ((VkStructureType)1000384000)
+ #define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_PROPERTIES_MESA ((VkStructureType)1000384001)
+ #define VK_STRUCTURE_TYPE_IMPORT_MEMORY_RESOURCE_INFO_MESA ((VkStructureType)1000384002)
+-#define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA ((VkStructureType)1000384003)
+-#define VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_100000_MESA ((VkStructureType)1000384004)
++#define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA ((VkStructureType)1000384003)
++#define VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_MESA ((VkStructureType)1000384004)
+ #define VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA ((VkStructureType)1000384005)
+ #define VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA ((VkStructureType)1000384006)
+
+@@ -353,13 +353,12 @@ typedef enum VkCommandTypeEXT {
+ VK_COMMAND_TYPE_vkNotifyRingMESA_EXT = 190,
+ VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT = 191,
+ VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT = 192,
+- VK_COMMAND_TYPE_vkResetFenceResource100000MESA_EXT = 244,
+- VK_COMMAND_TYPE_vkWaitSemaphoreResource100000MESA_EXT = 245,
+- VK_COMMAND_TYPE_vkImportSemaphoreResource100000MESA_EXT = 246,
+- VK_COMMAND_TYPE_vkSubmitVirtqueueSeqno100000MESA_EXT = 251,
+- VK_COMMAND_TYPE_vkWaitVirtqueueSeqno100000MESA_EXT = 252,
+- VK_COMMAND_TYPE_vkWaitRingSeqno100000MESA_EXT = 253,
+- VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT = 195,
++ VK_COMMAND_TYPE_vkResetFenceResourceMESA_EXT = 244,
++ VK_COMMAND_TYPE_vkWaitSemaphoreResourceMESA_EXT = 245,
++ VK_COMMAND_TYPE_vkImportSemaphoreResourceMESA_EXT = 246,
++ VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT = 251,
++ VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT = 252,
++ VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT = 253,
+ } VkCommandTypeEXT;
+
+ typedef enum VkCommandFlagBitsEXT {
+@@ -429,27 +428,18 @@ typedef struct VkImportMemoryResourceInfoMESA {
+ uint32_t resourceId;
+ } VkImportMemoryResourceInfoMESA;
+
+-typedef struct VkVenusExperimentalFeatures100000MESA {
+- VkBool32 memoryResourceAllocationSize;
+- VkBool32 globalFencing;
+- VkBool32 largeRing;
+- VkBool32 syncFdFencing;
+- VkBool32 asyncRoundtrip;
+- VkBool32 ringMonitoring;
+-} VkVenusExperimentalFeatures100000MESA;
+-
+-typedef struct VkMemoryResourceAllocationSizeProperties100000MESA {
++typedef struct VkMemoryResourceAllocationSizePropertiesMESA {
+ VkStructureType sType;
+ void* pNext;
+ uint64_t allocationSize;
+-} VkMemoryResourceAllocationSizeProperties100000MESA;
++} VkMemoryResourceAllocationSizePropertiesMESA;
+
+-typedef struct VkImportSemaphoreResourceInfo100000MESA {
++typedef struct VkImportSemaphoreResourceInfoMESA {
+ VkStructureType sType;
+ const void* pNext;
+ VkSemaphore semaphore;
+ uint32_t resourceId;
+-} VkImportSemaphoreResourceInfo100000MESA;
++} VkImportSemaphoreResourceInfoMESA;
+
+ typedef struct VkDeviceQueueTimelineInfoMESA {
+ VkStructureType sType;
+@@ -2242,40 +2232,35 @@ struct vn_command_vkGetMemoryResourcePropertiesMESA {
+ VkResult ret;
+ };
+
+-struct vn_command_vkResetFenceResource100000MESA {
++struct vn_command_vkResetFenceResourceMESA {
+ VkDevice device;
+ VkFence fence;
+ };
+
+-struct vn_command_vkWaitSemaphoreResource100000MESA {
++struct vn_command_vkWaitSemaphoreResourceMESA {
+ VkDevice device;
+ VkSemaphore semaphore;
+ };
+
+-struct vn_command_vkImportSemaphoreResource100000MESA {
++struct vn_command_vkImportSemaphoreResourceMESA {
+ VkDevice device;
+- const VkImportSemaphoreResourceInfo100000MESA* pImportSemaphoreResourceInfo;
++ const VkImportSemaphoreResourceInfoMESA* pImportSemaphoreResourceInfo;
+ };
+
+-struct vn_command_vkSubmitVirtqueueSeqno100000MESA {
++struct vn_command_vkSubmitVirtqueueSeqnoMESA {
+ uint64_t ring;
+ uint64_t seqno;
+ };
+
+-struct vn_command_vkWaitVirtqueueSeqno100000MESA {
++struct vn_command_vkWaitVirtqueueSeqnoMESA {
+ uint64_t seqno;
+ };
+
+-struct vn_command_vkWaitRingSeqno100000MESA {
++struct vn_command_vkWaitRingSeqnoMESA {
+ uint64_t ring;
+ uint64_t seqno;
+ };
+
+-struct vn_command_vkGetVenusExperimentalFeatureData100000MESA {
+- size_t* pDataSize;
+- void* pData;
+-};
+-
+ struct vn_dispatch_context {
+ void *data;
+ void (*debug_log)(struct vn_dispatch_context *ctx, const char *msg);
+@@ -2530,13 +2515,12 @@ struct vn_dispatch_context {
+ void (*dispatch_vkNotifyRingMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkNotifyRingMESA *args);
+ void (*dispatch_vkWriteRingExtraMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWriteRingExtraMESA *args);
+ void (*dispatch_vkGetMemoryResourcePropertiesMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkGetMemoryResourcePropertiesMESA *args);
+- void (*dispatch_vkResetFenceResource100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkResetFenceResource100000MESA *args);
+- void (*dispatch_vkWaitSemaphoreResource100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitSemaphoreResource100000MESA *args);
+- void (*dispatch_vkImportSemaphoreResource100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkImportSemaphoreResource100000MESA *args);
+- void (*dispatch_vkSubmitVirtqueueSeqno100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSubmitVirtqueueSeqno100000MESA *args);
+- void (*dispatch_vkWaitVirtqueueSeqno100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitVirtqueueSeqno100000MESA *args);
+- void (*dispatch_vkWaitRingSeqno100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitRingSeqno100000MESA *args);
+- void (*dispatch_vkGetVenusExperimentalFeatureData100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args);
++ void (*dispatch_vkResetFenceResourceMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkResetFenceResourceMESA *args);
++ void (*dispatch_vkWaitSemaphoreResourceMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitSemaphoreResourceMESA *args);
++ void (*dispatch_vkImportSemaphoreResourceMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkImportSemaphoreResourceMESA *args);
++ void (*dispatch_vkSubmitVirtqueueSeqnoMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSubmitVirtqueueSeqnoMESA *args);
++ void (*dispatch_vkWaitVirtqueueSeqnoMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitVirtqueueSeqnoMESA *args);
++ void (*dispatch_vkWaitRingSeqnoMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitRingSeqnoMESA *args);
+ };
+
+ static inline void vn_dispatch_debug_log(struct vn_dispatch_context *ctx, const char *format, ...)
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h b/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h
+index fc591a16..467a1675 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h
+@@ -561,33 +561,33 @@ vn_replace_VkDeviceMemoryOpaqueCaptureAddressInfo_handle(VkDeviceMemoryOpaqueCap
+ } while (pnext);
+ }
+
+-/* struct VkMemoryResourceAllocationSizeProperties100000MESA chain */
++/* struct VkMemoryResourceAllocationSizePropertiesMESA chain */
+
+ static inline void
+-vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(struct vn_cs_encoder *enc, const void *val)
++vn_encode_VkMemoryResourceAllocationSizePropertiesMESA_pnext(struct vn_cs_encoder *enc, const void *val)
+ {
+ /* no known/supported struct */
+ vn_encode_simple_pointer(enc, NULL);
+ }
+
+ static inline void
+-vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizeProperties100000MESA *val)
++vn_encode_VkMemoryResourceAllocationSizePropertiesMESA_self(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizePropertiesMESA *val)
+ {
+ /* skip val->{sType,pNext} */
+ vn_encode_uint64_t(enc, &val->allocationSize);
+ }
+
+ static inline void
+-vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizeProperties100000MESA *val)
++vn_encode_VkMemoryResourceAllocationSizePropertiesMESA(struct vn_cs_encoder *enc, const VkMemoryResourceAllocationSizePropertiesMESA *val)
+ {
+- assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA);
+- vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA });
+- vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext(enc, val->pNext);
+- vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self(enc, val);
++ assert(val->sType == VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA);
++ vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA });
++ vn_encode_VkMemoryResourceAllocationSizePropertiesMESA_pnext(enc, val->pNext);
++ vn_encode_VkMemoryResourceAllocationSizePropertiesMESA_self(enc, val);
+ }
+
+ static inline void *
+-vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial_temp(struct vn_cs_decoder *dec)
++vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_pnext_partial_temp(struct vn_cs_decoder *dec)
+ {
+ /* no known/supported struct */
+ if (vn_decode_simple_pointer(dec))
+@@ -596,23 +596,23 @@ vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial_temp(
+ }
+
+ static inline void
+-vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial_temp(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizeProperties100000MESA *val)
++vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_self_partial_temp(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizePropertiesMESA *val)
+ {
+ /* skip val->{sType,pNext} */
+ /* skip val->allocationSize */
+ }
+
+ static inline void
+-vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_partial_temp(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizeProperties100000MESA *val)
++vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_partial_temp(struct vn_cs_decoder *dec, VkMemoryResourceAllocationSizePropertiesMESA *val)
+ {
+ VkStructureType stype;
+ vn_decode_VkStructureType(dec, &stype);
+- if (stype != VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA)
++ if (stype != VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA)
+ vn_cs_decoder_set_fatal(dec);
+
+ val->sType = stype;
+- val->pNext = vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_pnext_partial_temp(dec);
+- vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial_temp(dec, val);
++ val->pNext = vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_pnext_partial_temp(dec);
++ vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_self_partial_temp(dec, val);
+ }
+
+ /* struct VkMemoryResourcePropertiesMESA chain */
+@@ -624,11 +624,11 @@ vn_encode_VkMemoryResourcePropertiesMESA_pnext(struct vn_cs_encoder *enc, const
+
+ while (pnext) {
+ switch ((int32_t)pnext->sType) {
+- case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:
++ case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA:
+ vn_encode_simple_pointer(enc, pnext);
+ vn_encode_VkStructureType(enc, &pnext->sType);
+ vn_encode_VkMemoryResourcePropertiesMESA_pnext(enc, pnext->pNext);
+- vn_encode_VkMemoryResourceAllocationSizeProperties100000MESA_self(enc, (const VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);
++ vn_encode_VkMemoryResourceAllocationSizePropertiesMESA_self(enc, (const VkMemoryResourceAllocationSizePropertiesMESA *)pnext);
+ return;
+ default:
+ /* ignore unknown/unsupported struct */
+@@ -667,12 +667,12 @@ vn_decode_VkMemoryResourcePropertiesMESA_pnext_partial_temp(struct vn_cs_decoder
+
+ vn_decode_VkStructureType(dec, &stype);
+ switch ((int32_t)stype) {
+- case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA:
+- pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkMemoryResourceAllocationSizeProperties100000MESA));
++ case VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA:
++ pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkMemoryResourceAllocationSizePropertiesMESA));
+ if (pnext) {
+ pnext->sType = stype;
+ pnext->pNext = vn_decode_VkMemoryResourcePropertiesMESA_pnext_partial_temp(dec);
+- vn_decode_VkMemoryResourceAllocationSizeProperties100000MESA_self_partial_temp(dec, (VkMemoryResourceAllocationSizeProperties100000MESA *)pnext);
++ vn_decode_VkMemoryResourceAllocationSizePropertiesMESA_self_partial_temp(dec, (VkMemoryResourceAllocationSizePropertiesMESA *)pnext);
+ }
+ break;
+ default:
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h b/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h
+index 369caffe..0b497c7c 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_dispatches.h
+@@ -279,13 +279,12 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type)
+ case VK_COMMAND_TYPE_vkNotifyRingMESA_EXT: return "vkNotifyRingMESA";
+ case VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT: return "vkWriteRingExtraMESA";
+ case VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT: return "vkGetMemoryResourcePropertiesMESA";
+- case VK_COMMAND_TYPE_vkResetFenceResource100000MESA_EXT: return "vkResetFenceResource100000MESA";
+- case VK_COMMAND_TYPE_vkWaitSemaphoreResource100000MESA_EXT: return "vkWaitSemaphoreResource100000MESA";
+- case VK_COMMAND_TYPE_vkImportSemaphoreResource100000MESA_EXT: return "vkImportSemaphoreResource100000MESA";
+- case VK_COMMAND_TYPE_vkSubmitVirtqueueSeqno100000MESA_EXT: return "vkSubmitVirtqueueSeqno100000MESA";
+- case VK_COMMAND_TYPE_vkWaitVirtqueueSeqno100000MESA_EXT: return "vkWaitVirtqueueSeqno100000MESA";
+- case VK_COMMAND_TYPE_vkWaitRingSeqno100000MESA_EXT: return "vkWaitRingSeqno100000MESA";
+- case VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT: return "vkGetVenusExperimentalFeatureData100000MESA";
++ case VK_COMMAND_TYPE_vkResetFenceResourceMESA_EXT: return "vkResetFenceResourceMESA";
++ case VK_COMMAND_TYPE_vkWaitSemaphoreResourceMESA_EXT: return "vkWaitSemaphoreResourceMESA";
++ case VK_COMMAND_TYPE_vkImportSemaphoreResourceMESA_EXT: return "vkImportSemaphoreResourceMESA";
++ case VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT: return "vkSubmitVirtqueueSeqnoMESA";
++ case VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT: return "vkWaitVirtqueueSeqnoMESA";
++ case VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT: return "vkWaitRingSeqnoMESA";
+ case VK_COMMAND_TYPE_vkGetDeviceProcAddr_EXT: return "vkGetDeviceProcAddr";
+ case VK_COMMAND_TYPE_vkGetInstanceProcAddr_EXT: return "vkGetInstanceProcAddr";
+ case VK_COMMAND_TYPE_vkMapMemory_EXT: return "vkMapMemory";
+@@ -538,13 +537,12 @@ static void (*const vn_dispatch_table[254])(struct vn_dispatch_context *ctx, VkC
+ [VK_COMMAND_TYPE_vkNotifyRingMESA_EXT] = vn_dispatch_vkNotifyRingMESA,
+ [VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT] = vn_dispatch_vkWriteRingExtraMESA,
+ [VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT] = vn_dispatch_vkGetMemoryResourcePropertiesMESA,
+- [VK_COMMAND_TYPE_vkResetFenceResource100000MESA_EXT] = vn_dispatch_vkResetFenceResource100000MESA,
+- [VK_COMMAND_TYPE_vkWaitSemaphoreResource100000MESA_EXT] = vn_dispatch_vkWaitSemaphoreResource100000MESA,
+- [VK_COMMAND_TYPE_vkImportSemaphoreResource100000MESA_EXT] = vn_dispatch_vkImportSemaphoreResource100000MESA,
+- [VK_COMMAND_TYPE_vkSubmitVirtqueueSeqno100000MESA_EXT] = vn_dispatch_vkSubmitVirtqueueSeqno100000MESA,
+- [VK_COMMAND_TYPE_vkWaitVirtqueueSeqno100000MESA_EXT] = vn_dispatch_vkWaitVirtqueueSeqno100000MESA,
+- [VK_COMMAND_TYPE_vkWaitRingSeqno100000MESA_EXT] = vn_dispatch_vkWaitRingSeqno100000MESA,
+- [VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT] = vn_dispatch_vkGetVenusExperimentalFeatureData100000MESA,
++ [VK_COMMAND_TYPE_vkResetFenceResourceMESA_EXT] = vn_dispatch_vkResetFenceResourceMESA,
++ [VK_COMMAND_TYPE_vkWaitSemaphoreResourceMESA_EXT] = vn_dispatch_vkWaitSemaphoreResourceMESA,
++ [VK_COMMAND_TYPE_vkImportSemaphoreResourceMESA_EXT] = vn_dispatch_vkImportSemaphoreResourceMESA,
++ [VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT] = vn_dispatch_vkSubmitVirtqueueSeqnoMESA,
++ [VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT] = vn_dispatch_vkWaitVirtqueueSeqnoMESA,
++ [VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT] = vn_dispatch_vkWaitRingSeqnoMESA,
+ };
+
+ static inline void vn_dispatch_command(struct vn_dispatch_context *ctx)
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_fence.h b/src/venus/venus-protocol/vn_protocol_renderer_fence.h
+index 4c354e8d..59fa8d69 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_fence.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_fence.h
+@@ -334,21 +334,21 @@ static inline void vn_encode_vkWaitForFences_reply(struct vn_cs_encoder *enc, co
+ /* skip args->timeout */
+ }
+
+-static inline void vn_decode_vkResetFenceResource100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkResetFenceResource100000MESA *args)
++static inline void vn_decode_vkResetFenceResourceMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkResetFenceResourceMESA *args)
+ {
+ vn_decode_VkDevice_lookup(dec, &args->device);
+ vn_decode_VkFence_lookup(dec, &args->fence);
+ }
+
+-static inline void vn_replace_vkResetFenceResource100000MESA_args_handle(struct vn_command_vkResetFenceResource100000MESA *args)
++static inline void vn_replace_vkResetFenceResourceMESA_args_handle(struct vn_command_vkResetFenceResourceMESA *args)
+ {
+ vn_replace_VkDevice_handle(&args->device);
+ vn_replace_VkFence_handle(&args->fence);
+ }
+
+-static inline void vn_encode_vkResetFenceResource100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkResetFenceResource100000MESA *args)
++static inline void vn_encode_vkResetFenceResourceMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkResetFenceResourceMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkResetFenceResource100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkResetFenceResourceMESA_EXT});
+
+ /* skip args->device */
+ /* skip args->fence */
+@@ -502,26 +502,26 @@ static inline void vn_dispatch_vkWaitForFences(struct vn_dispatch_context *ctx,
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkResetFenceResource100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkResetFenceResourceMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkResetFenceResource100000MESA args;
++ struct vn_command_vkResetFenceResourceMESA args;
+
+- if (!ctx->dispatch_vkResetFenceResource100000MESA) {
++ if (!ctx->dispatch_vkResetFenceResourceMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkResetFenceResource100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkResetFenceResourceMESA_args_temp(ctx->decoder, &args);
+ if (!args.device) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkResetFenceResource100000MESA(ctx, &args);
++ ctx->dispatch_vkResetFenceResourceMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkResetFenceResource100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkResetFenceResourceMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_info.h b/src/venus/venus-protocol/vn_protocol_renderer_info.h
+index 4bee03f0..a6517aba 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_info.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_info.h
+@@ -133,7 +133,7 @@ static const uint32_t _vn_info_extension_count = 102;
+ static const struct vn_info_extension _vn_info_extensions[102] = {
+ { "VK_EXT_4444_formats", 341, 1 },
+ { "VK_EXT_calibrated_timestamps", 185, 2 },
+- { "VK_EXT_command_serialization", 384, 0 },
++ { "VK_EXT_command_serialization", 384, 1 },
+ { "VK_EXT_conditional_rendering", 82, 2 },
+ { "VK_EXT_conservative_rasterization", 102, 1 },
+ { "VK_EXT_custom_border_color", 288, 12 },
+@@ -231,14 +231,14 @@ static const struct vn_info_extension _vn_info_extensions[102] = {
+ { "VK_KHR_variable_pointers", 121, 1 },
+ { "VK_KHR_vulkan_memory_model", 212, 3 },
+ { "VK_KHR_zero_initialize_workgroup_memory", 326, 1 },
+- { "VK_MESA_venus_protocol", 385, 100000 },
++ { "VK_MESA_venus_protocol", 385, 1 },
+ { "VK_VALVE_mutable_descriptor_type", 352, 1 },
+ };
+
+ static inline uint32_t
+ vn_info_wire_format_version(void)
+ {
+- return 0;
++ return 1;
+ }
+
+ static inline uint32_t
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h b/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h
+index 89299d77..37c0194c 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h
+@@ -314,10 +314,10 @@ vn_replace_VkSemaphoreSignalInfo_handle(VkSemaphoreSignalInfo *val)
+ } while (pnext);
+ }
+
+-/* struct VkImportSemaphoreResourceInfo100000MESA chain */
++/* struct VkImportSemaphoreResourceInfoMESA chain */
+
+ static inline void *
+-vn_decode_VkImportSemaphoreResourceInfo100000MESA_pnext_temp(struct vn_cs_decoder *dec)
++vn_decode_VkImportSemaphoreResourceInfoMESA_pnext_temp(struct vn_cs_decoder *dec)
+ {
+ /* no known/supported struct */
+ if (vn_decode_simple_pointer(dec))
+@@ -326,7 +326,7 @@ vn_decode_VkImportSemaphoreResourceInfo100000MESA_pnext_temp(struct vn_cs_decode
+ }
+
+ static inline void
+-vn_decode_VkImportSemaphoreResourceInfo100000MESA_self_temp(struct vn_cs_decoder *dec, VkImportSemaphoreResourceInfo100000MESA *val)
++vn_decode_VkImportSemaphoreResourceInfoMESA_self_temp(struct vn_cs_decoder *dec, VkImportSemaphoreResourceInfoMESA *val)
+ {
+ /* skip val->{sType,pNext} */
+ vn_decode_VkSemaphore_lookup(dec, &val->semaphore);
+@@ -334,20 +334,20 @@ vn_decode_VkImportSemaphoreResourceInfo100000MESA_self_temp(struct vn_cs_decoder
+ }
+
+ static inline void
+-vn_decode_VkImportSemaphoreResourceInfo100000MESA_temp(struct vn_cs_decoder *dec, VkImportSemaphoreResourceInfo100000MESA *val)
++vn_decode_VkImportSemaphoreResourceInfoMESA_temp(struct vn_cs_decoder *dec, VkImportSemaphoreResourceInfoMESA *val)
+ {
+ VkStructureType stype;
+ vn_decode_VkStructureType(dec, &stype);
+- if (stype != VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_100000_MESA)
++ if (stype != VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_MESA)
+ vn_cs_decoder_set_fatal(dec);
+
+ val->sType = stype;
+- val->pNext = vn_decode_VkImportSemaphoreResourceInfo100000MESA_pnext_temp(dec);
+- vn_decode_VkImportSemaphoreResourceInfo100000MESA_self_temp(dec, val);
++ val->pNext = vn_decode_VkImportSemaphoreResourceInfoMESA_pnext_temp(dec);
++ vn_decode_VkImportSemaphoreResourceInfoMESA_self_temp(dec, val);
+ }
+
+ static inline void
+-vn_replace_VkImportSemaphoreResourceInfo100000MESA_handle_self(VkImportSemaphoreResourceInfo100000MESA *val)
++vn_replace_VkImportSemaphoreResourceInfoMESA_handle_self(VkImportSemaphoreResourceInfoMESA *val)
+ {
+ /* skip val->sType */
+ /* skip val->pNext */
+@@ -356,14 +356,14 @@ vn_replace_VkImportSemaphoreResourceInfo100000MESA_handle_self(VkImportSemaphore
+ }
+
+ static inline void
+-vn_replace_VkImportSemaphoreResourceInfo100000MESA_handle(VkImportSemaphoreResourceInfo100000MESA *val)
++vn_replace_VkImportSemaphoreResourceInfoMESA_handle(VkImportSemaphoreResourceInfoMESA *val)
+ {
+ struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
+
+ do {
+ switch ((int32_t)pnext->sType) {
+- case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_100000_MESA:
+- vn_replace_VkImportSemaphoreResourceInfo100000MESA_handle_self((VkImportSemaphoreResourceInfo100000MESA *)pnext);
++ case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_MESA:
++ vn_replace_VkImportSemaphoreResourceInfoMESA_handle_self((VkImportSemaphoreResourceInfoMESA *)pnext);
+ break;
+ default:
+ /* ignore unknown/unsupported struct */
+@@ -539,49 +539,49 @@ static inline void vn_encode_vkSignalSemaphore_reply(struct vn_cs_encoder *enc,
+ /* skip args->pSignalInfo */
+ }
+
+-static inline void vn_decode_vkWaitSemaphoreResource100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitSemaphoreResource100000MESA *args)
++static inline void vn_decode_vkWaitSemaphoreResourceMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitSemaphoreResourceMESA *args)
+ {
+ vn_decode_VkDevice_lookup(dec, &args->device);
+ vn_decode_VkSemaphore_lookup(dec, &args->semaphore);
+ }
+
+-static inline void vn_replace_vkWaitSemaphoreResource100000MESA_args_handle(struct vn_command_vkWaitSemaphoreResource100000MESA *args)
++static inline void vn_replace_vkWaitSemaphoreResourceMESA_args_handle(struct vn_command_vkWaitSemaphoreResourceMESA *args)
+ {
+ vn_replace_VkDevice_handle(&args->device);
+ vn_replace_VkSemaphore_handle(&args->semaphore);
+ }
+
+-static inline void vn_encode_vkWaitSemaphoreResource100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitSemaphoreResource100000MESA *args)
++static inline void vn_encode_vkWaitSemaphoreResourceMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitSemaphoreResourceMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitSemaphoreResource100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitSemaphoreResourceMESA_EXT});
+
+ /* skip args->device */
+ /* skip args->semaphore */
+ }
+
+-static inline void vn_decode_vkImportSemaphoreResource100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkImportSemaphoreResource100000MESA *args)
++static inline void vn_decode_vkImportSemaphoreResourceMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkImportSemaphoreResourceMESA *args)
+ {
+ vn_decode_VkDevice_lookup(dec, &args->device);
+ if (vn_decode_simple_pointer(dec)) {
+ args->pImportSemaphoreResourceInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImportSemaphoreResourceInfo));
+ if (!args->pImportSemaphoreResourceInfo) return;
+- vn_decode_VkImportSemaphoreResourceInfo100000MESA_temp(dec, (VkImportSemaphoreResourceInfo100000MESA *)args->pImportSemaphoreResourceInfo);
++ vn_decode_VkImportSemaphoreResourceInfoMESA_temp(dec, (VkImportSemaphoreResourceInfoMESA *)args->pImportSemaphoreResourceInfo);
+ } else {
+ args->pImportSemaphoreResourceInfo = NULL;
+ vn_cs_decoder_set_fatal(dec);
+ }
+ }
+
+-static inline void vn_replace_vkImportSemaphoreResource100000MESA_args_handle(struct vn_command_vkImportSemaphoreResource100000MESA *args)
++static inline void vn_replace_vkImportSemaphoreResourceMESA_args_handle(struct vn_command_vkImportSemaphoreResourceMESA *args)
+ {
+ vn_replace_VkDevice_handle(&args->device);
+ if (args->pImportSemaphoreResourceInfo)
+- vn_replace_VkImportSemaphoreResourceInfo100000MESA_handle((VkImportSemaphoreResourceInfo100000MESA *)args->pImportSemaphoreResourceInfo);
++ vn_replace_VkImportSemaphoreResourceInfoMESA_handle((VkImportSemaphoreResourceInfoMESA *)args->pImportSemaphoreResourceInfo);
+ }
+
+-static inline void vn_encode_vkImportSemaphoreResource100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkImportSemaphoreResource100000MESA *args)
++static inline void vn_encode_vkImportSemaphoreResourceMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkImportSemaphoreResourceMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkImportSemaphoreResource100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkImportSemaphoreResourceMESA_EXT});
+
+ /* skip args->device */
+ /* skip args->pImportSemaphoreResourceInfo */
+@@ -735,50 +735,50 @@ static inline void vn_dispatch_vkSignalSemaphore(struct vn_dispatch_context *ctx
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkWaitSemaphoreResource100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkWaitSemaphoreResourceMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkWaitSemaphoreResource100000MESA args;
++ struct vn_command_vkWaitSemaphoreResourceMESA args;
+
+- if (!ctx->dispatch_vkWaitSemaphoreResource100000MESA) {
++ if (!ctx->dispatch_vkWaitSemaphoreResourceMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkWaitSemaphoreResource100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkWaitSemaphoreResourceMESA_args_temp(ctx->decoder, &args);
+ if (!args.device) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkWaitSemaphoreResource100000MESA(ctx, &args);
++ ctx->dispatch_vkWaitSemaphoreResourceMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkWaitSemaphoreResource100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkWaitSemaphoreResourceMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkImportSemaphoreResource100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkImportSemaphoreResourceMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkImportSemaphoreResource100000MESA args;
++ struct vn_command_vkImportSemaphoreResourceMESA args;
+
+- if (!ctx->dispatch_vkImportSemaphoreResource100000MESA) {
++ if (!ctx->dispatch_vkImportSemaphoreResourceMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkImportSemaphoreResource100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkImportSemaphoreResourceMESA_args_temp(ctx->decoder, &args);
+ if (!args.device) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkImportSemaphoreResource100000MESA(ctx, &args);
++ ctx->dispatch_vkImportSemaphoreResourceMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkImportSemaphoreResource100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkImportSemaphoreResourceMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+diff --git a/src/venus/venus-protocol/vn_protocol_renderer_transport.h b/src/venus/venus-protocol/vn_protocol_renderer_transport.h
+index 08f60f2d..a0ef419e 100644
+--- a/src/venus/venus-protocol/vn_protocol_renderer_transport.h
++++ b/src/venus/venus-protocol/vn_protocol_renderer_transport.h
+@@ -407,103 +407,63 @@ static inline void vn_encode_vkWriteRingExtraMESA_reply(struct vn_cs_encoder *en
+ /* skip args->value */
+ }
+
+-static inline void vn_decode_vkSubmitVirtqueueSeqno100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkSubmitVirtqueueSeqno100000MESA *args)
++static inline void vn_decode_vkSubmitVirtqueueSeqnoMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkSubmitVirtqueueSeqnoMESA *args)
+ {
+ vn_decode_uint64_t(dec, &args->ring);
+ vn_decode_uint64_t(dec, &args->seqno);
+ }
+
+-static inline void vn_replace_vkSubmitVirtqueueSeqno100000MESA_args_handle(struct vn_command_vkSubmitVirtqueueSeqno100000MESA *args)
++static inline void vn_replace_vkSubmitVirtqueueSeqnoMESA_args_handle(struct vn_command_vkSubmitVirtqueueSeqnoMESA *args)
+ {
+ /* skip args->ring */
+ /* skip args->seqno */
+ }
+
+-static inline void vn_encode_vkSubmitVirtqueueSeqno100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkSubmitVirtqueueSeqno100000MESA *args)
++static inline void vn_encode_vkSubmitVirtqueueSeqnoMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkSubmitVirtqueueSeqnoMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkSubmitVirtqueueSeqno100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkSubmitVirtqueueSeqnoMESA_EXT});
+
+ /* skip args->ring */
+ /* skip args->seqno */
+ }
+
+-static inline void vn_decode_vkWaitVirtqueueSeqno100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitVirtqueueSeqno100000MESA *args)
++static inline void vn_decode_vkWaitVirtqueueSeqnoMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitVirtqueueSeqnoMESA *args)
+ {
+ vn_decode_uint64_t(dec, &args->seqno);
+ }
+
+-static inline void vn_replace_vkWaitVirtqueueSeqno100000MESA_args_handle(struct vn_command_vkWaitVirtqueueSeqno100000MESA *args)
++static inline void vn_replace_vkWaitVirtqueueSeqnoMESA_args_handle(struct vn_command_vkWaitVirtqueueSeqnoMESA *args)
+ {
+ /* skip args->seqno */
+ }
+
+-static inline void vn_encode_vkWaitVirtqueueSeqno100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitVirtqueueSeqno100000MESA *args)
++static inline void vn_encode_vkWaitVirtqueueSeqnoMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitVirtqueueSeqnoMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitVirtqueueSeqno100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitVirtqueueSeqnoMESA_EXT});
+
+ /* skip args->seqno */
+ }
+
+-static inline void vn_decode_vkWaitRingSeqno100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitRingSeqno100000MESA *args)
++static inline void vn_decode_vkWaitRingSeqnoMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkWaitRingSeqnoMESA *args)
+ {
+ vn_decode_uint64_t(dec, &args->ring);
+ vn_decode_uint64_t(dec, &args->seqno);
+ }
+
+-static inline void vn_replace_vkWaitRingSeqno100000MESA_args_handle(struct vn_command_vkWaitRingSeqno100000MESA *args)
++static inline void vn_replace_vkWaitRingSeqnoMESA_args_handle(struct vn_command_vkWaitRingSeqnoMESA *args)
+ {
+ /* skip args->ring */
+ /* skip args->seqno */
+ }
+
+-static inline void vn_encode_vkWaitRingSeqno100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitRingSeqno100000MESA *args)
++static inline void vn_encode_vkWaitRingSeqnoMESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkWaitRingSeqnoMESA *args)
+ {
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitRingSeqno100000MESA_EXT});
++ vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkWaitRingSeqnoMESA_EXT});
+
+ /* skip args->ring */
+ /* skip args->seqno */
+ }
+
+-static inline void vn_decode_vkGetVenusExperimentalFeatureData100000MESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args)
+-{
+- if (vn_decode_simple_pointer(dec)) {
+- args->pDataSize = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDataSize));
+- if (!args->pDataSize) return;
+- vn_decode_size_t(dec, args->pDataSize);
+- } else {
+- args->pDataSize = NULL;
+- vn_cs_decoder_set_fatal(dec);
+- }
+- if (vn_peek_array_size(dec)) {
+- const size_t array_size = vn_decode_array_size(dec, (args->pDataSize ? *args->pDataSize : 0));
+- args->pData = vn_cs_decoder_alloc_temp(dec, array_size);
+- if (!args->pData) return;
+- } else {
+- vn_decode_array_size_unchecked(dec);
+- args->pData = NULL;
+- }
+-}
+-
+-static inline void vn_replace_vkGetVenusExperimentalFeatureData100000MESA_args_handle(struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args)
+-{
+- /* skip args->pDataSize */
+- /* skip args->pData */
+-}
+-
+-static inline void vn_encode_vkGetVenusExperimentalFeatureData100000MESA_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args)
+-{
+- vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT});
+-
+- if (vn_encode_simple_pointer(enc, args->pDataSize))
+- vn_encode_size_t(enc, args->pDataSize);
+- if (args->pData) {
+- vn_encode_array_size(enc, (args->pDataSize ? *args->pDataSize : 0));
+- vn_encode_blob_array(enc, args->pData, (args->pDataSize ? *args->pDataSize : 0));
+- } else {
+- vn_encode_array_size(enc, 0);
+- }
+-}
+-
+ static inline void vn_dispatch_vkSetReplyCommandStreamMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+ struct vn_command_vkSetReplyCommandStreamMESA args;
+@@ -644,82 +604,62 @@ static inline void vn_dispatch_vkWriteRingExtraMESA(struct vn_dispatch_context *
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkSubmitVirtqueueSeqno100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+-{
+- struct vn_command_vkSubmitVirtqueueSeqno100000MESA args;
+-
+- if (!ctx->dispatch_vkSubmitVirtqueueSeqno100000MESA) {
+- vn_cs_decoder_set_fatal(ctx->decoder);
+- return;
+- }
+-
+- vn_decode_vkSubmitVirtqueueSeqno100000MESA_args_temp(ctx->decoder, &args);
+-
+- if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkSubmitVirtqueueSeqno100000MESA(ctx, &args);
+-
+- if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkSubmitVirtqueueSeqno100000MESA_reply(ctx->encoder, &args);
+-
+- vn_cs_decoder_reset_temp_pool(ctx->decoder);
+-}
+-
+-static inline void vn_dispatch_vkWaitVirtqueueSeqno100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkSubmitVirtqueueSeqnoMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkWaitVirtqueueSeqno100000MESA args;
++ struct vn_command_vkSubmitVirtqueueSeqnoMESA args;
+
+- if (!ctx->dispatch_vkWaitVirtqueueSeqno100000MESA) {
++ if (!ctx->dispatch_vkSubmitVirtqueueSeqnoMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkWaitVirtqueueSeqno100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkSubmitVirtqueueSeqnoMESA_args_temp(ctx->decoder, &args);
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkWaitVirtqueueSeqno100000MESA(ctx, &args);
++ ctx->dispatch_vkSubmitVirtqueueSeqnoMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkWaitVirtqueueSeqno100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkSubmitVirtqueueSeqnoMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkWaitRingSeqno100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkWaitVirtqueueSeqnoMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkWaitRingSeqno100000MESA args;
++ struct vn_command_vkWaitVirtqueueSeqnoMESA args;
+
+- if (!ctx->dispatch_vkWaitRingSeqno100000MESA) {
++ if (!ctx->dispatch_vkWaitVirtqueueSeqnoMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkWaitRingSeqno100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkWaitVirtqueueSeqnoMESA_args_temp(ctx->decoder, &args);
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkWaitRingSeqno100000MESA(ctx, &args);
++ ctx->dispatch_vkWaitVirtqueueSeqnoMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkWaitRingSeqno100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkWaitVirtqueueSeqnoMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+
+-static inline void vn_dispatch_vkGetVenusExperimentalFeatureData100000MESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
++static inline void vn_dispatch_vkWaitRingSeqnoMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
+ {
+- struct vn_command_vkGetVenusExperimentalFeatureData100000MESA args;
++ struct vn_command_vkWaitRingSeqnoMESA args;
+
+- if (!ctx->dispatch_vkGetVenusExperimentalFeatureData100000MESA) {
++ if (!ctx->dispatch_vkWaitRingSeqnoMESA) {
+ vn_cs_decoder_set_fatal(ctx->decoder);
+ return;
+ }
+
+- vn_decode_vkGetVenusExperimentalFeatureData100000MESA_args_temp(ctx->decoder, &args);
++ vn_decode_vkWaitRingSeqnoMESA_args_temp(ctx->decoder, &args);
+
+ if (!vn_cs_decoder_get_fatal(ctx->decoder))
+- ctx->dispatch_vkGetVenusExperimentalFeatureData100000MESA(ctx, &args);
++ ctx->dispatch_vkWaitRingSeqnoMESA(ctx, &args);
+
+ if ((flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT) && !vn_cs_decoder_get_fatal(ctx->decoder))
+- vn_encode_vkGetVenusExperimentalFeatureData100000MESA_reply(ctx->encoder, &args);
++ vn_encode_vkWaitRingSeqnoMESA_reply(ctx->encoder, &args);
+
+ vn_cs_decoder_reset_temp_pool(ctx->decoder);
+ }
+diff --git a/src/venus/vkr_device_memory.c b/src/venus/vkr_device_memory.c
+index de797cfa..80e896a6 100644
+--- a/src/venus/vkr_device_memory.c
++++ b/src/venus/vkr_device_memory.c
+@@ -291,9 +291,9 @@ vkr_dispatch_vkGetMemoryResourcePropertiesMESA(
+
+ args->pMemoryResourceProperties->memoryTypeBits = mem_fd_props.memoryTypeBits;
+
+- VkMemoryResourceAllocationSizeProperties100000MESA *alloc_size_props = vkr_find_struct(
+- args->pMemoryResourceProperties->pNext,
+- VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA);
++ VkMemoryResourceAllocationSizePropertiesMESA *alloc_size_props =
++ vkr_find_struct(args->pMemoryResourceProperties->pNext,
++ VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_MESA);
+ if (alloc_size_props)
+ alloc_size_props->allocationSize = res->size;
+ }
+diff --git a/src/venus/vkr_queue.c b/src/venus/vkr_queue.c
+index cd38654a..803f1fb5 100644
+--- a/src/venus/vkr_queue.c
++++ b/src/venus/vkr_queue.c
+@@ -457,16 +457,15 @@ vkr_dispatch_vkWaitForFences(UNUSED struct vn_dispatch_context *dispatch,
+ }
+
+ static void
+-vkr_dispatch_vkResetFenceResource100000MESA(
+- struct vn_dispatch_context *dispatch,
+- struct vn_command_vkResetFenceResource100000MESA *args)
++vkr_dispatch_vkResetFenceResourceMESA(struct vn_dispatch_context *dispatch,
++ struct vn_command_vkResetFenceResourceMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ struct vkr_device *dev = vkr_device_from_handle(args->device);
+ struct vn_device_proc_table *vk = &dev->proc_table;
+ int fd = -1;
+
+- vn_replace_vkResetFenceResource100000MESA_args_handle(args);
++ vn_replace_vkResetFenceResourceMESA_args_handle(args);
+
+ const VkFenceGetFdInfoKHR info = {
+ .sType = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
+@@ -531,16 +530,16 @@ vkr_dispatch_vkSignalSemaphore(UNUSED struct vn_dispatch_context *dispatch,
+ }
+
+ static void
+-vkr_dispatch_vkWaitSemaphoreResource100000MESA(
++vkr_dispatch_vkWaitSemaphoreResourceMESA(
+ struct vn_dispatch_context *dispatch,
+- struct vn_command_vkWaitSemaphoreResource100000MESA *args)
++ struct vn_command_vkWaitSemaphoreResourceMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ struct vkr_device *dev = vkr_device_from_handle(args->device);
+ struct vn_device_proc_table *vk = &dev->proc_table;
+ int fd = -1;
+
+- vn_replace_vkWaitSemaphoreResource100000MESA_args_handle(args);
++ vn_replace_vkWaitSemaphoreResourceMESA_args_handle(args);
+
+ const VkSemaphoreGetFdInfoKHR info = {
+ .sType = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
+@@ -558,18 +557,17 @@ vkr_dispatch_vkWaitSemaphoreResource100000MESA(
+ }
+
+ static void
+-vkr_dispatch_vkImportSemaphoreResource100000MESA(
++vkr_dispatch_vkImportSemaphoreResourceMESA(
+ struct vn_dispatch_context *dispatch,
+- struct vn_command_vkImportSemaphoreResource100000MESA *args)
++ struct vn_command_vkImportSemaphoreResourceMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ struct vkr_device *dev = vkr_device_from_handle(args->device);
+ struct vn_device_proc_table *vk = &dev->proc_table;
+
+- vn_replace_vkImportSemaphoreResource100000MESA_args_handle(args);
++ vn_replace_vkImportSemaphoreResourceMESA_args_handle(args);
+
+- const VkImportSemaphoreResourceInfo100000MESA *res_info =
+- args->pImportSemaphoreResourceInfo;
++ const VkImportSemaphoreResourceInfoMESA *res_info = args->pImportSemaphoreResourceInfo;
+
+ /* resourceId 0 is for importing a signaled payload to sync_fd fence */
+ assert(!res_info->resourceId);
+@@ -658,8 +656,7 @@ vkr_context_init_fence_dispatch(struct vkr_context *ctx)
+ dispatch->dispatch_vkGetFenceStatus = vkr_dispatch_vkGetFenceStatus;
+ dispatch->dispatch_vkWaitForFences = vkr_dispatch_vkWaitForFences;
+
+- dispatch->dispatch_vkResetFenceResource100000MESA =
+- vkr_dispatch_vkResetFenceResource100000MESA;
++ dispatch->dispatch_vkResetFenceResourceMESA = vkr_dispatch_vkResetFenceResourceMESA;
+ }
+
+ void
+@@ -674,10 +671,10 @@ vkr_context_init_semaphore_dispatch(struct vkr_context *ctx)
+ dispatch->dispatch_vkWaitSemaphores = vkr_dispatch_vkWaitSemaphores;
+ dispatch->dispatch_vkSignalSemaphore = vkr_dispatch_vkSignalSemaphore;
+
+- dispatch->dispatch_vkWaitSemaphoreResource100000MESA =
+- vkr_dispatch_vkWaitSemaphoreResource100000MESA;
+- dispatch->dispatch_vkImportSemaphoreResource100000MESA =
+- vkr_dispatch_vkImportSemaphoreResource100000MESA;
++ dispatch->dispatch_vkWaitSemaphoreResourceMESA =
++ vkr_dispatch_vkWaitSemaphoreResourceMESA;
++ dispatch->dispatch_vkImportSemaphoreResourceMESA =
++ vkr_dispatch_vkImportSemaphoreResourceMESA;
+ }
+
+ void
+diff --git a/src/venus/vkr_transport.c b/src/venus/vkr_transport.c
+index c236dcd6..1ab6fe9d 100644
+--- a/src/venus/vkr_transport.c
++++ b/src/venus/vkr_transport.c
+@@ -293,9 +293,8 @@ vkr_dispatch_vkWriteRingExtraMESA(struct vn_dispatch_context *dispatch,
+ }
+
+ static void
+-vkr_dispatch_vkSubmitVirtqueueSeqno100000MESA(
+- struct vn_dispatch_context *dispatch,
+- struct vn_command_vkSubmitVirtqueueSeqno100000MESA *args)
++vkr_dispatch_vkSubmitVirtqueueSeqnoMESA(struct vn_dispatch_context *dispatch,
++ struct vn_command_vkSubmitVirtqueueSeqnoMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ struct vkr_ring *ring = lookup_ring(ctx, args->ring);
+@@ -308,9 +307,8 @@ vkr_dispatch_vkSubmitVirtqueueSeqno100000MESA(
+ }
+
+ static void
+-vkr_dispatch_vkWaitVirtqueueSeqno100000MESA(
+- struct vn_dispatch_context *dispatch,
+- struct vn_command_vkWaitVirtqueueSeqno100000MESA *args)
++vkr_dispatch_vkWaitVirtqueueSeqnoMESA(struct vn_dispatch_context *dispatch,
++ struct vn_command_vkWaitVirtqueueSeqnoMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ /* this is for -Wgnu-statement-expression-from-macro-expansion */
+@@ -323,8 +321,8 @@ vkr_dispatch_vkWaitVirtqueueSeqno100000MESA(
+ }
+
+ static void
+-vkr_dispatch_vkWaitRingSeqno100000MESA(struct vn_dispatch_context *dispatch,
+- struct vn_command_vkWaitRingSeqno100000MESA *args)
++vkr_dispatch_vkWaitRingSeqnoMESA(struct vn_dispatch_context *dispatch,
++ struct vn_command_vkWaitRingSeqnoMESA *args)
+ {
+ struct vkr_context *ctx = dispatch->data;
+ struct vkr_ring *ring = lookup_ring(ctx, args->ring);
+@@ -337,31 +335,6 @@ vkr_dispatch_vkWaitRingSeqno100000MESA(struct vn_dispatch_context *dispatch,
+ vkr_context_set_fatal(ctx);
+ }
+
+-static void
+-vkr_dispatch_vkGetVenusExperimentalFeatureData100000MESA(
+- UNUSED struct vn_dispatch_context *dispatch,
+- struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args)
+-{
+- const VkVenusExperimentalFeatures100000MESA features = {
+- .memoryResourceAllocationSize = VK_TRUE,
+- .globalFencing = VK_FALSE,
+- .largeRing = VK_TRUE,
+- .syncFdFencing = VK_TRUE,
+- .asyncRoundtrip = VK_TRUE,
+- .ringMonitoring = VK_TRUE,
+- };
+-
+- vn_replace_vkGetVenusExperimentalFeatureData100000MESA_args_handle(args);
+-
+- if (!args->pData) {
+- *args->pDataSize = sizeof(features);
+- return;
+- }
+-
+- *args->pDataSize = MIN2(*args->pDataSize, sizeof(features));
+- memcpy(args->pData, &features, *args->pDataSize);
+-}
+-
+ void
+ vkr_context_init_transport_dispatch(struct vkr_context *ctx)
+ {
+@@ -377,12 +350,8 @@ vkr_context_init_transport_dispatch(struct vkr_context *ctx)
+ dispatch->dispatch_vkDestroyRingMESA = vkr_dispatch_vkDestroyRingMESA;
+ dispatch->dispatch_vkNotifyRingMESA = vkr_dispatch_vkNotifyRingMESA;
+ dispatch->dispatch_vkWriteRingExtraMESA = vkr_dispatch_vkWriteRingExtraMESA;
+- dispatch->dispatch_vkSubmitVirtqueueSeqno100000MESA =
+- vkr_dispatch_vkSubmitVirtqueueSeqno100000MESA;
+- dispatch->dispatch_vkWaitVirtqueueSeqno100000MESA =
+- vkr_dispatch_vkWaitVirtqueueSeqno100000MESA;
+- dispatch->dispatch_vkWaitRingSeqno100000MESA = vkr_dispatch_vkWaitRingSeqno100000MESA;
+-
+- dispatch->dispatch_vkGetVenusExperimentalFeatureData100000MESA =
+- vkr_dispatch_vkGetVenusExperimentalFeatureData100000MESA;
++ dispatch->dispatch_vkSubmitVirtqueueSeqnoMESA =
++ vkr_dispatch_vkSubmitVirtqueueSeqnoMESA;
++ dispatch->dispatch_vkWaitVirtqueueSeqnoMESA = vkr_dispatch_vkWaitVirtqueueSeqnoMESA;
++ dispatch->dispatch_vkWaitRingSeqnoMESA = vkr_dispatch_vkWaitRingSeqnoMESA;
+ }
+--
+2.40.1.495.gc816e09b53d-goog
+