From 5252c6c009fd15f7b4956a562fac0be933412b82 Mon Sep 17 00:00:00 2001 From: Igor Torrente Date: Mon, 7 Feb 2022 12:22:48 -0300 Subject: [PATCH] venus: venus-protocol groundwork to VK_EXT_custom_border_color These are the changes automatically generated from the venus-protocol repository. Signed-off-by: Igor Torrente Part-of: --- src/virtio/venus-protocol/vn_protocol_driver.h | 2 +- .../vn_protocol_driver_command_buffer.h | 61 ---- .../venus-protocol/vn_protocol_driver_device.h | 306 +++++++++++++++++++++ .../venus-protocol/vn_protocol_driver_info.h | 155 +++++------ .../venus-protocol/vn_protocol_driver_sampler.h | 67 +++++ .../venus-protocol/vn_protocol_driver_structs.h | 61 ++++ 6 files changed, 513 insertions(+), 139 deletions(-) diff --git a/src/virtio/venus-protocol/vn_protocol_driver.h b/src/virtio/venus-protocol/vn_protocol_driver.h index 29a4ae3..edd562d 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-0048ccc3. */ +/* This file is generated by venus-protocol git-e0866cb3. */ /* * Copyright 2020 Google LLC diff --git a/src/virtio/venus-protocol/vn_protocol_driver_command_buffer.h b/src/virtio/venus-protocol/vn_protocol_driver_command_buffer.h index 6e86b69..1bb1f25 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_command_buffer.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_command_buffer.h @@ -673,67 +673,6 @@ vn_encode_VkBufferImageCopy(struct vn_cs_encoder *enc, const VkBufferImageCopy * vn_encode_VkExtent3D(enc, &val->imageExtent); } -/* union VkClearColorValue */ - -static inline size_t -vn_sizeof_VkClearColorValue_tag(const VkClearColorValue *val, uint32_t tag) -{ - size_t size = vn_sizeof_uint32_t(&tag); - switch (tag) { - case 0: - size += vn_sizeof_array_size(4); - size += vn_sizeof_float_array(val->float32, 4); - break; - case 1: - size += vn_sizeof_array_size(4); - size += vn_sizeof_int32_t_array(val->int32, 4); - break; - case 2: - size += vn_sizeof_array_size(4); - size += vn_sizeof_uint32_t_array(val->uint32, 4); - break; - default: - assert(false); - break; - } - return size; -} - -static inline size_t -vn_sizeof_VkClearColorValue(const VkClearColorValue *val) -{ - return vn_sizeof_VkClearColorValue_tag(val, 2); -} - -static inline void -vn_encode_VkClearColorValue_tag(struct vn_cs_encoder *enc, const VkClearColorValue *val, uint32_t tag) -{ - vn_encode_uint32_t(enc, &tag); - switch (tag) { - case 0: - vn_encode_array_size(enc, 4); - vn_encode_float_array(enc, val->float32, 4); - break; - case 1: - vn_encode_array_size(enc, 4); - vn_encode_int32_t_array(enc, val->int32, 4); - break; - case 2: - vn_encode_array_size(enc, 4); - vn_encode_uint32_t_array(enc, val->uint32, 4); - break; - default: - assert(false); - break; - } -} - -static inline void -vn_encode_VkClearColorValue(struct vn_cs_encoder *enc, const VkClearColorValue *val) -{ - vn_encode_VkClearColorValue_tag(enc, val, 2); /* union with default tag */ -} - /* struct VkClearDepthStencilValue */ static inline size_t diff --git a/src/virtio/venus-protocol/vn_protocol_driver_device.h b/src/virtio/venus-protocol/vn_protocol_driver_device.h index 86ee1a4..80bef89 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_device.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_device.h @@ -5887,6 +5887,142 @@ vn_encode_VkPhysicalDeviceVulkan13Features_partial(struct vn_cs_encoder *enc, co vn_encode_VkPhysicalDeviceVulkan13Features_self_partial(enc, val); } +/* struct VkPhysicalDeviceCustomBorderColorFeaturesEXT chain */ + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_VkBool32(&val->customBorderColors); + size += vn_sizeof_VkBool32(&val->customBorderColorWithoutFormat); + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(val->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(val); + + return size; +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkBool32(enc, &val->customBorderColors); + vn_encode_VkBool32(enc, &val->customBorderColorWithoutFormat); +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(enc, val->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, val); +} + +static inline void +vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_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_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_VkBool32(dec, &val->customBorderColors); + vn_decode_VkBool32(dec, &val->customBorderColorWithoutFormat); +} + +static inline void +vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT); + + assert(val->sType == stype); + vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext(dec, val->pNext); + vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(dec, val); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + /* skip val->customBorderColors */ + /* skip val->customBorderColorWithoutFormat */ + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial(const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(val->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(val); + + return size; +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_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_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->customBorderColors */ + /* skip val->customBorderColorWithoutFormat */ +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorFeaturesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT }); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_pnext_partial(enc, val->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(enc, val); +} + /* struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT chain */ static inline size_t @@ -7408,6 +7544,12 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val) size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self((const VkPhysicalDeviceVulkan13Features *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: size += vn_sizeof_simple_pointer(pnext); size += vn_sizeof_VkStructureType(&pnext->sType); @@ -7692,6 +7834,12 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -7919,6 +8067,10 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_decoder *dec, const void vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceVulkan13Features_self(dec, (VkPhysicalDeviceVulkan13Features *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); + vn_decode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(dec, (VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT_self(dec, (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *)pnext); @@ -8178,6 +8330,12 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val) size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self_partial((const VkPhysicalDeviceVulkan13Features *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: size += vn_sizeof_simple_pointer(pnext); size += vn_sizeof_VkStructureType(&pnext->sType); @@ -8462,6 +8620,12 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, con vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan13Features_self_partial(enc, (const VkPhysicalDeviceVulkan13Features *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -8829,6 +8993,12 @@ vn_sizeof_VkDeviceCreateInfo_pnext(const void *val) size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceVulkan13Features_self((const VkPhysicalDeviceVulkan13Features *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self((const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: size += vn_sizeof_simple_pointer(pnext); size += vn_sizeof_VkStructureType(&pnext->sType); @@ -9164,6 +9334,12 @@ vn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan13Features_self(enc, (const VkPhysicalDeviceVulkan13Features *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorFeaturesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorFeaturesEXT *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); @@ -12252,6 +12428,114 @@ vn_encode_VkPhysicalDeviceVulkan13Properties_partial(struct vn_cs_encoder *enc, vn_encode_VkPhysicalDeviceVulkan13Properties_self_partial(enc, val); } +/* struct VkPhysicalDeviceCustomBorderColorPropertiesEXT chain */ + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_uint32_t(&val->maxCustomBorderColorSamplers); + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(val->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(val); + + return size; +} + +static inline void +vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_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_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_decode_uint32_t(dec, &val->maxCustomBorderColorSamplers); +} + +static inline void +vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + VkStructureType stype; + vn_decode_VkStructureType(dec, &stype); + assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT); + + assert(val->sType == stype); + vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext(dec, val->pNext); + vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(dec, val); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + /* skip val->maxCustomBorderColorSamplers */ + return size; +} + +static inline size_t +vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial(const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(val->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(val); + + return size; +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_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_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + /* skip val->{sType,pNext} */ + /* skip val->maxCustomBorderColorSamplers */ +} + +static inline void +vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceCustomBorderColorPropertiesEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT }); + vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_pnext_partial(enc, val->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(enc, val); +} + /* struct VkPhysicalDeviceShaderIntegerDotProductProperties chain */ static inline size_t @@ -12606,6 +12890,12 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext(const void *val) size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self((const VkPhysicalDeviceVulkan13Properties *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self((const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: size += vn_sizeof_simple_pointer(pnext); size += vn_sizeof_VkStructureType(&pnext->sType); @@ -12740,6 +13030,10 @@ vn_decode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_decoder *dec, const voi vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceVulkan13Properties_self(dec, (VkPhysicalDeviceVulkan13Properties *)pnext); break; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext); + vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(dec, (VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext); + break; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceShaderIntegerDotProductProperties_self(dec, (VkPhysicalDeviceShaderIntegerDotProductProperties *)pnext); @@ -12897,6 +13191,12 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(const void *val) size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceVulkan13Properties_self_partial((const VkPhysicalDeviceVulkan13Properties *)pnext); return size; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext); + size += vn_sizeof_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial((const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext); + return size; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: size += vn_sizeof_simple_pointer(pnext); size += vn_sizeof_VkStructureType(&pnext->sType); @@ -13061,6 +13361,12 @@ vn_encode_VkPhysicalDeviceProperties2_pnext_partial(struct vn_cs_encoder *enc, c vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext); vn_encode_VkPhysicalDeviceVulkan13Properties_self_partial(enc, (const VkPhysicalDeviceVulkan13Properties *)pnext); return; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext); + vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext); + return; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: vn_encode_simple_pointer(enc, pnext); vn_encode_VkStructureType(enc, &pnext->sType); diff --git a/src/virtio/venus-protocol/vn_protocol_driver_info.h b/src/virtio/venus-protocol/vn_protocol_driver_info.h index 764f1a9..2eb7f87 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_info.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_info.h @@ -38,87 +38,88 @@ vn_info_extension_compare(const void *name, const void *ext) static inline const struct vn_info_extension * vn_info_extension_get(const char *name) { - static const struct vn_info_extension vn_info_extensions[77] = { + static const struct vn_info_extension vn_info_extensions[78] = { { 0, "VK_EXT_4444_formats", 1 }, { 1, "VK_EXT_command_serialization", 0 }, - { 2, "VK_EXT_descriptor_indexing", 2 }, - { 3, "VK_EXT_extended_dynamic_state", 1 }, - { 4, "VK_EXT_extended_dynamic_state2", 1 }, - { 5, "VK_EXT_external_memory_dma_buf", 1 }, - { 6, "VK_EXT_host_query_reset", 1 }, - { 7, "VK_EXT_image_drm_format_modifier", 2 }, - { 8, "VK_EXT_image_robustness", 1 }, - { 9, "VK_EXT_inline_uniform_block", 1 }, - { 10, "VK_EXT_pipeline_creation_cache_control", 3 }, - { 11, "VK_EXT_pipeline_creation_feedback", 1 }, - { 12, "VK_EXT_private_data", 1 }, - { 13, "VK_EXT_queue_family_foreign", 1 }, - { 14, "VK_EXT_sampler_filter_minmax", 2 }, - { 15, "VK_EXT_scalar_block_layout", 1 }, - { 16, "VK_EXT_separate_stencil_usage", 1 }, - { 17, "VK_EXT_shader_demote_to_helper_invocation", 1 }, - { 18, "VK_EXT_shader_viewport_index_layer", 1 }, - { 19, "VK_EXT_subgroup_size_control", 2 }, - { 20, "VK_EXT_texel_buffer_alignment", 1 }, - { 21, "VK_EXT_texture_compression_astc_hdr", 1 }, - { 22, "VK_EXT_tooling_info", 1 }, - { 23, "VK_EXT_transform_feedback", 1 }, - { 24, "VK_EXT_ycbcr_2plane_444_formats", 1 }, - { 25, "VK_KHR_16bit_storage", 1 }, - { 26, "VK_KHR_8bit_storage", 1 }, - { 27, "VK_KHR_bind_memory2", 1 }, - { 28, "VK_KHR_buffer_device_address", 1 }, - { 29, "VK_KHR_copy_commands2", 1 }, - { 30, "VK_KHR_create_renderpass2", 1 }, - { 31, "VK_KHR_dedicated_allocation", 3 }, - { 32, "VK_KHR_depth_stencil_resolve", 1 }, - { 33, "VK_KHR_descriptor_update_template", 1 }, - { 34, "VK_KHR_device_group", 4 }, - { 35, "VK_KHR_device_group_creation", 1 }, - { 36, "VK_KHR_draw_indirect_count", 1 }, - { 37, "VK_KHR_driver_properties", 1 }, - { 38, "VK_KHR_dynamic_rendering", 1 }, - { 39, "VK_KHR_external_fence", 1 }, - { 40, "VK_KHR_external_fence_capabilities", 1 }, - { 41, "VK_KHR_external_memory", 1 }, - { 42, "VK_KHR_external_memory_capabilities", 1 }, - { 43, "VK_KHR_external_memory_fd", 1 }, - { 44, "VK_KHR_external_semaphore", 1 }, - { 45, "VK_KHR_external_semaphore_capabilities", 1 }, - { 46, "VK_KHR_format_feature_flags2", 1 }, - { 47, "VK_KHR_get_memory_requirements2", 1 }, - { 48, "VK_KHR_get_physical_device_properties2", 2 }, - { 49, "VK_KHR_image_format_list", 1 }, - { 50, "VK_KHR_imageless_framebuffer", 1 }, - { 51, "VK_KHR_maintenance1", 2 }, - { 52, "VK_KHR_maintenance2", 1 }, - { 53, "VK_KHR_maintenance3", 1 }, - { 54, "VK_KHR_maintenance4", 2 }, - { 55, "VK_KHR_multiview", 1 }, - { 56, "VK_KHR_relaxed_block_layout", 1 }, - { 57, "VK_KHR_sampler_mirror_clamp_to_edge", 3 }, - { 58, "VK_KHR_sampler_ycbcr_conversion", 14 }, - { 59, "VK_KHR_separate_depth_stencil_layouts", 1 }, - { 60, "VK_KHR_shader_atomic_int64", 1 }, - { 61, "VK_KHR_shader_draw_parameters", 1 }, - { 62, "VK_KHR_shader_float16_int8", 1 }, - { 63, "VK_KHR_shader_float_controls", 4 }, - { 64, "VK_KHR_shader_integer_dot_product", 1 }, - { 65, "VK_KHR_shader_non_semantic_info", 1 }, - { 66, "VK_KHR_shader_subgroup_extended_types", 1 }, - { 67, "VK_KHR_shader_terminate_invocation", 1 }, - { 68, "VK_KHR_spirv_1_4", 1 }, - { 69, "VK_KHR_storage_buffer_storage_class", 1 }, - { 70, "VK_KHR_synchronization2", 1 }, - { 71, "VK_KHR_timeline_semaphore", 2 }, - { 72, "VK_KHR_uniform_buffer_standard_layout", 1 }, - { 73, "VK_KHR_variable_pointers", 1 }, - { 74, "VK_KHR_vulkan_memory_model", 3 }, - { 75, "VK_KHR_zero_initialize_workgroup_memory", 1 }, - { 76, "VK_MESA_venus_protocol", 100000 }, + { 2, "VK_EXT_custom_border_color", 12 }, + { 3, "VK_EXT_descriptor_indexing", 2 }, + { 4, "VK_EXT_extended_dynamic_state", 1 }, + { 5, "VK_EXT_extended_dynamic_state2", 1 }, + { 6, "VK_EXT_external_memory_dma_buf", 1 }, + { 7, "VK_EXT_host_query_reset", 1 }, + { 8, "VK_EXT_image_drm_format_modifier", 2 }, + { 9, "VK_EXT_image_robustness", 1 }, + { 10, "VK_EXT_inline_uniform_block", 1 }, + { 11, "VK_EXT_pipeline_creation_cache_control", 3 }, + { 12, "VK_EXT_pipeline_creation_feedback", 1 }, + { 13, "VK_EXT_private_data", 1 }, + { 14, "VK_EXT_queue_family_foreign", 1 }, + { 15, "VK_EXT_sampler_filter_minmax", 2 }, + { 16, "VK_EXT_scalar_block_layout", 1 }, + { 17, "VK_EXT_separate_stencil_usage", 1 }, + { 18, "VK_EXT_shader_demote_to_helper_invocation", 1 }, + { 19, "VK_EXT_shader_viewport_index_layer", 1 }, + { 20, "VK_EXT_subgroup_size_control", 2 }, + { 21, "VK_EXT_texel_buffer_alignment", 1 }, + { 22, "VK_EXT_texture_compression_astc_hdr", 1 }, + { 23, "VK_EXT_tooling_info", 1 }, + { 24, "VK_EXT_transform_feedback", 1 }, + { 25, "VK_EXT_ycbcr_2plane_444_formats", 1 }, + { 26, "VK_KHR_16bit_storage", 1 }, + { 27, "VK_KHR_8bit_storage", 1 }, + { 28, "VK_KHR_bind_memory2", 1 }, + { 29, "VK_KHR_buffer_device_address", 1 }, + { 30, "VK_KHR_copy_commands2", 1 }, + { 31, "VK_KHR_create_renderpass2", 1 }, + { 32, "VK_KHR_dedicated_allocation", 3 }, + { 33, "VK_KHR_depth_stencil_resolve", 1 }, + { 34, "VK_KHR_descriptor_update_template", 1 }, + { 35, "VK_KHR_device_group", 4 }, + { 36, "VK_KHR_device_group_creation", 1 }, + { 37, "VK_KHR_draw_indirect_count", 1 }, + { 38, "VK_KHR_driver_properties", 1 }, + { 39, "VK_KHR_dynamic_rendering", 1 }, + { 40, "VK_KHR_external_fence", 1 }, + { 41, "VK_KHR_external_fence_capabilities", 1 }, + { 42, "VK_KHR_external_memory", 1 }, + { 43, "VK_KHR_external_memory_capabilities", 1 }, + { 44, "VK_KHR_external_memory_fd", 1 }, + { 45, "VK_KHR_external_semaphore", 1 }, + { 46, "VK_KHR_external_semaphore_capabilities", 1 }, + { 47, "VK_KHR_format_feature_flags2", 1 }, + { 48, "VK_KHR_get_memory_requirements2", 1 }, + { 49, "VK_KHR_get_physical_device_properties2", 2 }, + { 50, "VK_KHR_image_format_list", 1 }, + { 51, "VK_KHR_imageless_framebuffer", 1 }, + { 52, "VK_KHR_maintenance1", 2 }, + { 53, "VK_KHR_maintenance2", 1 }, + { 54, "VK_KHR_maintenance3", 1 }, + { 55, "VK_KHR_maintenance4", 2 }, + { 56, "VK_KHR_multiview", 1 }, + { 57, "VK_KHR_relaxed_block_layout", 1 }, + { 58, "VK_KHR_sampler_mirror_clamp_to_edge", 3 }, + { 59, "VK_KHR_sampler_ycbcr_conversion", 14 }, + { 60, "VK_KHR_separate_depth_stencil_layouts", 1 }, + { 61, "VK_KHR_shader_atomic_int64", 1 }, + { 62, "VK_KHR_shader_draw_parameters", 1 }, + { 63, "VK_KHR_shader_float16_int8", 1 }, + { 64, "VK_KHR_shader_float_controls", 4 }, + { 65, "VK_KHR_shader_integer_dot_product", 1 }, + { 66, "VK_KHR_shader_non_semantic_info", 1 }, + { 67, "VK_KHR_shader_subgroup_extended_types", 1 }, + { 68, "VK_KHR_shader_terminate_invocation", 1 }, + { 69, "VK_KHR_spirv_1_4", 1 }, + { 70, "VK_KHR_storage_buffer_storage_class", 1 }, + { 71, "VK_KHR_synchronization2", 1 }, + { 72, "VK_KHR_timeline_semaphore", 2 }, + { 73, "VK_KHR_uniform_buffer_standard_layout", 1 }, + { 74, "VK_KHR_variable_pointers", 1 }, + { 75, "VK_KHR_vulkan_memory_model", 3 }, + { 76, "VK_KHR_zero_initialize_workgroup_memory", 1 }, + { 77, "VK_MESA_venus_protocol", 100000 }, }; - return bsearch(name, vn_info_extensions, 77, + return bsearch(name, vn_info_extensions, 78, sizeof(*vn_info_extensions), vn_info_extension_compare); } diff --git a/src/virtio/venus-protocol/vn_protocol_driver_sampler.h b/src/virtio/venus-protocol/vn_protocol_driver_sampler.h index 9bc380a..ac31cb0 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_sampler.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_sampler.h @@ -64,6 +64,61 @@ vn_encode_VkSamplerReductionModeCreateInfo(struct vn_cs_encoder *enc, const VkSa vn_encode_VkSamplerReductionModeCreateInfo_self(enc, val); } +/* struct VkSamplerCustomBorderColorCreateInfoEXT chain */ + +static inline size_t +vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT_pnext(const void *val) +{ + /* no known/supported struct */ + return vn_sizeof_simple_pointer(NULL); +} + +static inline size_t +vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT_self(const VkSamplerCustomBorderColorCreateInfoEXT *val) +{ + size_t size = 0; + /* skip val->{sType,pNext} */ + size += vn_sizeof_VkClearColorValue(&val->customBorderColor); + size += vn_sizeof_VkFormat(&val->format); + return size; +} + +static inline size_t +vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT(const VkSamplerCustomBorderColorCreateInfoEXT *val) +{ + size_t size = 0; + + size += vn_sizeof_VkStructureType(&val->sType); + size += vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT_pnext(val->pNext); + size += vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT_self(val); + + return size; +} + +static inline void +vn_encode_VkSamplerCustomBorderColorCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val) +{ + /* no known/supported struct */ + vn_encode_simple_pointer(enc, NULL); +} + +static inline void +vn_encode_VkSamplerCustomBorderColorCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkSamplerCustomBorderColorCreateInfoEXT *val) +{ + /* skip val->{sType,pNext} */ + vn_encode_VkClearColorValue(enc, &val->customBorderColor); + vn_encode_VkFormat(enc, &val->format); +} + +static inline void +vn_encode_VkSamplerCustomBorderColorCreateInfoEXT(struct vn_cs_encoder *enc, const VkSamplerCustomBorderColorCreateInfoEXT *val) +{ + assert(val->sType == VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT); + vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT }); + vn_encode_VkSamplerCustomBorderColorCreateInfoEXT_pnext(enc, val->pNext); + vn_encode_VkSamplerCustomBorderColorCreateInfoEXT_self(enc, val); +} + /* struct VkSamplerCreateInfo chain */ static inline size_t @@ -86,6 +141,12 @@ vn_sizeof_VkSamplerCreateInfo_pnext(const void *val) size += vn_sizeof_VkSamplerCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkSamplerReductionModeCreateInfo_self((const VkSamplerReductionModeCreateInfo *)pnext); return size; + case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: + size += vn_sizeof_simple_pointer(pnext); + size += vn_sizeof_VkStructureType(&pnext->sType); + size += vn_sizeof_VkSamplerCreateInfo_pnext(pnext->pNext); + size += vn_sizeof_VkSamplerCustomBorderColorCreateInfoEXT_self((const VkSamplerCustomBorderColorCreateInfoEXT *)pnext); + return size; default: /* ignore unknown/unsupported struct */ break; @@ -151,6 +212,12 @@ vn_encode_VkSamplerCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) vn_encode_VkSamplerCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkSamplerReductionModeCreateInfo_self(enc, (const VkSamplerReductionModeCreateInfo *)pnext); return; + case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: + vn_encode_simple_pointer(enc, pnext); + vn_encode_VkStructureType(enc, &pnext->sType); + vn_encode_VkSamplerCreateInfo_pnext(enc, pnext->pNext); + vn_encode_VkSamplerCustomBorderColorCreateInfoEXT_self(enc, (const VkSamplerCustomBorderColorCreateInfoEXT *)pnext); + return; default: /* ignore unknown/unsupported struct */ break; diff --git a/src/virtio/venus-protocol/vn_protocol_driver_structs.h b/src/virtio/venus-protocol/vn_protocol_driver_structs.h index 9741fe0..74edb3f 100644 --- a/src/virtio/venus-protocol/vn_protocol_driver_structs.h +++ b/src/virtio/venus-protocol/vn_protocol_driver_structs.h @@ -796,6 +796,67 @@ vn_encode_VkRect2D_partial(struct vn_cs_encoder *enc, const VkRect2D *val) vn_encode_VkExtent2D_partial(enc, &val->extent); } +/* union VkClearColorValue */ + +static inline size_t +vn_sizeof_VkClearColorValue_tag(const VkClearColorValue *val, uint32_t tag) +{ + size_t size = vn_sizeof_uint32_t(&tag); + switch (tag) { + case 0: + size += vn_sizeof_array_size(4); + size += vn_sizeof_float_array(val->float32, 4); + break; + case 1: + size += vn_sizeof_array_size(4); + size += vn_sizeof_int32_t_array(val->int32, 4); + break; + case 2: + size += vn_sizeof_array_size(4); + size += vn_sizeof_uint32_t_array(val->uint32, 4); + break; + default: + assert(false); + break; + } + return size; +} + +static inline size_t +vn_sizeof_VkClearColorValue(const VkClearColorValue *val) +{ + return vn_sizeof_VkClearColorValue_tag(val, 2); +} + +static inline void +vn_encode_VkClearColorValue_tag(struct vn_cs_encoder *enc, const VkClearColorValue *val, uint32_t tag) +{ + vn_encode_uint32_t(enc, &tag); + switch (tag) { + case 0: + vn_encode_array_size(enc, 4); + vn_encode_float_array(enc, val->float32, 4); + break; + case 1: + vn_encode_array_size(enc, 4); + vn_encode_int32_t_array(enc, val->int32, 4); + break; + case 2: + vn_encode_array_size(enc, 4); + vn_encode_uint32_t_array(enc, val->uint32, 4); + break; + default: + assert(false); + break; + } +} + +static inline void +vn_encode_VkClearColorValue(struct vn_cs_encoder *enc, const VkClearColorValue *val) +{ + vn_encode_VkClearColorValue_tag(enc, val, 2); /* union with default tag */ +} + /* struct VkMemoryDedicatedRequirements chain */ static inline size_t -- 2.7.4