From 6f8220e5c96b036efa1731851b70bd1e3a090821 Mon Sep 17 00:00:00 2001 From: Dawn Han Date: Mon, 11 Jul 2022 19:25:29 +0000 Subject: [PATCH] Update venus-protocol to add extension `VK_VALVE_mutable_descriptor_type` Signed-off-by: Dawn Han Part-of: --- .../venus-protocol/vn_protocol_driver.h | 2 +- .../vn_protocol_driver_descriptor_pool.h | 16 ++ ...vn_protocol_driver_descriptor_set_layout.h | 16 ++ .../vn_protocol_driver_device.h | 183 ++++++++++++++++++ .../venus-protocol/vn_protocol_driver_info.h | 5 +- .../vn_protocol_driver_structs.h | 95 +++++++++ 6 files changed, 314 insertions(+), 3 deletions(-) diff --git a/src/virtio/venus-protocol/vn_protocol_driver.h b/src/virtio/venus-protocol/vn_protocol_driver.h index b534621e5cb..644cea963cc 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-6c35d9f3. */ +/* This file is generated by venus-protocol git-78c39b98. */ /* * Copyright 2020 Google LLC diff --git a/src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h b/src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h index de3a4abd447..158f4482dd9 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h @@ -100,6 +100,14 @@ vn_sizeof_VkDescriptorPoolCreateInfo_pnext(const void *val) size += vn_sizeof_VkDescriptorPoolCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkDescriptorPoolInlineUniformBlockCreateInfo_self((const VkDescriptorPoolInlineUniformBlockCreateInfo *)pnext); return size; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkDescriptorPoolCreateInfo_pnext(pnext->pNext); + size += vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_self((const VkMutableDescriptorTypeCreateInfoVALVE *)pnext); + return size; default: /* ignore unknown/unsupported struct */ break; @@ -155,6 +163,14 @@ vn_encode_VkDescriptorPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkDescriptorPoolCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkDescriptorPoolInlineUniformBlockCreateInfo_self(enc, (const VkDescriptorPoolInlineUniformBlockCreateInfo *)pnext); return; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkDescriptorPoolCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_self(enc, (const VkMutableDescriptorTypeCreateInfoVALVE *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_descriptor_set_layout.h b/src/virtio/venus-protocol/vn_protocol_driver_descriptor_set_layout.h index c0eba83a203..228af3d12ee 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_descriptor_set_layout.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_descriptor_set_layout.h @@ -130,6 +130,14 @@ vn_sizeof_VkDescriptorSetLayoutCreateInfo_pnext(const void *val) size += vn_sizeof_VkDescriptorSetLayoutCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkDescriptorSetLayoutBindingFlagsCreateInfo_self((const VkDescriptorSetLayoutBindingFlagsCreateInfo *)pnext); return size; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkDescriptorSetLayoutCreateInfo_pnext(pnext->pNext); + size += vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_self((const VkMutableDescriptorTypeCreateInfoVALVE *)pnext); + return size; default: /* ignore unknown/unsupported struct */ break; @@ -182,6 +190,14 @@ vn_encode_VkDescriptorSetLayoutCreateInfo_pnext(struct vn_cs_encoder *enc, const vn_encode_VkDescriptorSetLayoutCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkDescriptorSetLayoutBindingFlagsCreateInfo_self(enc, (const VkDescriptorSetLayoutBindingFlagsCreateInfo *)pnext); return; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkDescriptorSetLayoutCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_self(enc, (const VkMutableDescriptorTypeCreateInfoVALVE *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_device.h b/src/virtio/venus-protocol/vn_protocol_driver_device.h index 87002a348ef..ac7bd2ae9ab 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_device.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_device.h @@ -7655,6 +7655,137 @@ vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_partial(struct vn_cs vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(enc, val); } +/* struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE chain */ + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_VkBool32(&val->mutableDescriptorType); + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(val->pNext); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(val); + + return size; +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->mutableDescriptorType); +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE }); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(enc, val); +} + +static inline void +vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(struct vn_cs_decoder *dec, const void *val) +{ + /* no known/supported struct */ + if (vn_decode_simple_pointer(dec)) + assert(false); +} + +static inline void +vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->mutableDescriptorType); +} + +static inline void +vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE(struct vn_cs_decoder *dec, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE); + + assert(val->sType == stype); + vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext(dec, val->pNext); + vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(dec, val); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext_partial(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial(const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + /* skip val->mutableDescriptorType */ + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_partial(const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext_partial(val->pNext); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial(val); + + return size; +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext_partial(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->mutableDescriptorType */ +} + +static inline void +vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE }); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_pnext_partial(enc, val->pNext); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial(enc, val); +} + /* struct VkPhysicalDeviceSynchronization2Features chain */ static inline size_t @@ -8766,6 +8897,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val) size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self((const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; @@ -9162,6 +9301,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; @@ -9431,6 +9578,10 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_decoder *dec, const void vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(dec, (VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); + vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(dec, (VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceSynchronization2Features_self(dec, (VkPhysicalDeviceSynchronization2Features *)pnext); @@ -9798,6 +9949,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val) size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial((const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; @@ -10194,6 +10353,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, con vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext); vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self_partial(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self_partial(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; @@ -10675,6 +10842,14 @@ vn_sizeof_VkDeviceCreateInfo_pnext(const void *val) size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceShaderTerminateInvocationFeatures_self((const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self((const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; @@ -11124,6 +11299,14 @@ vn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceShaderTerminateInvocationFeatures_self(enc, (const VkPhysicalDeviceShaderTerminateInvocationFeatures *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + if (!vn_cs_renderer_protocol_has_extension(352 /* VK_VALVE_mutable_descriptor_type */)) + break; + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE_self(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */)) break; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_info.h b/src/virtio/venus-protocol/vn_protocol_driver_info.h index 7742df0a4af..52e8df8cbaa 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_info.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_info.h @@ -19,8 +19,8 @@ struct vn_info_extension { }; /* sorted by extension names for bsearch */ -static const uint32_t _vn_info_extension_count = 90; -static const struct vn_info_extension _vn_info_extensions[90] = { +static const uint32_t _vn_info_extension_count = 91; +static const struct vn_info_extension _vn_info_extensions[91] = { { "VK_EXT_4444_formats", 341, 1 }, { "VK_EXT_calibrated_timestamps", 185, 2 }, { "VK_EXT_command_serialization", 384, 0 }, @@ -111,6 +111,7 @@ static const struct vn_info_extension _vn_info_extensions[90] = { { "VK_KHR_vulkan_memory_model", 212, 3 }, { "VK_KHR_zero_initialize_workgroup_memory", 326, 1 }, { "VK_MESA_venus_protocol", 385, 100000 }, + { "VK_VALVE_mutable_descriptor_type", 352, 1 }, }; static inline uint32_t diff --git a/src/virtio/venus-protocol/vn_protocol_driver_structs.h b/src/virtio/venus-protocol/vn_protocol_driver_structs.h index 2e0cbf0d797..6c0545dd75f 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_structs.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_structs.h @@ -785,6 +785,101 @@ vn_encode_VkClearColorValue(struct vn_cs_encoder *enc, const VkClearColorValue * vn_encode_VkClearColorValue_tag(enc, val, 2); /* union with default tag */ } +/* struct VkMutableDescriptorTypeListVALVE */ + +static inline size_t +vn_sizeof_VkMutableDescriptorTypeListVALVE(const VkMutableDescriptorTypeListVALVE *val) +{ + size_t size = 0; + size += vn_sizeof_uint32_t(&val->descriptorTypeCount); + if (val->pDescriptorTypes) { + size += vn_sizeof_array_size(val->descriptorTypeCount); + size += vn_sizeof_VkDescriptorType_array(val->pDescriptorTypes, val->descriptorTypeCount); + } else { + size += vn_sizeof_array_size(0); + } + return size; +} + +static inline void +vn_encode_VkMutableDescriptorTypeListVALVE(struct vn_cs_encoder *enc, const VkMutableDescriptorTypeListVALVE *val) +{ + vn_encode_uint32_t(enc, &val->descriptorTypeCount); + if (val->pDescriptorTypes) { + vn_encode_array_size(enc, val->descriptorTypeCount); + vn_encode_VkDescriptorType_array(enc, val->pDescriptorTypes, val->descriptorTypeCount); + } else { + vn_encode_array_size(enc, 0); + } +} + +/* struct VkMutableDescriptorTypeCreateInfoVALVE chain */ + +static inline size_t +vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_self(const VkMutableDescriptorTypeCreateInfoVALVE *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_uint32_t(&val->mutableDescriptorTypeListCount); + if (val->pMutableDescriptorTypeLists) { + size += vn_sizeof_array_size(val->mutableDescriptorTypeListCount); + for (uint32_t i = 0; i < val->mutableDescriptorTypeListCount; i++) + size += vn_sizeof_VkMutableDescriptorTypeListVALVE(&val->pMutableDescriptorTypeLists[i]); + } else { + size += vn_sizeof_array_size(0); + } + return size; +} + +static inline size_t +vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE(const VkMutableDescriptorTypeCreateInfoVALVE *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_pnext(val->pNext); + size += vn_sizeof_VkMutableDescriptorTypeCreateInfoVALVE_self(val); + + return size; +} + +static inline void +vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_self(struct vn_cs_encoder *enc, const VkMutableDescriptorTypeCreateInfoVALVE *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_uint32_t(enc, &val->mutableDescriptorTypeListCount); + if (val->pMutableDescriptorTypeLists) { + vn_encode_array_size(enc, val->mutableDescriptorTypeListCount); + for (uint32_t i = 0; i < val->mutableDescriptorTypeListCount; i++) + vn_encode_VkMutableDescriptorTypeListVALVE(enc, &val->pMutableDescriptorTypeLists[i]); + } else { + vn_encode_array_size(enc, 0); + } +} + +static inline void +vn_encode_VkMutableDescriptorTypeCreateInfoVALVE(struct vn_cs_encoder *enc, const VkMutableDescriptorTypeCreateInfoVALVE *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE }); + vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_pnext(enc, val->pNext); + vn_encode_VkMutableDescriptorTypeCreateInfoVALVE_self(enc, val); +} + /* struct VkMemoryDedicatedRequirements chain */ static inline size_t