diff --git a/src/virtio/venus-protocol/vn_protocol_driver.h b/src/virtio/venus-protocol/vn_protocol_driver.h index ed7e52dbbad..e9488980be6 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver.h +++ b/src/virtio/venus-protocol/vn_protocol_driver.h @@ -1,4 +1,4 @@ -/* This file is generated by venus-protocol git-c1c8f6d9. */ +/* This file is generated by venus-protocol git-879064be. */ /* * Copyright 2020 Google LLC diff --git a/src/virtio/venus-protocol/vn_protocol_driver_defines.h b/src/virtio/venus-protocol/vn_protocol_driver_defines.h index 42716fa304f..a099189e092 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_defines.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_defines.h @@ -22,6 +22,7 @@ #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) +#define VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA ((VkStructureType)1000384007) typedef enum VkCommandTypeEXT { VK_COMMAND_TYPE_vkCreateInstance_EXT = 0, @@ -438,6 +439,12 @@ typedef struct VkRingMonitorInfoMESA { uint32_t maxReportingPeriodMicroseconds; } VkRingMonitorInfoMESA; +typedef struct VkRingPriorityInfoMESA { + VkStructureType sType; + const void* pNext; + int32_t priority; +} VkRingPriorityInfoMESA; + typedef struct VkMemoryResourcePropertiesMESA { VkStructureType sType; void* pNext; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_info.h b/src/virtio/venus-protocol/vn_protocol_driver_info.h index ef38cbea08d..06b670224ec 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_info.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_info.h @@ -135,7 +135,7 @@ static const struct vn_info_extension _vn_info_extensions[116] = { { "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, 1 }, + { "VK_MESA_venus_protocol", 385, 2 }, { "VK_VALVE_mutable_descriptor_type", 352, 1 }, }; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_transport.h b/src/virtio/venus-protocol/vn_protocol_driver_transport.h index f4a6869260e..53c35fcd5c0 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_transport.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_transport.h @@ -102,6 +102,59 @@ vn_encode_VkRingMonitorInfoMESA(struct vn_cs_encoder *enc, const VkRingMonitorIn vn_encode_VkRingMonitorInfoMESA_self(enc, val); } +/* struct VkRingPriorityInfoMESA chain */ + +static inline size_t +vn_sizeof_VkRingPriorityInfoMESA_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkRingPriorityInfoMESA_self(const VkRingPriorityInfoMESA *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_int32_t(&val->priority); + return size; +} + +static inline size_t +vn_sizeof_VkRingPriorityInfoMESA(const VkRingPriorityInfoMESA *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkRingPriorityInfoMESA_pnext(val->pNext); + size += vn_sizeof_VkRingPriorityInfoMESA_self(val); + + return size; +} + +static inline void +vn_encode_VkRingPriorityInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkRingPriorityInfoMESA_self(struct vn_cs_encoder *enc, const VkRingPriorityInfoMESA *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_int32_t(enc, &val->priority); +} + +static inline void +vn_encode_VkRingPriorityInfoMESA(struct vn_cs_encoder *enc, const VkRingPriorityInfoMESA *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA }); + vn_encode_VkRingPriorityInfoMESA_pnext(enc, val->pNext); + vn_encode_VkRingPriorityInfoMESA_self(enc, val); +} + /* struct VkRingCreateInfoMESA chain */ static inline size_t @@ -118,6 +171,12 @@ vn_sizeof_VkRingCreateInfoMESA_pnext(const void *val) size += vn_sizeof_VkRingCreateInfoMESA_pnext(pnext->pNext); size += vn_sizeof_VkRingMonitorInfoMESA_self((const VkRingMonitorInfoMESA *)pnext); return size; + case VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkRingCreateInfoMESA_pnext(pnext->pNext); + size += vn_sizeof_VkRingPriorityInfoMESA_self((const VkRingPriorityInfoMESA *)pnext); + return size; default: /* ignore unknown/unsupported struct */ break; @@ -173,6 +232,12 @@ vn_encode_VkRingCreateInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val) vn_encode_VkRingCreateInfoMESA_pnext(enc, pnext->pNext); vn_encode_VkRingMonitorInfoMESA_self(enc, (const VkRingMonitorInfoMESA *)pnext); return; + case VK_STRUCTURE_TYPE_RING_PRIORITY_INFO_MESA: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkRingCreateInfoMESA_pnext(enc, pnext->pNext); + vn_encode_VkRingPriorityInfoMESA_self(enc, (const VkRingPriorityInfoMESA *)pnext); + return; default: /* ignore unknown/unsupported struct */ break;