venus: sync protocol for VK_EXT_mesh_shader support

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38739>
This commit is contained in:
Yiwei Zhang 2025-12-01 01:13:55 -08:00 committed by Marge Bot
parent 86419dd519
commit 6fb6a740d9
5 changed files with 723 additions and 3 deletions

View file

@ -1,4 +1,4 @@
/* This file is generated by venus-protocol git-06940dd5. */ /* This file is generated by venus-protocol git-9fa07f3c. */
/* /*
* Copyright 2020 Google LLC * Copyright 2020 Google LLC

View file

@ -7779,6 +7779,178 @@ static inline void vn_decode_vkCmdDrawIndirectByteCountEXT_reply(struct vn_cs_de
/* skip vertexStride */ /* skip vertexStride */
} }
static inline size_t vn_sizeof_vkCmdDrawMeshTasksEXT(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksEXT_EXT;
const VkFlags cmd_flags = 0;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer);
cmd_size += vn_sizeof_uint32_t(&groupCountX);
cmd_size += vn_sizeof_uint32_t(&groupCountY);
cmd_size += vn_sizeof_uint32_t(&groupCountZ);
return cmd_size;
}
static inline void vn_encode_vkCmdDrawMeshTasksEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksEXT_EXT;
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
vn_encode_VkFlags(enc, &cmd_flags);
vn_encode_VkCommandBuffer(enc, &commandBuffer);
vn_encode_uint32_t(enc, &groupCountX);
vn_encode_uint32_t(enc, &groupCountY);
vn_encode_uint32_t(enc, &groupCountZ);
}
static inline size_t vn_sizeof_vkCmdDrawMeshTasksEXT_reply(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksEXT_EXT;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
/* skip commandBuffer */
/* skip groupCountX */
/* skip groupCountY */
/* skip groupCountZ */
return cmd_size;
}
static inline void vn_decode_vkCmdDrawMeshTasksEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
{
VkCommandTypeEXT command_type;
vn_decode_VkCommandTypeEXT(dec, &command_type);
assert(command_type == VK_COMMAND_TYPE_vkCmdDrawMeshTasksEXT_EXT);
/* skip commandBuffer */
/* skip groupCountX */
/* skip groupCountY */
/* skip groupCountZ */
}
static inline size_t vn_sizeof_vkCmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectEXT_EXT;
const VkFlags cmd_flags = 0;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer);
cmd_size += vn_sizeof_VkBuffer(&buffer);
cmd_size += vn_sizeof_VkDeviceSize(&offset);
cmd_size += vn_sizeof_uint32_t(&drawCount);
cmd_size += vn_sizeof_uint32_t(&stride);
return cmd_size;
}
static inline void vn_encode_vkCmdDrawMeshTasksIndirectEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectEXT_EXT;
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
vn_encode_VkFlags(enc, &cmd_flags);
vn_encode_VkCommandBuffer(enc, &commandBuffer);
vn_encode_VkBuffer(enc, &buffer);
vn_encode_VkDeviceSize(enc, &offset);
vn_encode_uint32_t(enc, &drawCount);
vn_encode_uint32_t(enc, &stride);
}
static inline size_t vn_sizeof_vkCmdDrawMeshTasksIndirectEXT_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectEXT_EXT;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
/* skip commandBuffer */
/* skip buffer */
/* skip offset */
/* skip drawCount */
/* skip stride */
return cmd_size;
}
static inline void vn_decode_vkCmdDrawMeshTasksIndirectEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
VkCommandTypeEXT command_type;
vn_decode_VkCommandTypeEXT(dec, &command_type);
assert(command_type == VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectEXT_EXT);
/* skip commandBuffer */
/* skip buffer */
/* skip offset */
/* skip drawCount */
/* skip stride */
}
static inline size_t vn_sizeof_vkCmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectCountEXT_EXT;
const VkFlags cmd_flags = 0;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
cmd_size += vn_sizeof_VkCommandBuffer(&commandBuffer);
cmd_size += vn_sizeof_VkBuffer(&buffer);
cmd_size += vn_sizeof_VkDeviceSize(&offset);
cmd_size += vn_sizeof_VkBuffer(&countBuffer);
cmd_size += vn_sizeof_VkDeviceSize(&countBufferOffset);
cmd_size += vn_sizeof_uint32_t(&maxDrawCount);
cmd_size += vn_sizeof_uint32_t(&stride);
return cmd_size;
}
static inline void vn_encode_vkCmdDrawMeshTasksIndirectCountEXT(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectCountEXT_EXT;
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
vn_encode_VkFlags(enc, &cmd_flags);
vn_encode_VkCommandBuffer(enc, &commandBuffer);
vn_encode_VkBuffer(enc, &buffer);
vn_encode_VkDeviceSize(enc, &offset);
vn_encode_VkBuffer(enc, &countBuffer);
vn_encode_VkDeviceSize(enc, &countBufferOffset);
vn_encode_uint32_t(enc, &maxDrawCount);
vn_encode_uint32_t(enc, &stride);
}
static inline size_t vn_sizeof_vkCmdDrawMeshTasksIndirectCountEXT_reply(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectCountEXT_EXT;
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
/* skip commandBuffer */
/* skip buffer */
/* skip offset */
/* skip countBuffer */
/* skip countBufferOffset */
/* skip maxDrawCount */
/* skip stride */
return cmd_size;
}
static inline void vn_decode_vkCmdDrawMeshTasksIndirectCountEXT_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
VkCommandTypeEXT command_type;
vn_decode_VkCommandTypeEXT(dec, &command_type);
assert(command_type == VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectCountEXT_EXT);
/* skip commandBuffer */
/* skip buffer */
/* skip offset */
/* skip countBuffer */
/* skip countBufferOffset */
/* skip maxDrawCount */
/* skip stride */
}
static inline size_t vn_sizeof_vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) static inline size_t vn_sizeof_vkCmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo)
{ {
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyAccelerationStructureKHR_EXT; const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdCopyAccelerationStructureKHR_EXT;
@ -13016,6 +13188,69 @@ static inline void vn_submit_vkCmdDrawIndirectByteCountEXT(struct vn_ring *vn_ri
} }
} }
static inline void vn_submit_vkCmdDrawMeshTasksEXT(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, struct vn_ring_submit_command *submit)
{
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
void *cmd_data = local_cmd_data;
size_t cmd_size = vn_sizeof_vkCmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
if (cmd_size > sizeof(local_cmd_data)) {
cmd_data = malloc(cmd_size);
if (!cmd_data)
cmd_size = 0;
}
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawMeshTasksEXT_reply(commandBuffer, groupCountX, groupCountY, groupCountZ) : 0;
struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
if (cmd_size) {
vn_encode_vkCmdDrawMeshTasksEXT(enc, cmd_flags, commandBuffer, groupCountX, groupCountY, groupCountZ);
vn_ring_submit_command(vn_ring, submit);
if (cmd_data != local_cmd_data)
free(cmd_data);
}
}
static inline void vn_submit_vkCmdDrawMeshTasksIndirectEXT(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride, struct vn_ring_submit_command *submit)
{
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
void *cmd_data = local_cmd_data;
size_t cmd_size = vn_sizeof_vkCmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
if (cmd_size > sizeof(local_cmd_data)) {
cmd_data = malloc(cmd_size);
if (!cmd_data)
cmd_size = 0;
}
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawMeshTasksIndirectEXT_reply(commandBuffer, buffer, offset, drawCount, stride) : 0;
struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
if (cmd_size) {
vn_encode_vkCmdDrawMeshTasksIndirectEXT(enc, cmd_flags, commandBuffer, buffer, offset, drawCount, stride);
vn_ring_submit_command(vn_ring, submit);
if (cmd_data != local_cmd_data)
free(cmd_data);
}
}
static inline void vn_submit_vkCmdDrawMeshTasksIndirectCountEXT(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, struct vn_ring_submit_command *submit)
{
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
void *cmd_data = local_cmd_data;
size_t cmd_size = vn_sizeof_vkCmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
if (cmd_size > sizeof(local_cmd_data)) {
cmd_data = malloc(cmd_size);
if (!cmd_data)
cmd_size = 0;
}
const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCmdDrawMeshTasksIndirectCountEXT_reply(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride) : 0;
struct vn_cs_encoder *enc = vn_ring_submit_command_init(vn_ring, submit, cmd_data, cmd_size, reply_size);
if (cmd_size) {
vn_encode_vkCmdDrawMeshTasksIndirectCountEXT(enc, cmd_flags, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
vn_ring_submit_command(vn_ring, submit);
if (cmd_data != local_cmd_data)
free(cmd_data);
}
}
static inline void vn_submit_vkCmdCopyAccelerationStructureKHR(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo, struct vn_ring_submit_command *submit) static inline void vn_submit_vkCmdCopyAccelerationStructureKHR(struct vn_ring *vn_ring, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo, struct vn_ring_submit_command *submit)
{ {
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
@ -15027,6 +15262,24 @@ static inline void vn_async_vkCmdDrawIndirectByteCountEXT(struct vn_ring *vn_rin
vn_submit_vkCmdDrawIndirectByteCountEXT(vn_ring, 0, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, &submit); vn_submit_vkCmdDrawIndirectByteCountEXT(vn_ring, 0, commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, &submit);
} }
static inline void vn_async_vkCmdDrawMeshTasksEXT(struct vn_ring *vn_ring, VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
{
struct vn_ring_submit_command submit;
vn_submit_vkCmdDrawMeshTasksEXT(vn_ring, 0, commandBuffer, groupCountX, groupCountY, groupCountZ, &submit);
}
static inline void vn_async_vkCmdDrawMeshTasksIndirectEXT(struct vn_ring *vn_ring, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
{
struct vn_ring_submit_command submit;
vn_submit_vkCmdDrawMeshTasksIndirectEXT(vn_ring, 0, commandBuffer, buffer, offset, drawCount, stride, &submit);
}
static inline void vn_async_vkCmdDrawMeshTasksIndirectCountEXT(struct vn_ring *vn_ring, VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
{
struct vn_ring_submit_command submit;
vn_submit_vkCmdDrawMeshTasksIndirectCountEXT(vn_ring, 0, commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, &submit);
}
static inline void vn_async_vkCmdCopyAccelerationStructureKHR(struct vn_ring *vn_ring, VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) static inline void vn_async_vkCmdCopyAccelerationStructureKHR(struct vn_ring *vn_ring, VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo)
{ {
struct vn_ring_submit_command submit; struct vn_ring_submit_command submit;

View file

@ -462,6 +462,9 @@ typedef enum VkCommandTypeEXT {
VK_COMMAND_TYPE_vkCmdSetAttachmentFeedbackLoopEnableEXT_EXT = 329, VK_COMMAND_TYPE_vkCmdSetAttachmentFeedbackLoopEnableEXT_EXT = 329,
VK_COMMAND_TYPE_vkCmdSetDepthClampRangeEXT_EXT = 330, VK_COMMAND_TYPE_vkCmdSetDepthClampRangeEXT_EXT = 330,
VK_COMMAND_TYPE_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR_EXT = 331, VK_COMMAND_TYPE_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR_EXT = 331,
VK_COMMAND_TYPE_vkCmdDrawMeshTasksEXT_EXT = 332,
VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectEXT_EXT = 333,
VK_COMMAND_TYPE_vkCmdDrawMeshTasksIndirectCountEXT_EXT = 334,
} VkCommandTypeEXT; } VkCommandTypeEXT;
typedef enum VkCommandFlagBitsEXT { typedef enum VkCommandFlagBitsEXT {

View file

@ -5601,6 +5601,157 @@ vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_partial(struct vn
vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial(enc, val); vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial(enc, val);
} }
/* struct VkPhysicalDeviceMeshShaderFeaturesEXT chain */
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext(const void *val)
{
/* no known/supported struct */
return vn_sizeof_simple_pointer(NULL);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self(const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
size_t size = 0;
/* skip val->{sType,pNext} */
size += vn_sizeof_VkBool32(&val->taskShader);
size += vn_sizeof_VkBool32(&val->meshShader);
size += vn_sizeof_VkBool32(&val->multiviewMeshShader);
size += vn_sizeof_VkBool32(&val->primitiveFragmentShadingRateMeshShader);
size += vn_sizeof_VkBool32(&val->meshShaderQueries);
return size;
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT(const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
size_t size = 0;
size += vn_sizeof_VkStructureType(&val->sType);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext(val->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self(val);
return size;
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
{
/* no known/supported struct */
vn_encode_simple_pointer(enc, NULL);
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_encode_VkBool32(enc, &val->taskShader);
vn_encode_VkBool32(enc, &val->meshShader);
vn_encode_VkBool32(enc, &val->multiviewMeshShader);
vn_encode_VkBool32(enc, &val->primitiveFragmentShadingRateMeshShader);
vn_encode_VkBool32(enc, &val->meshShaderQueries);
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT });
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext(enc, val->pNext);
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(enc, val);
}
static inline void
vn_decode_VkPhysicalDeviceMeshShaderFeaturesEXT_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_VkPhysicalDeviceMeshShaderFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_VkBool32(dec, &val->taskShader);
vn_decode_VkBool32(dec, &val->meshShader);
vn_decode_VkBool32(dec, &val->multiviewMeshShader);
vn_decode_VkBool32(dec, &val->primitiveFragmentShadingRateMeshShader);
vn_decode_VkBool32(dec, &val->meshShaderQueries);
}
static inline void
vn_decode_VkPhysicalDeviceMeshShaderFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT);
assert(val->sType == stype);
vn_decode_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext(dec, val->pNext);
vn_decode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(dec, val);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext_partial(const void *val)
{
/* no known/supported struct */
return vn_sizeof_simple_pointer(NULL);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial(const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
size_t size = 0;
/* skip val->{sType,pNext} */
/* skip val->taskShader */
/* skip val->meshShader */
/* skip val->multiviewMeshShader */
/* skip val->primitiveFragmentShadingRateMeshShader */
/* skip val->meshShaderQueries */
return size;
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_partial(const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
size_t size = 0;
size += vn_sizeof_VkStructureType(&val->sType);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext_partial(val->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial(val);
return size;
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_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_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->taskShader */
/* skip val->meshShader */
/* skip val->multiviewMeshShader */
/* skip val->primitiveFragmentShadingRateMeshShader */
/* skip val->meshShaderQueries */
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderFeaturesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT });
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_pnext_partial(enc, val->pNext);
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial(enc, val);
}
/* struct VkPhysicalDeviceAccelerationStructureFeaturesKHR chain */ /* struct VkPhysicalDeviceAccelerationStructureFeaturesKHR chain */
static inline size_t static inline size_t
@ -17692,6 +17843,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val)
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return size; return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self((const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -18600,6 +18759,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext); vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return; return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(enc, (const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -19423,6 +19590,10 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_decoder *dec, const void
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(dec, (VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); vn_decode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(dec, (VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
break; break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(dec, (VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceAccelerationStructureFeaturesKHR_self(dec, (VkPhysicalDeviceAccelerationStructureFeaturesKHR *)pnext); vn_decode_VkPhysicalDeviceAccelerationStructureFeaturesKHR_self(dec, (VkPhysicalDeviceAccelerationStructureFeaturesKHR *)pnext);
@ -20004,6 +20175,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val)
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return size; return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial((const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -20912,6 +21091,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, con
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext); vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self_partial(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return; return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -21905,6 +22092,14 @@ vn_sizeof_VkDeviceCreateInfo_pnext(const void *val)
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext); size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); size += vn_sizeof_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self((const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return size; return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderFeaturesEXT_self((const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -22866,6 +23061,14 @@ vn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext); vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext); vn_encode_VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR_self(enc, (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR *)pnext);
return; return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceMeshShaderFeaturesEXT_self(enc, (const VkPhysicalDeviceMeshShaderFeaturesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -26972,6 +27175,238 @@ vn_encode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_partial(struct v
vn_encode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial(enc, val); vn_encode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial(enc, val);
} }
/* struct VkPhysicalDeviceMeshShaderPropertiesEXT chain */
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext(const void *val)
{
/* no known/supported struct */
return vn_sizeof_simple_pointer(NULL);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self(const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
size_t size = 0;
/* skip val->{sType,pNext} */
size += vn_sizeof_uint32_t(&val->maxTaskWorkGroupTotalCount);
size += vn_sizeof_array_size(3);
size += vn_sizeof_uint32_t_array(val->maxTaskWorkGroupCount, 3);
size += vn_sizeof_uint32_t(&val->maxTaskWorkGroupInvocations);
size += vn_sizeof_array_size(3);
size += vn_sizeof_uint32_t_array(val->maxTaskWorkGroupSize, 3);
size += vn_sizeof_uint32_t(&val->maxTaskPayloadSize);
size += vn_sizeof_uint32_t(&val->maxTaskSharedMemorySize);
size += vn_sizeof_uint32_t(&val->maxTaskPayloadAndSharedMemorySize);
size += vn_sizeof_uint32_t(&val->maxMeshWorkGroupTotalCount);
size += vn_sizeof_array_size(3);
size += vn_sizeof_uint32_t_array(val->maxMeshWorkGroupCount, 3);
size += vn_sizeof_uint32_t(&val->maxMeshWorkGroupInvocations);
size += vn_sizeof_array_size(3);
size += vn_sizeof_uint32_t_array(val->maxMeshWorkGroupSize, 3);
size += vn_sizeof_uint32_t(&val->maxMeshSharedMemorySize);
size += vn_sizeof_uint32_t(&val->maxMeshPayloadAndSharedMemorySize);
size += vn_sizeof_uint32_t(&val->maxMeshOutputMemorySize);
size += vn_sizeof_uint32_t(&val->maxMeshPayloadAndOutputMemorySize);
size += vn_sizeof_uint32_t(&val->maxMeshOutputComponents);
size += vn_sizeof_uint32_t(&val->maxMeshOutputVertices);
size += vn_sizeof_uint32_t(&val->maxMeshOutputPrimitives);
size += vn_sizeof_uint32_t(&val->maxMeshOutputLayers);
size += vn_sizeof_uint32_t(&val->maxMeshMultiviewViewCount);
size += vn_sizeof_uint32_t(&val->meshOutputPerVertexGranularity);
size += vn_sizeof_uint32_t(&val->meshOutputPerPrimitiveGranularity);
size += vn_sizeof_uint32_t(&val->maxPreferredTaskWorkGroupInvocations);
size += vn_sizeof_uint32_t(&val->maxPreferredMeshWorkGroupInvocations);
size += vn_sizeof_VkBool32(&val->prefersLocalInvocationVertexOutput);
size += vn_sizeof_VkBool32(&val->prefersLocalInvocationPrimitiveOutput);
size += vn_sizeof_VkBool32(&val->prefersCompactVertexOutput);
size += vn_sizeof_VkBool32(&val->prefersCompactPrimitiveOutput);
return size;
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT(const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
size_t size = 0;
size += vn_sizeof_VkStructureType(&val->sType);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext(val->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self(val);
return size;
}
static inline void
vn_decode_VkPhysicalDeviceMeshShaderPropertiesEXT_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_VkPhysicalDeviceMeshShaderPropertiesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
vn_decode_uint32_t(dec, &val->maxTaskWorkGroupTotalCount);
{
const size_t array_size = vn_decode_array_size(dec, 3);
vn_decode_uint32_t_array(dec, val->maxTaskWorkGroupCount, array_size);
}
vn_decode_uint32_t(dec, &val->maxTaskWorkGroupInvocations);
{
const size_t array_size = vn_decode_array_size(dec, 3);
vn_decode_uint32_t_array(dec, val->maxTaskWorkGroupSize, array_size);
}
vn_decode_uint32_t(dec, &val->maxTaskPayloadSize);
vn_decode_uint32_t(dec, &val->maxTaskSharedMemorySize);
vn_decode_uint32_t(dec, &val->maxTaskPayloadAndSharedMemorySize);
vn_decode_uint32_t(dec, &val->maxMeshWorkGroupTotalCount);
{
const size_t array_size = vn_decode_array_size(dec, 3);
vn_decode_uint32_t_array(dec, val->maxMeshWorkGroupCount, array_size);
}
vn_decode_uint32_t(dec, &val->maxMeshWorkGroupInvocations);
{
const size_t array_size = vn_decode_array_size(dec, 3);
vn_decode_uint32_t_array(dec, val->maxMeshWorkGroupSize, array_size);
}
vn_decode_uint32_t(dec, &val->maxMeshSharedMemorySize);
vn_decode_uint32_t(dec, &val->maxMeshPayloadAndSharedMemorySize);
vn_decode_uint32_t(dec, &val->maxMeshOutputMemorySize);
vn_decode_uint32_t(dec, &val->maxMeshPayloadAndOutputMemorySize);
vn_decode_uint32_t(dec, &val->maxMeshOutputComponents);
vn_decode_uint32_t(dec, &val->maxMeshOutputVertices);
vn_decode_uint32_t(dec, &val->maxMeshOutputPrimitives);
vn_decode_uint32_t(dec, &val->maxMeshOutputLayers);
vn_decode_uint32_t(dec, &val->maxMeshMultiviewViewCount);
vn_decode_uint32_t(dec, &val->meshOutputPerVertexGranularity);
vn_decode_uint32_t(dec, &val->meshOutputPerPrimitiveGranularity);
vn_decode_uint32_t(dec, &val->maxPreferredTaskWorkGroupInvocations);
vn_decode_uint32_t(dec, &val->maxPreferredMeshWorkGroupInvocations);
vn_decode_VkBool32(dec, &val->prefersLocalInvocationVertexOutput);
vn_decode_VkBool32(dec, &val->prefersLocalInvocationPrimitiveOutput);
vn_decode_VkBool32(dec, &val->prefersCompactVertexOutput);
vn_decode_VkBool32(dec, &val->prefersCompactPrimitiveOutput);
}
static inline void
vn_decode_VkPhysicalDeviceMeshShaderPropertiesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
VkStructureType stype;
vn_decode_VkStructureType(dec, &stype);
assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT);
assert(val->sType == stype);
vn_decode_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext(dec, val->pNext);
vn_decode_VkPhysicalDeviceMeshShaderPropertiesEXT_self(dec, val);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext_partial(const void *val)
{
/* no known/supported struct */
return vn_sizeof_simple_pointer(NULL);
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial(const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
size_t size = 0;
/* skip val->{sType,pNext} */
/* skip val->maxTaskWorkGroupTotalCount */
/* skip val->maxTaskWorkGroupCount */
/* skip val->maxTaskWorkGroupInvocations */
/* skip val->maxTaskWorkGroupSize */
/* skip val->maxTaskPayloadSize */
/* skip val->maxTaskSharedMemorySize */
/* skip val->maxTaskPayloadAndSharedMemorySize */
/* skip val->maxMeshWorkGroupTotalCount */
/* skip val->maxMeshWorkGroupCount */
/* skip val->maxMeshWorkGroupInvocations */
/* skip val->maxMeshWorkGroupSize */
/* skip val->maxMeshSharedMemorySize */
/* skip val->maxMeshPayloadAndSharedMemorySize */
/* skip val->maxMeshOutputMemorySize */
/* skip val->maxMeshPayloadAndOutputMemorySize */
/* skip val->maxMeshOutputComponents */
/* skip val->maxMeshOutputVertices */
/* skip val->maxMeshOutputPrimitives */
/* skip val->maxMeshOutputLayers */
/* skip val->maxMeshMultiviewViewCount */
/* skip val->meshOutputPerVertexGranularity */
/* skip val->meshOutputPerPrimitiveGranularity */
/* skip val->maxPreferredTaskWorkGroupInvocations */
/* skip val->maxPreferredMeshWorkGroupInvocations */
/* skip val->prefersLocalInvocationVertexOutput */
/* skip val->prefersLocalInvocationPrimitiveOutput */
/* skip val->prefersCompactVertexOutput */
/* skip val->prefersCompactPrimitiveOutput */
return size;
}
static inline size_t
vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_partial(const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
size_t size = 0;
size += vn_sizeof_VkStructureType(&val->sType);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext_partial(val->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial(val);
return size;
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderPropertiesEXT_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_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
/* skip val->{sType,pNext} */
/* skip val->maxTaskWorkGroupTotalCount */
/* skip val->maxTaskWorkGroupCount */
/* skip val->maxTaskWorkGroupInvocations */
/* skip val->maxTaskWorkGroupSize */
/* skip val->maxTaskPayloadSize */
/* skip val->maxTaskSharedMemorySize */
/* skip val->maxTaskPayloadAndSharedMemorySize */
/* skip val->maxMeshWorkGroupTotalCount */
/* skip val->maxMeshWorkGroupCount */
/* skip val->maxMeshWorkGroupInvocations */
/* skip val->maxMeshWorkGroupSize */
/* skip val->maxMeshSharedMemorySize */
/* skip val->maxMeshPayloadAndSharedMemorySize */
/* skip val->maxMeshOutputMemorySize */
/* skip val->maxMeshPayloadAndOutputMemorySize */
/* skip val->maxMeshOutputComponents */
/* skip val->maxMeshOutputVertices */
/* skip val->maxMeshOutputPrimitives */
/* skip val->maxMeshOutputLayers */
/* skip val->maxMeshMultiviewViewCount */
/* skip val->meshOutputPerVertexGranularity */
/* skip val->meshOutputPerPrimitiveGranularity */
/* skip val->maxPreferredTaskWorkGroupInvocations */
/* skip val->maxPreferredMeshWorkGroupInvocations */
/* skip val->prefersLocalInvocationVertexOutput */
/* skip val->prefersLocalInvocationPrimitiveOutput */
/* skip val->prefersCompactVertexOutput */
/* skip val->prefersCompactPrimitiveOutput */
}
static inline void
vn_encode_VkPhysicalDeviceMeshShaderPropertiesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceMeshShaderPropertiesEXT *val)
{
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT);
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT });
vn_encode_VkPhysicalDeviceMeshShaderPropertiesEXT_pnext_partial(enc, val->pNext);
vn_encode_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial(enc, val);
}
/* struct VkPhysicalDeviceAccelerationStructurePropertiesKHR chain */ /* struct VkPhysicalDeviceAccelerationStructurePropertiesKHR chain */
static inline size_t static inline size_t
@ -30458,6 +30893,14 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext(const void *val)
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self((const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext); size += vn_sizeof_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self((const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext);
return size; return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self((const VkPhysicalDeviceMeshShaderPropertiesEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -30788,6 +31231,10 @@ vn_decode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_decoder *dec, const voi
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self(dec, (VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext); vn_decode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self(dec, (VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext);
break; break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceMeshShaderPropertiesEXT_self(dec, (VkPhysicalDeviceMeshShaderPropertiesEXT *)pnext);
break;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext); vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
vn_decode_VkPhysicalDeviceAccelerationStructurePropertiesKHR_self(dec, (VkPhysicalDeviceAccelerationStructurePropertiesKHR *)pnext); vn_decode_VkPhysicalDeviceAccelerationStructurePropertiesKHR_self(dec, (VkPhysicalDeviceAccelerationStructurePropertiesKHR *)pnext);
@ -31101,6 +31548,14 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(const void *val)
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext); size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial((const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext); size += vn_sizeof_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial((const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext);
return size; return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
size += vn_sizeof_simple_pointer(pnext);
size += vn_sizeof_VkStructureType(&pnext->sType);
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
size += vn_sizeof_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial((const VkPhysicalDeviceMeshShaderPropertiesEXT *)pnext);
return size;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;
@ -31503,6 +31958,14 @@ vn_encode_VkPhysicalDeviceProperties2_pnext_partial(struct vn_cs_encoder *enc, c
vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext); vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial(enc, (const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext); vn_encode_VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR_self_partial(enc, (const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR *)pnext);
return; return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
if (!vn_cs_renderer_protocol_has_extension(329 /* VK_EXT_mesh_shader */))
break;
vn_encode_simple_pointer(enc, pnext);
vn_encode_VkStructureType(enc, &pnext->sType);
vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
vn_encode_VkPhysicalDeviceMeshShaderPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceMeshShaderPropertiesEXT *)pnext);
return;
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */)) if (!vn_cs_renderer_protocol_has_extension(151 /* VK_KHR_acceleration_structure */))
break; break;

View file

@ -19,8 +19,8 @@ struct vn_info_extension {
}; };
/* sorted by extension names for bsearch */ /* sorted by extension names for bsearch */
static const uint32_t _vn_info_extension_count = 184; static const uint32_t _vn_info_extension_count = 185;
static const struct vn_info_extension _vn_info_extensions[184] = { static const struct vn_info_extension _vn_info_extensions[185] = {
{ "VK_ARM_rasterization_order_attachment_access", 343, 1 }, { "VK_ARM_rasterization_order_attachment_access", 343, 1 },
{ "VK_EXT_4444_formats", 341, 1 }, { "VK_EXT_4444_formats", 341, 1 },
{ "VK_EXT_attachment_feedback_loop_dynamic_state", 525, 1 }, { "VK_EXT_attachment_feedback_loop_dynamic_state", 525, 1 },
@ -66,6 +66,7 @@ static const struct vn_info_extension _vn_info_extensions[184] = {
{ "VK_EXT_line_rasterization", 260, 1 }, { "VK_EXT_line_rasterization", 260, 1 },
{ "VK_EXT_load_store_op_none", 401, 1 }, { "VK_EXT_load_store_op_none", 401, 1 },
{ "VK_EXT_memory_budget", 238, 1 }, { "VK_EXT_memory_budget", 238, 1 },
{ "VK_EXT_mesh_shader", 329, 1 },
{ "VK_EXT_multi_draw", 393, 1 }, { "VK_EXT_multi_draw", 393, 1 },
{ "VK_EXT_multisampled_render_to_single_sampled", 377, 1 }, { "VK_EXT_multisampled_render_to_single_sampled", 377, 1 },
{ "VK_EXT_mutable_descriptor_type", 495, 1 }, { "VK_EXT_mutable_descriptor_type", 495, 1 },