vkr: update to latest venus protocol

Add below extensions support:
- VK_EXT_line_rasterization
- VK_EXT_provoking_vertex

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/721>
macos/master
Yiwei Zhang 3 years ago committed by Marge Bot
parent 315bfe7b07
commit 5180163393
  1. 2
      src/venus/venus-protocol/vn_protocol_renderer.h
  2. 48
      src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h
  3. 30
      src/venus/venus-protocol/vn_protocol_renderer_defines.h
  4. 525
      src/venus/venus-protocol/vn_protocol_renderer_device.h
  5. 10
      src/venus/venus-protocol/vn_protocol_renderer_dispatches.h
  6. 166
      src/venus/venus-protocol/vn_protocol_renderer_info.h
  7. 142
      src/venus/venus-protocol/vn_protocol_renderer_pipeline.h
  8. 147
      src/venus/venus-protocol/vn_protocol_renderer_transport.h
  9. 68
      src/venus/venus-protocol/vn_protocol_renderer_types.h

@ -1,4 +1,4 @@
/* This file is generated by venus-protocol git-e0866cb3. */
/* This file is generated by venus-protocol git-8230786e. */
/*
* Copyright 2020 Google LLC

@ -4734,6 +4734,29 @@ static inline void vn_encode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_en
/* skip args->vertexStride */
}
static inline void vn_decode_vkCmdSetLineStippleEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetLineStippleEXT *args)
{
vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
vn_decode_uint32_t(dec, &args->lineStippleFactor);
vn_decode_uint16_t(dec, &args->lineStipplePattern);
}
static inline void vn_replace_vkCmdSetLineStippleEXT_args_handle(struct vn_command_vkCmdSetLineStippleEXT *args)
{
vn_replace_VkCommandBuffer_handle(&args->commandBuffer);
/* skip args->lineStippleFactor */
/* skip args->lineStipplePattern */
}
static inline void vn_encode_vkCmdSetLineStippleEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCmdSetLineStippleEXT *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCmdSetLineStippleEXT_EXT});
/* skip args->commandBuffer */
/* skip args->lineStippleFactor */
/* skip args->lineStipplePattern */
}
static inline void vn_decode_vkCmdSetCullMode_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCmdSetCullMode *args)
{
vn_decode_VkCommandBuffer_lookup(dec, &args->commandBuffer);
@ -7104,6 +7127,31 @@ static inline void vn_dispatch_vkCmdDrawIndirectByteCountEXT(struct vn_dispatch_
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkCmdSetLineStippleEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkCmdSetLineStippleEXT args;
if (!ctx->dispatch_vkCmdSetLineStippleEXT) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkCmdSetLineStippleEXT_args_temp(ctx->decoder, &args);
if (!args.commandBuffer) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkCmdSetLineStippleEXT(ctx, &args);
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkCmdSetLineStippleEXT_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkCmdSetCullMode(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkCmdSetCullMode args;

@ -329,6 +329,9 @@ typedef enum VkCommandTypeEXT {
VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT = 187,
VK_COMMAND_TYPE_vkCmdSetPatchControlPointsEXT_EXT = 233,
VK_COMMAND_TYPE_vkCmdSetLogicOpEXT_EXT = 234,
VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT = 235,
VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT = 236,
VK_COMMAND_TYPE_vkCmdSetLineStippleEXT_EXT = 237,
VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT = 178,
VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT = 179,
VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT = 180,
@ -1680,6 +1683,24 @@ struct vn_command_vkGetDescriptorSetLayoutSupport {
VkDescriptorSetLayoutSupport* pSupport;
};
struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT {
VkPhysicalDevice physicalDevice;
uint32_t* pTimeDomainCount;
VkTimeDomainEXT* pTimeDomains;
VkResult ret;
};
struct vn_command_vkGetCalibratedTimestampsEXT {
VkDevice device;
uint32_t timestampCount;
const VkCalibratedTimestampInfoEXT* pTimestampInfos;
uint64_t* pTimestamps;
uint64_t* pMaxDeviation;
VkResult ret;
};
struct vn_command_vkCreateRenderPass2 {
VkDevice device;
const VkRenderPassCreateInfo2* pCreateInfo;
@ -1828,6 +1849,12 @@ struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress {
uint64_t ret;
};
struct vn_command_vkCmdSetLineStippleEXT {
VkCommandBuffer commandBuffer;
uint32_t lineStippleFactor;
uint16_t lineStipplePattern;
};
struct vn_command_vkGetPhysicalDeviceToolProperties {
VkPhysicalDevice physicalDevice;
uint32_t* pToolCount;
@ -2273,6 +2300,8 @@ struct vn_dispatch_context {
void (*dispatch_vkDestroySamplerYcbcrConversion)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroySamplerYcbcrConversion *args);
void (*dispatch_vkGetDeviceQueue2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceQueue2 *args);
void (*dispatch_vkGetDescriptorSetLayoutSupport)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDescriptorSetLayoutSupport *args);
void (*dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args);
void (*dispatch_vkGetCalibratedTimestampsEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkGetCalibratedTimestampsEXT *args);
void (*dispatch_vkCreateRenderPass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateRenderPass2 *args);
void (*dispatch_vkCmdBeginRenderPass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginRenderPass2 *args);
void (*dispatch_vkCmdNextSubpass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdNextSubpass2 *args);
@ -2292,6 +2321,7 @@ struct vn_dispatch_context {
void (*dispatch_vkGetBufferOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferOpaqueCaptureAddress *args);
void (*dispatch_vkGetBufferDeviceAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferDeviceAddress *args);
void (*dispatch_vkGetDeviceMemoryOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress *args);
void (*dispatch_vkCmdSetLineStippleEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetLineStippleEXT *args);
void (*dispatch_vkGetPhysicalDeviceToolProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceToolProperties *args);
void (*dispatch_vkCmdSetCullMode)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetCullMode *args);
void (*dispatch_vkCmdSetFrontFace)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetFrontFace *args);

@ -3885,6 +3885,135 @@ vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle(VkPhysicalDeviceSu
} while (pnext);
}
/* struct VkPhysicalDeviceLineRasterizationFeaturesEXT chain */
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkBool32(enc, &val->rectangularLines);
vn_encode_VkBool32(enc, &val->bresenhamLines);
vn_encode_VkBool32(enc, &val->smoothLines);
vn_encode_VkBool32(enc, &val->stippledRectangularLines);
vn_encode_VkBool32(enc, &val->stippledBresenhamLines);
vn_encode_VkBool32(enc, &val->stippledSmoothLines);
}
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT });
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext(enc, val->pNext);
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, val);
}
static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkBool32(dec, &val->rectangularLines);
vn_decode_VkBool32(dec, &val->bresenhamLines);
vn_decode_VkBool32(dec, &val->smoothLines);
vn_decode_VkBool32(dec, &val->stippledRectangularLines);
vn_decode_VkBool32(dec, &val->stippledBresenhamLines);
vn_decode_VkBool32(dec, &val->stippledSmoothLines);
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, val);
}
static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->rectangularLines */
/* skip val->bresenhamLines */
/* skip val->smoothLines */
/* skip val->stippledRectangularLines */
/* skip val->stippledBresenhamLines */
/* skip val->stippledSmoothLines */
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(dec, val);
}
static inline void
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self(VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->rectangularLines */
/* skip val->bresenhamLines */
/* skip val->smoothLines */
/* skip val->stippledRectangularLines */
/* skip val->stippledBresenhamLines */
/* skip val->stippledSmoothLines */
}
static inline void
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle(VkPhysicalDeviceLineRasterizationFeaturesEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkPhysicalDevicePipelineCreationCacheControlFeatures chain */
static inline void
@ -5602,6 +5731,119 @@ vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle(VkPhysicalDev
} while (pnext);
}
/* struct VkPhysicalDeviceProvokingVertexFeaturesEXT chain */
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkBool32(enc, &val->provokingVertexLast);
vn_encode_VkBool32(enc, &val->transformFeedbackPreservesProvokingVertex);
}
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT });
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext(enc, val->pNext);
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, val);
}
static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkBool32(dec, &val->provokingVertexLast);
vn_decode_VkBool32(dec, &val->transformFeedbackPreservesProvokingVertex);
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, val);
}
static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->provokingVertexLast */
/* skip val->transformFeedbackPreservesProvokingVertex */
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(dec, val);
}
static inline void
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self(VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->provokingVertexLast */
/* skip val->transformFeedbackPreservesProvokingVertex */
}
static inline void
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle(VkPhysicalDeviceProvokingVertexFeaturesEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkPhysicalDeviceShaderIntegerDotProductFeatures chain */
static inline void
@ -5991,6 +6233,12 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceSubgroupSizeControlFeatures_self(enc, (const VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
@ -6069,6 +6317,12 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(enc, (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
@ -6334,6 +6588,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec)
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
if (pnext) {
@ -6438,6 +6700,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(struct vn_cs_decoder *dec)
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
if (pnext) {
@ -6711,6 +6981,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
if (pnext) {
@ -6815,6 +7093,14 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(struct vn_cs_decoder *dec
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceFeatures2_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_partial_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
if (pnext) {
@ -6960,6 +7246,9 @@ vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
break;
@ -6999,6 +7288,9 @@ vn_replace_VkPhysicalDeviceFeatures2_handle(VkPhysicalDeviceFeatures2 *val)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
break;
@ -7337,6 +7629,14 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
vn_decode_VkPhysicalDeviceSubgroupSizeControlFeatures_self_temp(dec, (VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationFeaturesEXT_self_temp(dec, (VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures));
if (pnext) {
@ -7441,6 +7741,14 @@ vn_decode_VkDeviceCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self_temp(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkDeviceCreateInfo_pnext_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexFeaturesEXT_self_temp(dec, (VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
if (pnext) {
@ -7654,6 +7962,9 @@ vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
vn_replace_VkPhysicalDeviceSubgroupSizeControlFeatures_handle_self((VkPhysicalDeviceSubgroupSizeControlFeatures *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
vn_replace_VkPhysicalDeviceLineRasterizationFeaturesEXT_handle_self((VkPhysicalDeviceLineRasterizationFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
vn_replace_VkPhysicalDevicePipelineCreationCacheControlFeatures_handle_self((VkPhysicalDevicePipelineCreationCacheControlFeatures *)pnext);
break;
@ -7693,6 +8004,9 @@ vn_replace_VkDeviceCreateInfo_handle(VkDeviceCreateInfo *val)
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
vn_replace_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_handle_self((VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
vn_replace_VkPhysicalDeviceProvokingVertexFeaturesEXT_handle_self((VkPhysicalDeviceProvokingVertexFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
vn_replace_VkPhysicalDeviceShaderIntegerDotProductFeatures_handle_self((VkPhysicalDeviceShaderIntegerDotProductFeatures *)pnext);
break;
@ -8796,6 +9110,60 @@ vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_partial_temp(struct vn_c
vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, val);
}
/* struct VkPhysicalDeviceLineRasterizationPropertiesEXT chain */
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
vn_encode_uint32_t(enc, &val->lineSubPixelPrecisionBits);
}
static inline void
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT });
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext(enc, val->pNext);
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(enc, val);
}
static inline void *
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->lineSubPixelPrecisionBits */
}
static inline void
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceLineRasterizationPropertiesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(dec, val);
}
/* struct VkPhysicalDeviceVulkan11Properties chain */
static inline void
@ -9235,6 +9603,62 @@ vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_partial_temp(struct vn_
vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(dec, val);
}
/* struct VkPhysicalDeviceProvokingVertexPropertiesEXT chain */
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkBool32(enc, &val->provokingVertexModePerPipeline);
vn_encode_VkBool32(enc, &val->transformFeedbackPreservesTriangleFanProvokingVertex);
}
static inline void
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT });
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext(enc, val->pNext);
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(enc, val);
}
static inline void *
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->provokingVertexModePerPipeline */
/* skip val->transformFeedbackPreservesTriangleFanProvokingVertex */
}
static inline void
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_partial_temp(struct vn_cs_decoder *dec, VkPhysicalDeviceProvokingVertexPropertiesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(dec, val);
}
/* struct VkPhysicalDeviceShaderIntegerDotProductProperties chain */
static inline void
@ -9458,6 +9882,12 @@ vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const voi
vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceSubgroupSizeControlProperties_self(enc, (const VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self(enc, (const VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
@ -9482,6 +9912,12 @@ vn_encode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_encoder *enc, const voi
vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self(enc, (const VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceProperties2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self(enc, (const VkPhysicalDeviceProvokingVertexPropertiesEXT *)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);
@ -9661,6 +10097,14 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d
vn_decode_VkPhysicalDeviceSubgroupSizeControlProperties_self_partial_temp(dec, (VkPhysicalDeviceSubgroupSizeControlProperties *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceLineRasterizationPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceLineRasterizationPropertiesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceVulkan11Properties));
if (pnext) {
@ -9693,6 +10137,14 @@ vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(struct vn_cs_decoder *d
vn_decode_VkPhysicalDeviceCustomBorderColorPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceCustomBorderColorPropertiesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPhysicalDeviceProperties2_pnext_partial_temp(dec);
vn_decode_VkPhysicalDeviceProvokingVertexPropertiesEXT_self_partial_temp(dec, (VkPhysicalDeviceProvokingVertexPropertiesEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties));
if (pnext) {
@ -12388,6 +12840,50 @@ static inline void vn_encode_vkGetDeviceQueue2_reply(struct vn_cs_encoder *enc,
vn_encode_VkQueue(enc, args->pQueue);
}
static inline void vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
{
vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
if (vn_decode_simple_pointer(dec)) {
args->pTimeDomainCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimeDomainCount));
if (!args->pTimeDomainCount) return;
vn_decode_uint32_t(dec, args->pTimeDomainCount);
} else {
args->pTimeDomainCount = NULL;
vn_cs_decoder_set_fatal(dec);
}
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
args->pTimeDomains = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimeDomains) * array_size);
if (!args->pTimeDomains) return;
} else {
vn_decode_array_size_unchecked(dec);
args->pTimeDomains = NULL;
}
}
static inline void vn_replace_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_handle(struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
{
vn_replace_VkPhysicalDevice_handle(&args->physicalDevice);
/* skip args->pTimeDomainCount */
/* skip args->pTimeDomains */
}
static inline void vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT});
vn_encode_VkResult(enc, &args->ret);
/* skip args->physicalDevice */
if (vn_encode_simple_pointer(enc, args->pTimeDomainCount))
vn_encode_uint32_t(enc, args->pTimeDomainCount);
if (args->pTimeDomains) {
vn_encode_array_size(enc, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
vn_encode_VkTimeDomainEXT_array(enc, args->pTimeDomains, (args->pTimeDomainCount ? *args->pTimeDomainCount : 0));
} else {
vn_encode_array_size(enc, 0);
}
}
static inline void vn_decode_vkGetPhysicalDeviceToolProperties_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPhysicalDeviceToolProperties *args)
{
vn_decode_VkPhysicalDevice_lookup(dec, &args->physicalDevice);
@ -13142,6 +13638,35 @@ static inline void vn_dispatch_vkGetDeviceQueue2(struct vn_dispatch_context *ctx
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT args;
if (!ctx->dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_args_temp(ctx->decoder, &args);
if (!args.physicalDevice) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
if (!vn_cs_decoder_get_fatal(ctx->decoder))
ctx->dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(ctx, &args);
#ifdef DEBUG
if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
vn_dispatch_debug_log(ctx, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT returned %d", args.ret);
#endif
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkGetPhysicalDeviceToolProperties(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkGetPhysicalDeviceToolProperties args;

@ -208,6 +208,8 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type)
case VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT: return "vkDestroySamplerYcbcrConversion";
case VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT: return "vkGetDeviceQueue2";
case VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT: return "vkGetDescriptorSetLayoutSupport";
case VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT: return "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT";
case VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT: return "vkGetCalibratedTimestampsEXT";
case VK_COMMAND_TYPE_vkCreateRenderPass2_EXT: return "vkCreateRenderPass2";
case VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT: return "vkCmdBeginRenderPass2";
case VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT: return "vkCmdNextSubpass2";
@ -227,6 +229,7 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type)
case VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT: return "vkGetBufferOpaqueCaptureAddress";
case VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT: return "vkGetBufferDeviceAddress";
case VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT: return "vkGetDeviceMemoryOpaqueCaptureAddress";
case VK_COMMAND_TYPE_vkCmdSetLineStippleEXT_EXT: return "vkCmdSetLineStippleEXT";
case VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT: return "vkGetPhysicalDeviceToolProperties";
case VK_COMMAND_TYPE_vkCmdSetCullMode_EXT: return "vkCmdSetCullMode";
case VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT: return "vkCmdSetFrontFace";
@ -282,7 +285,7 @@ static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type)
}
}
static void (*const vn_dispatch_table[235])(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) = {
static void (*const vn_dispatch_table[238])(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) = {
[VK_COMMAND_TYPE_vkCreateInstance_EXT] = vn_dispatch_vkCreateInstance,
[VK_COMMAND_TYPE_vkDestroyInstance_EXT] = vn_dispatch_vkDestroyInstance,
[VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT] = vn_dispatch_vkEnumeratePhysicalDevices,
@ -448,6 +451,8 @@ static void (*const vn_dispatch_table[235])(struct vn_dispatch_context *ctx, VkC
[VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT] = vn_dispatch_vkDestroySamplerYcbcrConversion,
[VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT] = vn_dispatch_vkGetDeviceQueue2,
[VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT] = vn_dispatch_vkGetDescriptorSetLayoutSupport,
[VK_COMMAND_TYPE_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_EXT] = vn_dispatch_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,
[VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT] = vn_dispatch_vkGetCalibratedTimestampsEXT,
[VK_COMMAND_TYPE_vkCreateRenderPass2_EXT] = vn_dispatch_vkCreateRenderPass2,
[VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT] = vn_dispatch_vkCmdBeginRenderPass2,
[VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT] = vn_dispatch_vkCmdNextSubpass2,
@ -467,6 +472,7 @@ static void (*const vn_dispatch_table[235])(struct vn_dispatch_context *ctx, VkC
[VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetBufferOpaqueCaptureAddress,
[VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT] = vn_dispatch_vkGetBufferDeviceAddress,
[VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetDeviceMemoryOpaqueCaptureAddress,
[VK_COMMAND_TYPE_vkCmdSetLineStippleEXT_EXT] = vn_dispatch_vkCmdSetLineStippleEXT,
[VK_COMMAND_TYPE_vkGetPhysicalDeviceToolProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceToolProperties,
[VK_COMMAND_TYPE_vkCmdSetCullMode_EXT] = vn_dispatch_vkCmdSetCullMode,
[VK_COMMAND_TYPE_vkCmdSetFrontFace_EXT] = vn_dispatch_vkCmdSetFrontFace,
@ -526,7 +532,7 @@ static inline void vn_dispatch_command(struct vn_dispatch_context *ctx)
#ifdef DEBUG
TRACE_SCOPE_SLOW(vn_dispatch_command_name(cmd_type));
#endif
if (cmd_type < 235 && vn_dispatch_table[cmd_type])
if (cmd_type < 238 && vn_dispatch_table[cmd_type])
vn_dispatch_table[cmd_type](ctx, cmd_flags);
else
vn_cs_decoder_set_fatal(ctx->decoder);

@ -12,9 +12,10 @@
struct vn_info_extension_table {
union {
bool enabled[78];
bool enabled[81];
struct {
bool EXT_4444_formats;
bool EXT_calibrated_timestamps;
bool EXT_command_serialization;
bool EXT_custom_border_color;
bool EXT_descriptor_indexing;
@ -25,9 +26,11 @@ struct vn_info_extension_table {
bool EXT_image_drm_format_modifier;
bool EXT_image_robustness;
bool EXT_inline_uniform_block;
bool EXT_line_rasterization;
bool EXT_pipeline_creation_cache_control;
bool EXT_pipeline_creation_feedback;
bool EXT_private_data;
bool EXT_provoking_vertex;
bool EXT_queue_family_foreign;
bool EXT_sampler_filter_minmax;
bool EXT_scalar_block_layout;
@ -124,88 +127,91 @@ 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[78] = {
static const struct vn_info_extension vn_info_extensions[81] = {
{ 0, "VK_EXT_4444_formats", 1 },
{ 1, "VK_EXT_command_serialization", 0 },
{ 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 },
{ 1, "VK_EXT_calibrated_timestamps", 2 },
{ 2, "VK_EXT_command_serialization", 0 },
{ 3, "VK_EXT_custom_border_color", 12 },
{ 4, "VK_EXT_descriptor_indexing", 2 },
{ 5, "VK_EXT_extended_dynamic_state", 1 },
{ 6, "VK_EXT_extended_dynamic_state2", 1 },
{ 7, "VK_EXT_external_memory_dma_buf", 1 },
{ 8, "VK_EXT_host_query_reset", 1 },
{ 9, "VK_EXT_image_drm_format_modifier", 2 },
{ 10, "VK_EXT_image_robustness", 1 },
{ 11, "VK_EXT_inline_uniform_block", 1 },
{ 12, "VK_EXT_line_rasterization", 1 },
{ 13, "VK_EXT_pipeline_creation_cache_control", 3 },
{ 14, "VK_EXT_pipeline_creation_feedback", 1 },
{ 15, "VK_EXT_private_data", 1 },
{ 16, "VK_EXT_provoking_vertex", 1 },
{ 17, "VK_EXT_queue_family_foreign", 1 },
{ 18, "VK_EXT_sampler_filter_minmax", 2 },
{ 19, "VK_EXT_scalar_block_layout", 1 },
{ 20, "VK_EXT_separate_stencil_usage", 1 },
{ 21, "VK_EXT_shader_demote_to_helper_invocation", 1 },
{ 22, "VK_EXT_shader_viewport_index_layer", 1 },
{ 23, "VK_EXT_subgroup_size_control", 2 },
{ 24, "VK_EXT_texel_buffer_alignment", 1 },
{ 25, "VK_EXT_texture_compression_astc_hdr", 1 },
{ 26, "VK_EXT_tooling_info", 1 },
{ 27, "VK_EXT_transform_feedback", 1 },
{ 28, "VK_EXT_ycbcr_2plane_444_formats", 1 },
{ 29, "VK_KHR_16bit_storage", 1 },
{ 30, "VK_KHR_8bit_storage", 1 },
{ 31, "VK_KHR_bind_memory2", 1 },
{ 32, "VK_KHR_buffer_device_address", 1 },
{ 33, "VK_KHR_copy_commands2", 1 },
{ 34, "VK_KHR_create_renderpass2", 1 },
{ 35, "VK_KHR_dedicated_allocation", 3 },
{ 36, "VK_KHR_depth_stencil_resolve", 1 },
{ 37, "VK_KHR_descriptor_update_template", 1 },
{ 38, "VK_KHR_device_group", 4 },
{ 39, "VK_KHR_device_group_creation", 1 },
{ 40, "VK_KHR_draw_indirect_count", 1 },
{ 41, "VK_KHR_driver_properties", 1 },
{ 42, "VK_KHR_dynamic_rendering", 1 },
{ 43, "VK_KHR_external_fence", 1 },
{ 44, "VK_KHR_external_fence_capabilities", 1 },
{ 45, "VK_KHR_external_memory", 1 },
{ 46, "VK_KHR_external_memory_capabilities", 1 },
{ 47, "VK_KHR_external_memory_fd", 1 },
{ 48, "VK_KHR_external_semaphore", 1 },
{ 49, "VK_KHR_external_semaphore_capabilities", 1 },
{ 50, "VK_KHR_format_feature_flags2", 1 },
{ 51, "VK_KHR_get_memory_requirements2", 1 },
{ 52, "VK_KHR_get_physical_device_properties2", 2 },
{ 53, "VK_KHR_image_format_list", 1 },
{ 54, "VK_KHR_imageless_framebuffer", 1 },
{ 55, "VK_KHR_maintenance1", 2 },
{ 56, "VK_KHR_maintenance2", 1 },
{ 57, "VK_KHR_maintenance3", 1 },
{ 58, "VK_KHR_maintenance4", 2 },
{ 59, "VK_KHR_multiview", 1 },
{ 60, "VK_KHR_relaxed_block_layout", 1 },
{ 61, "VK_KHR_sampler_mirror_clamp_to_edge", 3 },
{ 62, "VK_KHR_sampler_ycbcr_conversion", 14 },
{ 63, "VK_KHR_separate_depth_stencil_layouts", 1 },
{ 64, "VK_KHR_shader_atomic_int64", 1 },
{ 65, "VK_KHR_shader_draw_parameters", 1 },
{ 66, "VK_KHR_shader_float16_int8", 1 },
{ 67, "VK_KHR_shader_float_controls", 4 },
{ 68, "VK_KHR_shader_integer_dot_product", 1 },
{ 69, "VK_KHR_shader_non_semantic_info", 1 },
{ 70, "VK_KHR_shader_subgroup_extended_types", 1 },
{ 71, "VK_KHR_shader_terminate_invocation", 1 },
{ 72, "VK_KHR_spirv_1_4", 1 },
{ 73, "VK_KHR_storage_buffer_storage_class", 1 },
{ 74, "VK_KHR_synchronization2", 1 },
{ 75, "VK_KHR_timeline_semaphore", 2 },
{ 76, "VK_KHR_uniform_buffer_standard_layout", 1 },
{ 77, "VK_KHR_variable_pointers", 1 },
{ 78, "VK_KHR_vulkan_memory_model", 3 },
{ 79, "VK_KHR_zero_initialize_workgroup_memory", 1 },
{ 80, "VK_MESA_venus_protocol", 100000 },
};
return bsearch(name, vn_info_extensions, 78,
return bsearch(name, vn_info_extensions, 81,
sizeof(*vn_info_extensions), vn_info_extension_compare);
}

@ -707,6 +707,126 @@ vn_replace_VkPipelineRasterizationStateStreamCreateInfoEXT_handle(VkPipelineRast
} while (pnext);
}
/* struct VkPipelineRasterizationLineStateCreateInfoEXT chain */
static inline void *
vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_self_temp(struct vn_cs_decoder *dec, VkPipelineRasterizationLineStateCreateInfoEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkLineRasterizationModeEXT(dec, &val->lineRasterizationMode);
vn_decode_VkBool32(dec, &val->stippledLineEnable);
vn_decode_uint32_t(dec, &val->lineStippleFactor);
vn_decode_uint16_t(dec, &val->lineStipplePattern);
}
static inline void
vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_temp(struct vn_cs_decoder *dec, VkPipelineRasterizationLineStateCreateInfoEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_pnext_temp(dec);
vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_self_temp(dec, val);
}
static inline void
vn_replace_VkPipelineRasterizationLineStateCreateInfoEXT_handle_self(VkPipelineRasterizationLineStateCreateInfoEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->lineRasterizationMode */
/* skip val->stippledLineEnable */
/* skip val->lineStippleFactor */
/* skip val->lineStipplePattern */
}
static inline void
vn_replace_VkPipelineRasterizationLineStateCreateInfoEXT_handle(VkPipelineRasterizationLineStateCreateInfoEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
vn_replace_VkPipelineRasterizationLineStateCreateInfoEXT_handle_self((VkPipelineRasterizationLineStateCreateInfoEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT chain */
static inline void *
vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_self_temp(struct vn_cs_decoder *dec, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkProvokingVertexModeEXT(dec, &val->provokingVertexMode);
}
static inline void
vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_temp(struct vn_cs_decoder *dec, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_pnext_temp(dec);
vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_self_temp(dec, val);
}
static inline void
vn_replace_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_handle_self(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->provokingVertexMode */
}
static inline void
vn_replace_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_handle(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
vn_replace_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_handle_self((VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkPipelineRasterizationStateCreateInfo chain */
static inline void *
@ -728,6 +848,22 @@ vn_decode_VkPipelineRasterizationStateCreateInfo_pnext_temp(struct vn_cs_decoder
vn_decode_VkPipelineRasterizationStateStreamCreateInfoEXT_self_temp(dec, (VkPipelineRasterizationStateStreamCreateInfoEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineRasterizationLineStateCreateInfoEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPipelineRasterizationStateCreateInfo_pnext_temp(dec);
vn_decode_VkPipelineRasterizationLineStateCreateInfoEXT_self_temp(dec, (VkPipelineRasterizationLineStateCreateInfoEXT *)pnext);
}
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
pnext = vn_cs_decoder_alloc_temp(dec, sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT));
if (pnext) {
pnext->sType = stype;
pnext->pNext = vn_decode_VkPipelineRasterizationStateCreateInfo_pnext_temp(dec);
vn_decode_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_self_temp(dec, (VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *)pnext);
}
break;
default:
/* unexpected struct */
pnext = NULL;
@ -799,6 +935,12 @@ vn_replace_VkPipelineRasterizationStateCreateInfo_handle(VkPipelineRasterization
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
vn_replace_VkPipelineRasterizationStateStreamCreateInfoEXT_handle_self((VkPipelineRasterizationStateStreamCreateInfoEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
vn_replace_VkPipelineRasterizationLineStateCreateInfoEXT_handle_self((VkPipelineRasterizationLineStateCreateInfoEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
vn_replace_VkPipelineRasterizationProvokingVertexStateCreateInfoEXT_handle_self((VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;

@ -21,6 +21,63 @@
* vkGetMemoryFdPropertiesKHR
*/
/* struct VkCalibratedTimestampInfoEXT chain */
static inline void *
vn_decode_VkCalibratedTimestampInfoEXT_pnext_temp(struct vn_cs_decoder *dec)
{
/* no known/supported struct */
if (vn_decode_simple_pointer(dec))
vn_cs_decoder_set_fatal(dec);
return NULL;
}
static inline void
vn_decode_VkCalibratedTimestampInfoEXT_self_temp(struct vn_cs_decoder *dec, VkCalibratedTimestampInfoEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkTimeDomainEXT(dec, &val->timeDomain);
}
static inline void
vn_decode_VkCalibratedTimestampInfoEXT_temp(struct vn_cs_decoder *dec, VkCalibratedTimestampInfoEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
if (stype != VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)
vn_cs_decoder_set_fatal(dec);
val->sType = stype;
val->pNext = vn_decode_VkCalibratedTimestampInfoEXT_pnext_temp(dec);
vn_decode_VkCalibratedTimestampInfoEXT_self_temp(dec, val);
}
static inline void
vn_replace_VkCalibratedTimestampInfoEXT_handle_self(VkCalibratedTimestampInfoEXT *val)
{
/* skip val->sType */
/* skip val->pNext */
/* skip val->timeDomain */
}
static inline void
vn_replace_VkCalibratedTimestampInfoEXT_handle(VkCalibratedTimestampInfoEXT *val)
{
struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
do {
switch ((int32_t)pnext->sType) {
case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:
vn_replace_VkCalibratedTimestampInfoEXT_handle_self((VkCalibratedTimestampInfoEXT *)pnext);
break;
default:
/* ignore unknown/unsupported struct */
break;
}
pnext = pnext->pNext;
} while (pnext);
}
/* struct VkCommandStreamDescriptionMESA */
static inline void
@ -278,6 +335,67 @@ vn_decode_VkMemoryResourcePropertiesMESA_partial_temp(struct vn_cs_decoder *dec,
vn_decode_VkMemoryResourcePropertiesMESA_self_partial_temp(dec, val);
}
static inline void vn_decode_vkGetCalibratedTimestampsEXT_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetCalibratedTimestampsEXT *args)
{
vn_decode_VkDevice_lookup(dec, &args->device);
vn_decode_uint32_t(dec, &args->timestampCount);
if (vn_peek_array_size(dec)) {
const uint32_t iter_count = vn_decode_array_size(dec, args->timestampCount);
args->pTimestampInfos = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimestampInfos) * iter_count);
if (!args->pTimestampInfos) return;
for (uint32_t i = 0; i < iter_count; i++)
vn_decode_VkCalibratedTimestampInfoEXT_temp(dec, &((VkCalibratedTimestampInfoEXT *)args->pTimestampInfos)[i]);
} else {
vn_decode_array_size(dec, args->timestampCount);
args->pTimestampInfos = NULL;
}
if (vn_peek_array_size(dec)) {
const size_t array_size = vn_decode_array_size(dec, args->timestampCount);
args->pTimestamps = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pTimestamps) * array_size);
if (!args->pTimestamps) return;
} else {
vn_decode_array_size(dec, args->timestampCount);
args->pTimestamps = NULL;
}
if (vn_decode_simple_pointer(dec)) {
args->pMaxDeviation = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMaxDeviation));
if (!args->pMaxDeviation) return;
} else {
args->pMaxDeviation = NULL;
vn_cs_decoder_set_fatal(dec);
}
}
static inline void vn_replace_vkGetCalibratedTimestampsEXT_args_handle(struct vn_command_vkGetCalibratedTimestampsEXT *args)
{
vn_replace_VkDevice_handle(&args->device);
/* skip args->timestampCount */
if (args->pTimestampInfos) {
for (uint32_t i = 0; i < args->timestampCount; i++)
vn_replace_VkCalibratedTimestampInfoEXT_handle(&((VkCalibratedTimestampInfoEXT *)args->pTimestampInfos)[i]);
}
/* skip args->pTimestamps */
/* skip args->pMaxDeviation */
}
static inline void vn_encode_vkGetCalibratedTimestampsEXT_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetCalibratedTimestampsEXT *args)
{
vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetCalibratedTimestampsEXT_EXT});
vn_encode_VkResult(enc, &args->ret);
/* skip args->device */
/* skip args->timestampCount */
/* skip args->pTimestampInfos */
if (args->pTimestamps) {
vn_encode_array_size(enc, args->timestampCount);
vn_encode_uint64_t_array(enc, args->pTimestamps, args->timestampCount);
} else {
vn_encode_array_size(enc, 0);
}
if (vn_encode_simple_pointer(enc, args->pMaxDeviation))
vn_encode_uint64_t(enc, args->pMaxDeviation);
}
static inline void vn_decode_vkSetReplyCommandStreamMESA_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkSetReplyCommandStreamMESA *args)
{
if (vn_decode_simple_pointer(dec)) {
@ -547,6 +665,35 @@ static inline void vn_encode_vkGetVenusExperimentalFeatureData100000MESA_reply(s
}
}
static inline void vn_dispatch_vkGetCalibratedTimestampsEXT(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkGetCalibratedTimestampsEXT args;
if (!ctx->dispatch_vkGetCalibratedTimestampsEXT) {
vn_cs_decoder_set_fatal(ctx->decoder);
return;
}
vn_decode_vkGetCalibratedTimestampsEXT_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_vkGetCalibratedTimestampsEXT(ctx, &args);
#ifdef DEBUG
if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
vn_dispatch_debug_log(ctx, "vkGetCalibratedTimestampsEXT returned %d", args.ret);
#endif
if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
vn_encode_vkGetCalibratedTimestampsEXT_reply(ctx->encoder, &args);
vn_cs_decoder_reset_temp_pool(ctx->decoder);
}
static inline void vn_dispatch_vkSetReplyCommandStreamMESA(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
{
struct vn_command_vkSetReplyCommandStreamMESA args;

@ -297,6 +297,20 @@ vn_decode_uint8_t_array(struct vn_cs_decoder *dec, uint8_t *val, uint32_t count)
vn_decode(dec, (size + 3) & ~3, val, size);
}
/* uint16_t */
static inline void
vn_encode_uint16_t(struct vn_cs_encoder *enc, const uint16_t *val)
{
vn_encode(enc, 4, val, sizeof(*val));
}
static inline void
vn_decode_uint16_t(struct vn_cs_decoder *dec, uint16_t *val)
{
vn_decode(dec, 4, val, sizeof(*val));
}
/* typedef uint32_t VkSampleMask */
static inline void
@ -1913,6 +1927,32 @@ vn_decode_VkPointClippingBehavior(struct vn_cs_decoder *dec, VkPointClippingBeha
vn_decode_int32_t(dec, (int32_t *)val);
}
/* enum VkTimeDomainEXT */
static inline void
vn_encode_VkTimeDomainEXT(struct vn_cs_encoder *enc, const VkTimeDomainEXT *val)
{
vn_encode_int32_t(enc, (const int32_t *)val);
}
static inline void
vn_decode_VkTimeDomainEXT(struct vn_cs_decoder *dec, VkTimeDomainEXT *val)
{
vn_decode_int32_t(dec, (int32_t *)val);
}
static inline void
vn_encode_VkTimeDomainEXT_array(struct vn_cs_encoder *enc, const VkTimeDomainEXT *val, uint32_t count)
{
vn_encode_int32_t_array(enc, (const int32_t *)val, count);
}
static inline void
vn_decode_VkTimeDomainEXT_array(struct vn_cs_decoder *dec, VkTimeDomainEXT *val, uint32_t count)
{
vn_decode_int32_t_array(dec, (int32_t *)val, count);
}
/* enum VkSemaphoreType */
static inline void
@ -1927,6 +1967,34 @@ vn_decode_VkSemaphoreType(struct vn_cs_decoder *dec, VkSemaphoreType *val)
vn_decode_int32_t(dec, (int32_t *)val);
}
/* enum VkLineRasterizationModeEXT */
static inline void
vn_encode_VkLineRasterizationModeEXT(struct vn_cs_encoder *enc, const VkLineRasterizationModeEXT *val)
{
vn_encode_int32_t(enc, (const int32_t *)val);
}
static inline void
vn_decode_VkLineRasterizationModeEXT(struct vn_cs_decoder *dec, VkLineRasterizationModeEXT *val)
{
vn_decode_int32_t(dec, (int32_t *)val);
}
/* enum VkProvokingVertexModeEXT */
static inline void
vn_encode_VkProvokingVertexModeEXT(struct vn_cs_encoder *enc, const VkProvokingVertexModeEXT *val)
{
vn_encode_int32_t(enc, (const int32_t *)val);
}
static inline void
vn_decode_VkProvokingVertexModeEXT(struct vn_cs_decoder *dec, VkProvokingVertexModeEXT *val)
{
vn_decode_int32_t(dec, (int32_t *)val);
}
/* enum VkTessellationDomainOrigin */
static inline void

Loading…
Cancel
Save