venus: update protocol for mask helper and ignore renderer unknown pNext

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15495>
This commit is contained in:
Yiwei Zhang 2022-03-26 04:27:04 +00:00 committed by Marge Bot
parent 0de968f71c
commit 440705d78f
15 changed files with 536 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* This file is generated by venus-protocol git-584f3ebb. */
/* This file is generated by venus-protocol git-bfb13f65. */
/*
* Copyright 2020 Google LLC

View File

@ -207,12 +207,16 @@ vn_sizeof_VkCommandBufferInheritanceInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkCommandBufferInheritanceInfo_pnext(pnext->pNext);
size += vn_sizeof_VkCommandBufferInheritanceConditionalRenderingInfoEXT_self((const VkCommandBufferInheritanceConditionalRenderingInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:
if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkCommandBufferInheritanceInfo_pnext(pnext->pNext);
@ -262,12 +266,16 @@ vn_encode_VkCommandBufferInheritanceInfo_pnext(struct vn_cs_encoder *enc, const
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(82 /* VK_EXT_conditional_rendering */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkCommandBufferInheritanceInfo_pnext(enc, pnext->pNext);
vn_encode_VkCommandBufferInheritanceConditionalRenderingInfoEXT_self(enc, (const VkCommandBufferInheritanceConditionalRenderingInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:
if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkCommandBufferInheritanceInfo_pnext(enc, pnext->pNext);

View File

@ -12,8 +12,6 @@
#include <string.h>
#include <vulkan/vulkan.h>
#include "vn_protocol_driver_cs.h"
#define VN_SUBMIT_LOCAL_CMD_SIZE 256
/* VkStructureType */

View File

@ -93,6 +93,8 @@ vn_sizeof_VkDescriptorPoolCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkDescriptorPoolCreateInfo_pnext(pnext->pNext);
@ -146,6 +148,8 @@ vn_encode_VkDescriptorPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkDescriptorPoolCreateInfo_pnext(enc, pnext->pNext);

View File

@ -300,6 +300,8 @@ vn_sizeof_VkWriteDescriptorSet_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkWriteDescriptorSet_pnext(pnext->pNext);
@ -369,6 +371,8 @@ vn_encode_VkWriteDescriptorSet_pnext(struct vn_cs_encoder *enc, const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkWriteDescriptorSet_pnext(enc, pnext->pNext);

View File

@ -385,6 +385,8 @@ vn_decode_VkDescriptorSetLayoutSupport_pnext(struct vn_cs_decoder *dec, const vo
assert(pnext);
if (pnext->sType == stype)
break;
pnext = pnext->pNext;
}
switch ((int32_t)pnext->sType) {

File diff suppressed because it is too large Load Diff

View File

@ -323,12 +323,16 @@ vn_sizeof_VkImageCreateInfo_pnext(const void *val)
size += vn_sizeof_VkImageFormatListCreateInfo_self((const VkImageFormatListCreateInfo *)pnext);
return size;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkImageDrmFormatModifierListCreateInfoEXT_self((const VkImageDrmFormatModifierListCreateInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkImageCreateInfo_pnext(pnext->pNext);
@ -408,12 +412,16 @@ vn_encode_VkImageCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
vn_encode_VkImageFormatListCreateInfo_self(enc, (const VkImageFormatListCreateInfo *)pnext);
return;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkImageDrmFormatModifierListCreateInfoEXT_self(enc, (const VkImageDrmFormatModifierListCreateInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(159 /* VK_EXT_image_drm_format_modifier */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkImageCreateInfo_pnext(enc, pnext->pNext);

View File

@ -10,6 +10,8 @@
#include "vn_protocol_driver_defines.h"
#define VN_INFO_EXTENSION_MAX_NUMBER (414)
struct vn_info_extension {
const char *name;
uint32_t number;
@ -144,4 +146,10 @@ vn_info_extension_get(int32_t index)
return &_vn_info_extensions[index];
}
static inline bool
vn_info_extension_mask_test(const uint32_t *mask, uint32_t ext_number)
{
return mask[ext_number / 32] & (1 << (ext_number % 32));
}
#endif /* VN_PROTOCOL_DRIVER_INFO_H */

View File

@ -139,6 +139,8 @@ vn_sizeof_VkPipelineShaderStageCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineShaderStageCreateInfo_pnext(pnext->pNext);
@ -195,6 +197,8 @@ vn_encode_VkPipelineShaderStageCreateInfo_pnext(struct vn_cs_encoder *enc, const
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(226 /* VK_EXT_subgroup_size_control */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineShaderStageCreateInfo_pnext(enc, pnext->pNext);
@ -375,6 +379,8 @@ vn_sizeof_VkPipelineVertexInputStateCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineVertexInputStateCreateInfo_pnext(pnext->pNext);
@ -435,6 +441,8 @@ vn_encode_VkPipelineVertexInputStateCreateInfo_pnext(struct vn_cs_encoder *enc,
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(191 /* VK_EXT_vertex_attribute_divisor */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineVertexInputStateCreateInfo_pnext(enc, pnext->pNext);
@ -1055,30 +1063,40 @@ vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(102 /* VK_EXT_conservative_rasterization */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPipelineRasterizationConservativeStateCreateInfoEXT_self((const VkPipelineRasterizationConservativeStateCreateInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPipelineRasterizationStateStreamCreateInfoEXT_self((const VkPipelineRasterizationStateStreamCreateInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPipelineRasterizationDepthClipStateCreateInfoEXT_self((const VkPipelineRasterizationDepthClipStateCreateInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPipelineRasterizationLineStateCreateInfoEXT_self((const VkPipelineRasterizationLineStateCreateInfoEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPipelineRasterizationStateCreateInfo_pnext(pnext->pNext);
@ -1133,30 +1151,40 @@ vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(struct vn_cs_encoder *enc
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(102 /* VK_EXT_conservative_rasterization */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPipelineRasterizationConservativeStateCreateInfoEXT_self(enc, (const VkPipelineRasterizationConservativeStateCreateInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(29 /* VK_EXT_transform_feedback */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPipelineRasterizationStateStreamCreateInfoEXT_self(enc, (const VkPipelineRasterizationStateStreamCreateInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(103 /* VK_EXT_depth_clip_enable */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPipelineRasterizationDepthClipStateCreateInfoEXT_self(enc, (const VkPipelineRasterizationDepthClipStateCreateInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(260 /* VK_EXT_line_rasterization */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPipelineRasterizationLineStateCreateInfoEXT_self(enc, (const VkPipelineRasterizationLineStateCreateInfoEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(255 /* VK_EXT_provoking_vertex */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPipelineRasterizationStateCreateInfo_pnext(enc, pnext->pNext);
@ -1718,12 +1746,16 @@ vn_sizeof_VkGraphicsPipelineCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(193 /* VK_EXT_pipeline_creation_feedback */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkGraphicsPipelineCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPipelineCreationFeedbackCreateInfo_self((const VkPipelineCreationFeedbackCreateInfo *)pnext);
return size;
case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkGraphicsPipelineCreateInfo_pnext(pnext->pNext);
@ -1808,12 +1840,16 @@ vn_encode_VkGraphicsPipelineCreateInfo_pnext(struct vn_cs_encoder *enc, const vo
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(193 /* VK_EXT_pipeline_creation_feedback */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkGraphicsPipelineCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPipelineCreationFeedbackCreateInfo_self(enc, (const VkPipelineCreationFeedbackCreateInfo *)pnext);
return;
case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(45 /* VK_KHR_dynamic_rendering */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkGraphicsPipelineCreateInfo_pnext(enc, pnext->pNext);
@ -1887,6 +1923,8 @@ vn_sizeof_VkComputePipelineCreateInfo_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(193 /* VK_EXT_pipeline_creation_feedback */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkComputePipelineCreateInfo_pnext(pnext->pNext);
@ -1935,6 +1973,8 @@ vn_encode_VkComputePipelineCreateInfo_pnext(struct vn_cs_encoder *enc, const voi
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
if (!vn_cs_renderer_protocol_has_extension(193 /* VK_EXT_pipeline_creation_feedback */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkComputePipelineCreateInfo_pnext(enc, pnext->pNext);

View File

@ -1024,6 +1024,8 @@ vn_sizeof_VkSubpassDependency2_pnext(const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkSubpassDependency2_pnext(pnext->pNext);
@ -1075,6 +1077,8 @@ vn_encode_VkSubpassDependency2_pnext(struct vn_cs_encoder *enc, const void *val)
while (pnext) {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkSubpassDependency2_pnext(enc, pnext->pNext);

View File

@ -142,6 +142,8 @@ vn_sizeof_VkSamplerCreateInfo_pnext(const void *val)
size += vn_sizeof_VkSamplerReductionModeCreateInfo_self((const VkSamplerReductionModeCreateInfo *)pnext);
return size;
case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkSamplerCreateInfo_pnext(pnext->pNext);
@ -213,6 +215,8 @@ vn_encode_VkSamplerCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
vn_encode_VkSamplerReductionModeCreateInfo_self(enc, (const VkSamplerReductionModeCreateInfo *)pnext);
return;
case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
if (!vn_cs_renderer_protocol_has_extension(288 /* VK_EXT_custom_border_color */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkSamplerCreateInfo_pnext(enc, pnext->pNext);

View File

@ -958,6 +958,8 @@ vn_decode_VkMemoryRequirements2_pnext(struct vn_cs_decoder *dec, const void *val
assert(pnext);
if (pnext->sType == stype)
break;
pnext = pnext->pNext;
}
switch ((int32_t)pnext->sType) {

View File

@ -301,6 +301,8 @@ vn_decode_VkMemoryResourcePropertiesMESA_pnext(struct vn_cs_decoder *dec, const
assert(pnext);
if (pnext->sType == stype)
break;
pnext = pnext->pNext;
}
switch ((int32_t)pnext->sType) {

View File

@ -8,6 +8,7 @@
#ifndef VN_PROTOCOL_DRIVER_TYPES_H
#define VN_PROTOCOL_DRIVER_TYPES_H
#include "vn_protocol_driver_cs.h"
#include "vn_protocol_driver_defines.h"
/* uint64_t */