mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
venus: sync to latest venus protocol headers
This brings in: - VK_KHR_push_descriptor - VK_EXT_depth_clip_control - VK_EXT_primitives_generated_query Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19285>
This commit is contained in:
parent
4f2471e8c6
commit
4f22fb117d
8 changed files with 975 additions and 250 deletions
|
|
@ -1,4 +1,4 @@
|
|||
/* This file is generated by venus-protocol git-cca9a548. */
|
||||
/* This file is generated by venus-protocol git-ed9bd971. */
|
||||
|
||||
/*
|
||||
* Copyright 2020 Google LLC
|
||||
|
|
|
|||
|
|
@ -11,6 +11,12 @@
|
|||
#include "vn_instance.h"
|
||||
#include "vn_protocol_driver_structs.h"
|
||||
|
||||
/*
|
||||
* These structs/unions/commands are not included
|
||||
*
|
||||
* vkCmdPushDescriptorSetWithTemplateKHR
|
||||
*/
|
||||
|
||||
/* struct VkCommandBufferAllocateInfo chain */
|
||||
|
||||
static inline size_t
|
||||
|
|
@ -5790,6 +5796,78 @@ static inline void vn_decode_vkCmdExecuteCommands_reply(struct vn_cs_decoder *de
|
|||
/* skip pCommandBuffers */
|
||||
}
|
||||
|
||||
static inline size_t vn_sizeof_vkCmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushDescriptorSetKHR_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_VkPipelineBindPoint(&pipelineBindPoint);
|
||||
cmd_size += vn_sizeof_VkPipelineLayout(&layout);
|
||||
cmd_size += vn_sizeof_uint32_t(&set);
|
||||
cmd_size += vn_sizeof_uint32_t(&descriptorWriteCount);
|
||||
if (pDescriptorWrites) {
|
||||
cmd_size += vn_sizeof_array_size(descriptorWriteCount);
|
||||
for (uint32_t i = 0; i < descriptorWriteCount; i++)
|
||||
cmd_size += vn_sizeof_VkWriteDescriptorSet(&pDescriptorWrites[i]);
|
||||
} else {
|
||||
cmd_size += vn_sizeof_array_size(0);
|
||||
}
|
||||
|
||||
return cmd_size;
|
||||
}
|
||||
|
||||
static inline void vn_encode_vkCmdPushDescriptorSetKHR(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushDescriptorSetKHR_EXT;
|
||||
|
||||
vn_encode_VkCommandTypeEXT(enc, &cmd_type);
|
||||
vn_encode_VkFlags(enc, &cmd_flags);
|
||||
|
||||
vn_encode_VkCommandBuffer(enc, &commandBuffer);
|
||||
vn_encode_VkPipelineBindPoint(enc, &pipelineBindPoint);
|
||||
vn_encode_VkPipelineLayout(enc, &layout);
|
||||
vn_encode_uint32_t(enc, &set);
|
||||
vn_encode_uint32_t(enc, &descriptorWriteCount);
|
||||
if (pDescriptorWrites) {
|
||||
vn_encode_array_size(enc, descriptorWriteCount);
|
||||
for (uint32_t i = 0; i < descriptorWriteCount; i++)
|
||||
vn_encode_VkWriteDescriptorSet(enc, &pDescriptorWrites[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline size_t vn_sizeof_vkCmdPushDescriptorSetKHR_reply(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdPushDescriptorSetKHR_EXT;
|
||||
size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
|
||||
|
||||
/* skip commandBuffer */
|
||||
/* skip pipelineBindPoint */
|
||||
/* skip layout */
|
||||
/* skip set */
|
||||
/* skip descriptorWriteCount */
|
||||
/* skip pDescriptorWrites */
|
||||
|
||||
return cmd_size;
|
||||
}
|
||||
|
||||
static inline void vn_decode_vkCmdPushDescriptorSetKHR_reply(struct vn_cs_decoder *dec, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
VkCommandTypeEXT command_type;
|
||||
vn_decode_VkCommandTypeEXT(dec, &command_type);
|
||||
assert(command_type == VK_COMMAND_TYPE_vkCmdPushDescriptorSetKHR_EXT);
|
||||
|
||||
/* skip commandBuffer */
|
||||
/* skip pipelineBindPoint */
|
||||
/* skip layout */
|
||||
/* skip set */
|
||||
/* skip descriptorWriteCount */
|
||||
/* skip pDescriptorWrites */
|
||||
}
|
||||
|
||||
static inline size_t vn_sizeof_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask)
|
||||
{
|
||||
const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT;
|
||||
|
|
@ -9263,6 +9341,27 @@ static inline void vn_submit_vkCmdExecuteCommands(struct vn_instance *vn_instanc
|
|||
}
|
||||
}
|
||||
|
||||
static inline void vn_submit_vkCmdPushDescriptorSetKHR(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, struct vn_instance_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_vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
|
||||
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_vkCmdPushDescriptorSetKHR_reply(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites) : 0;
|
||||
|
||||
struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
|
||||
if (cmd_size) {
|
||||
vn_encode_vkCmdPushDescriptorSetKHR(enc, cmd_flags, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
|
||||
vn_instance_submit_command(vn_instance, submit);
|
||||
if (cmd_data != local_cmd_data)
|
||||
free(cmd_data);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void vn_submit_vkCmdSetDeviceMask(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkCommandBuffer commandBuffer, uint32_t deviceMask, struct vn_instance_submit_command *submit)
|
||||
{
|
||||
uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
|
||||
|
|
@ -11206,6 +11305,25 @@ static inline void vn_async_vkCmdExecuteCommands(struct vn_instance *vn_instance
|
|||
vn_submit_vkCmdExecuteCommands(vn_instance, 0, commandBuffer, commandBufferCount, pCommandBuffers, &submit);
|
||||
}
|
||||
|
||||
static inline void vn_call_vkCmdPushDescriptorSetKHR(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
VN_TRACE_FUNC();
|
||||
|
||||
struct vn_instance_submit_command submit;
|
||||
vn_submit_vkCmdPushDescriptorSetKHR(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, &submit);
|
||||
struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
|
||||
if (dec) {
|
||||
vn_decode_vkCmdPushDescriptorSetKHR_reply(dec, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
|
||||
vn_instance_free_command_reply(vn_instance, &submit);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void vn_async_vkCmdPushDescriptorSetKHR(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
|
||||
{
|
||||
struct vn_instance_submit_command submit;
|
||||
vn_submit_vkCmdPushDescriptorSetKHR(vn_instance, 0, commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, &submit);
|
||||
}
|
||||
|
||||
static inline void vn_call_vkCmdSetDeviceMask(struct vn_instance *vn_instance, VkCommandBuffer commandBuffer, uint32_t deviceMask)
|
||||
{
|
||||
VN_TRACE_FUNC();
|
||||
|
|
|
|||
|
|
@ -326,6 +326,8 @@ typedef enum VkCommandTypeEXT {
|
|||
VK_COMMAND_TYPE_vkGetMemoryFdPropertiesKHR_EXT = 194,
|
||||
VK_COMMAND_TYPE_vkImportSemaphoreFdKHR_EXT = 242,
|
||||
VK_COMMAND_TYPE_vkGetSemaphoreFdKHR_EXT = 243,
|
||||
VK_COMMAND_TYPE_vkCmdPushDescriptorSetKHR_EXT = 249,
|
||||
VK_COMMAND_TYPE_vkCmdPushDescriptorSetWithTemplateKHR_EXT = 250,
|
||||
VK_COMMAND_TYPE_vkCmdBeginConditionalRenderingEXT_EXT = 240,
|
||||
VK_COMMAND_TYPE_vkCmdEndConditionalRenderingEXT_EXT = 241,
|
||||
VK_COMMAND_TYPE_vkImportFenceFdKHR_EXT = 238,
|
||||
|
|
|
|||
|
|
@ -184,251 +184,6 @@ vn_encode_VkDescriptorSetAllocateInfo(struct vn_cs_encoder *enc, const VkDescrip
|
|||
vn_encode_VkDescriptorSetAllocateInfo_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkDescriptorImageInfo */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkDescriptorImageInfo(const VkDescriptorImageInfo *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
size += vn_sizeof_VkSampler(&val->sampler);
|
||||
size += vn_sizeof_VkImageView(&val->imageView);
|
||||
size += vn_sizeof_VkImageLayout(&val->imageLayout);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkDescriptorImageInfo(struct vn_cs_encoder *enc, const VkDescriptorImageInfo *val)
|
||||
{
|
||||
vn_encode_VkSampler(enc, &val->sampler);
|
||||
vn_encode_VkImageView(enc, &val->imageView);
|
||||
vn_encode_VkImageLayout(enc, &val->imageLayout);
|
||||
}
|
||||
|
||||
/* struct VkDescriptorBufferInfo */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkDescriptorBufferInfo(const VkDescriptorBufferInfo *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
size += vn_sizeof_VkBuffer(&val->buffer);
|
||||
size += vn_sizeof_VkDeviceSize(&val->offset);
|
||||
size += vn_sizeof_VkDeviceSize(&val->range);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkDescriptorBufferInfo(struct vn_cs_encoder *enc, const VkDescriptorBufferInfo *val)
|
||||
{
|
||||
vn_encode_VkBuffer(enc, &val->buffer);
|
||||
vn_encode_VkDeviceSize(enc, &val->offset);
|
||||
vn_encode_VkDeviceSize(enc, &val->range);
|
||||
}
|
||||
|
||||
/* struct VkWriteDescriptorSetInlineUniformBlock chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self(const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_uint32_t(&val->dataSize);
|
||||
if (val->pData) {
|
||||
size += vn_sizeof_array_size(val->dataSize);
|
||||
size += vn_sizeof_blob_array(val->pData, val->dataSize);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock(const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_pnext(val->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(struct vn_cs_encoder *enc, const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_uint32_t(enc, &val->dataSize);
|
||||
if (val->pData) {
|
||||
vn_encode_array_size(enc, val->dataSize);
|
||||
vn_encode_blob_array(enc, val->pData, val->dataSize);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock(struct vn_cs_encoder *enc, const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK });
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_pnext(enc, val->pNext);
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkWriteDescriptorSet chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet_pnext(const void *val)
|
||||
{
|
||||
const VkBaseInStructure *pnext = val;
|
||||
size_t size = 0;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
|
||||
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self((const VkWriteDescriptorSetInlineUniformBlock *)pnext);
|
||||
return size;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet_self(const VkWriteDescriptorSet *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_VkDescriptorSet(&val->dstSet);
|
||||
size += vn_sizeof_uint32_t(&val->dstBinding);
|
||||
size += vn_sizeof_uint32_t(&val->dstArrayElement);
|
||||
size += vn_sizeof_uint32_t(&val->descriptorCount);
|
||||
size += vn_sizeof_VkDescriptorType(&val->descriptorType);
|
||||
if (val->pImageInfo) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkDescriptorImageInfo(&val->pImageInfo[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
if (val->pBufferInfo) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkDescriptorBufferInfo(&val->pBufferInfo[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
if (val->pTexelBufferView) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkBufferView(&val->pTexelBufferView[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet(const VkWriteDescriptorSet *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_pnext(val->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
const VkBaseInStructure *pnext = val;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
|
||||
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkWriteDescriptorSet_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(enc, (const VkWriteDescriptorSetInlineUniformBlock *)pnext);
|
||||
return;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet_self(struct vn_cs_encoder *enc, const VkWriteDescriptorSet *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_VkDescriptorSet(enc, &val->dstSet);
|
||||
vn_encode_uint32_t(enc, &val->dstBinding);
|
||||
vn_encode_uint32_t(enc, &val->dstArrayElement);
|
||||
vn_encode_uint32_t(enc, &val->descriptorCount);
|
||||
vn_encode_VkDescriptorType(enc, &val->descriptorType);
|
||||
if (val->pImageInfo) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkDescriptorImageInfo(enc, &val->pImageInfo[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
if (val->pBufferInfo) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkDescriptorBufferInfo(enc, &val->pBufferInfo[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
if (val->pTexelBufferView) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkBufferView(enc, &val->pTexelBufferView[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet(struct vn_cs_encoder *enc, const VkWriteDescriptorSet *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET });
|
||||
vn_encode_VkWriteDescriptorSet_pnext(enc, val->pNext);
|
||||
vn_encode_VkWriteDescriptorSet_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkCopyDescriptorSet chain */
|
||||
|
||||
static inline size_t
|
||||
|
|
|
|||
|
|
@ -8053,6 +8053,137 @@ vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_partial(struct vn_cs_
|
|||
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPhysicalDeviceDepthClipControlFeaturesEXT chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_VkBool32(&val->depthClipControl);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT(const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_VkBool32(enc, &val->depthClipControl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT });
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(enc, val->pNext);
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(enc, val);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_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_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_decode_VkBool32(dec, &val->depthClipControl);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
VkStructureType stype;
|
||||
vn_decode_VkStructureType(dec, &stype);
|
||||
assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT);
|
||||
|
||||
assert(val->sType == stype);
|
||||
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext(dec, val->pNext);
|
||||
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(dec, val);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial(const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->depthClipControl */
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_partial(const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_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_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->depthClipControl */
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDeviceDepthClipControlFeaturesEXT *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT });
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_pnext_partial(enc, val->pNext);
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPhysicalDeviceSynchronization2Features chain */
|
||||
|
||||
static inline size_t
|
||||
|
|
@ -8184,6 +8315,147 @@ vn_encode_VkPhysicalDeviceSynchronization2Features_partial(struct vn_cs_encoder
|
|||
vn_encode_VkPhysicalDeviceSynchronization2Features_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_VkBool32(&val->primitivesGeneratedQuery);
|
||||
size += vn_sizeof_VkBool32(&val->primitivesGeneratedQueryWithRasterizerDiscard);
|
||||
size += vn_sizeof_VkBool32(&val->primitivesGeneratedQueryWithNonZeroStreams);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_VkBool32(enc, &val->primitivesGeneratedQuery);
|
||||
vn_encode_VkBool32(enc, &val->primitivesGeneratedQueryWithRasterizerDiscard);
|
||||
vn_encode_VkBool32(enc, &val->primitivesGeneratedQueryWithNonZeroStreams);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT });
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(enc, val->pNext);
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(enc, val);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_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_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_decode_VkBool32(dec, &val->primitivesGeneratedQuery);
|
||||
vn_decode_VkBool32(dec, &val->primitivesGeneratedQueryWithRasterizerDiscard);
|
||||
vn_decode_VkBool32(dec, &val->primitivesGeneratedQueryWithNonZeroStreams);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(struct vn_cs_decoder *dec, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
VkStructureType stype;
|
||||
vn_decode_VkStructureType(dec, &stype);
|
||||
assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT);
|
||||
|
||||
assert(val->sType == stype);
|
||||
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext(dec, val->pNext);
|
||||
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(dec, val);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->primitivesGeneratedQuery */
|
||||
/* skip val->primitivesGeneratedQueryWithRasterizerDiscard */
|
||||
/* skip val->primitivesGeneratedQueryWithNonZeroStreams */
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_partial(const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_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_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->primitivesGeneratedQuery */
|
||||
/* skip val->primitivesGeneratedQueryWithRasterizerDiscard */
|
||||
/* skip val->primitivesGeneratedQueryWithNonZeroStreams */
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT });
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_pnext_partial(enc, val->pNext);
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT chain */
|
||||
|
||||
static inline size_t
|
||||
|
|
@ -9188,6 +9460,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self((const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self((const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -9196,6 +9476,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self((const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self((const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -9608,6 +9896,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void
|
|||
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -9616,6 +9912,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_encoder *enc, const void
|
|||
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPhysicalDeviceFeatures2_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(enc, (const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -9889,10 +10193,18 @@ vn_decode_VkPhysicalDeviceFeatures2_pnext(struct vn_cs_decoder *dec, const void
|
|||
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(dec, (VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(dec, (VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceSynchronization2Features_self(dec, (VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(dec, (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
vn_decode_VkPhysicalDeviceFeatures2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT_self(dec, (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT *)pnext);
|
||||
|
|
@ -10280,6 +10592,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial((const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial((const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -10288,6 +10608,14 @@ vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self_partial((const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceFeatures2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial((const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -10700,6 +11028,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, con
|
|||
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self_partial(enc, (const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -10708,6 +11044,14 @@ vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(struct vn_cs_encoder *enc, con
|
|||
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceSynchronization2Features_self_partial(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPhysicalDeviceFeatures2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self_partial(enc, (const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -11205,6 +11549,14 @@ vn_sizeof_VkDeviceCreateInfo_pnext(const void *val)
|
|||
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self((const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceDepthClipControlFeaturesEXT_self((const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -11213,6 +11565,14 @@ vn_sizeof_VkDeviceCreateInfo_pnext(const void *val)
|
|||
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceSynchronization2Features_self((const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkDeviceCreateInfo_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self((const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -11678,6 +12038,14 @@ vn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
|
|||
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT_self(enc, (const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceDepthClipControlFeaturesEXT_self(enc, (const VkPhysicalDeviceDepthClipControlFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
|
||||
if (!vn_cs_renderer_protocol_has_extension(315 /* VK_KHR_synchronization2 */))
|
||||
break;
|
||||
|
|
@ -11686,6 +12054,14 @@ vn_encode_VkDeviceCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
|
|||
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceSynchronization2Features_self(enc, (const VkPhysicalDeviceSynchronization2Features *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(383 /* VK_EXT_primitives_generated_query */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkDeviceCreateInfo_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT_self(enc, (const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(331 /* VK_EXT_ycbcr_2plane_444_formats */))
|
||||
break;
|
||||
|
|
@ -11892,6 +12268,114 @@ vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_partial(struct vn_cs_encoder *e
|
|||
vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPhysicalDevicePushDescriptorPropertiesKHR chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self(const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_uint32_t(&val->maxPushDescriptors);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR(const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_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_VkPhysicalDevicePushDescriptorPropertiesKHR_self(struct vn_cs_decoder *dec, VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_decode_uint32_t(dec, &val->maxPushDescriptors);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR(struct vn_cs_decoder *dec, VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
VkStructureType stype;
|
||||
vn_decode_VkStructureType(dec, &stype);
|
||||
assert(stype == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR);
|
||||
|
||||
assert(val->sType == stype);
|
||||
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext(dec, val->pNext);
|
||||
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(dec, val);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial(const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->maxPushDescriptors */
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_partial(const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial(val->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_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_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
/* skip val->maxPushDescriptors */
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_partial(struct vn_cs_encoder *enc, const VkPhysicalDevicePushDescriptorPropertiesKHR *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR });
|
||||
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_pnext_partial(enc, val->pNext);
|
||||
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkConformanceVersion */
|
||||
|
||||
static inline size_t
|
||||
|
|
@ -15792,6 +16276,14 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceMultiDrawPropertiesEXT_self((const VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
|
||||
if (!vn_cs_renderer_protocol_has_extension(81 /* VK_KHR_push_descriptor */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self((const VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
|
|
@ -16034,6 +16526,10 @@ vn_decode_VkPhysicalDeviceProperties2_pnext(struct vn_cs_decoder *dec, const voi
|
|||
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceMultiDrawPropertiesEXT_self(dec, (VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
|
||||
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDevicePushDescriptorPropertiesKHR_self(dec, (VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
|
||||
break;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
|
||||
vn_decode_VkPhysicalDeviceProperties2_pnext(dec, pnext->pNext);
|
||||
vn_decode_VkPhysicalDeviceDriverProperties_self(dec, (VkPhysicalDeviceDriverProperties *)pnext);
|
||||
|
|
@ -16183,6 +16679,14 @@ vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(const void *val)
|
|||
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial((const VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
|
||||
if (!vn_cs_renderer_protocol_has_extension(81 /* VK_KHR_push_descriptor */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPhysicalDeviceProperties2_pnext_partial(pnext->pNext);
|
||||
size += vn_sizeof_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial((const VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
|
||||
return size;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
|
|
@ -16417,6 +16921,14 @@ vn_encode_VkPhysicalDeviceProperties2_pnext_partial(struct vn_cs_encoder *enc, c
|
|||
vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDeviceMultiDrawPropertiesEXT_self_partial(enc, (const VkPhysicalDeviceMultiDrawPropertiesEXT *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR:
|
||||
if (!vn_cs_renderer_protocol_has_extension(81 /* VK_KHR_push_descriptor */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPhysicalDeviceProperties2_pnext_partial(enc, pnext->pNext);
|
||||
vn_encode_VkPhysicalDevicePushDescriptorPropertiesKHR_self_partial(enc, (const VkPhysicalDevicePushDescriptorPropertiesKHR *)pnext);
|
||||
return;
|
||||
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
|
|
|
|||
|
|
@ -19,14 +19,15 @@ struct vn_info_extension {
|
|||
};
|
||||
|
||||
/* sorted by extension names for bsearch */
|
||||
static const uint32_t _vn_info_extension_count = 95;
|
||||
static const struct vn_info_extension _vn_info_extensions[95] = {
|
||||
static const uint32_t _vn_info_extension_count = 98;
|
||||
static const struct vn_info_extension _vn_info_extensions[98] = {
|
||||
{ "VK_EXT_4444_formats", 341, 1 },
|
||||
{ "VK_EXT_calibrated_timestamps", 185, 2 },
|
||||
{ "VK_EXT_command_serialization", 384, 0 },
|
||||
{ "VK_EXT_conditional_rendering", 82, 2 },
|
||||
{ "VK_EXT_conservative_rasterization", 102, 1 },
|
||||
{ "VK_EXT_custom_border_color", 288, 12 },
|
||||
{ "VK_EXT_depth_clip_control", 356, 1 },
|
||||
{ "VK_EXT_depth_clip_enable", 103, 1 },
|
||||
{ "VK_EXT_descriptor_indexing", 162, 2 },
|
||||
{ "VK_EXT_extended_dynamic_state", 268, 1 },
|
||||
|
|
@ -44,6 +45,7 @@ static const struct vn_info_extension _vn_info_extensions[95] = {
|
|||
{ "VK_EXT_pipeline_creation_cache_control", 298, 3 },
|
||||
{ "VK_EXT_pipeline_creation_feedback", 193, 1 },
|
||||
{ "VK_EXT_primitive_topology_list_restart", 357, 1 },
|
||||
{ "VK_EXT_primitives_generated_query", 383, 1 },
|
||||
{ "VK_EXT_private_data", 296, 1 },
|
||||
{ "VK_EXT_provoking_vertex", 255, 1 },
|
||||
{ "VK_EXT_queue_family_foreign", 127, 1 },
|
||||
|
|
@ -94,6 +96,7 @@ static const struct vn_info_extension _vn_info_extensions[95] = {
|
|||
{ "VK_KHR_maintenance3", 169, 1 },
|
||||
{ "VK_KHR_maintenance4", 414, 2 },
|
||||
{ "VK_KHR_multiview", 54, 1 },
|
||||
{ "VK_KHR_push_descriptor", 81, 2 },
|
||||
{ "VK_KHR_relaxed_block_layout", 145, 1 },
|
||||
{ "VK_KHR_sampler_mirror_clamp_to_edge", 15, 3 },
|
||||
{ "VK_KHR_sampler_ycbcr_conversion", 157, 14 },
|
||||
|
|
|
|||
|
|
@ -700,12 +700,84 @@ vn_encode_VkPipelineTessellationStateCreateInfo(struct vn_cs_encoder *enc, const
|
|||
vn_encode_VkPipelineTessellationStateCreateInfo_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPipelineViewportDepthClipControlCreateInfoEXT chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT_self(const VkPipelineViewportDepthClipControlCreateInfoEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_VkBool32(&val->negativeOneToOne);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT(const VkPipelineViewportDepthClipControlCreateInfoEXT *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT_pnext(val->pNext);
|
||||
size += vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkPipelineViewportDepthClipControlCreateInfoEXT *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_VkBool32(enc, &val->negativeOneToOne);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT(struct vn_cs_encoder *enc, const VkPipelineViewportDepthClipControlCreateInfoEXT *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT });
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT_pnext(enc, val->pNext);
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkPipelineViewportStateCreateInfo chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkPipelineViewportStateCreateInfo_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
const VkBaseInStructure *pnext = val;
|
||||
size_t size = 0;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkPipelineViewportStateCreateInfo_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkPipelineViewportDepthClipControlCreateInfoEXT_self((const VkPipelineViewportDepthClipControlCreateInfoEXT *)pnext);
|
||||
return size;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
|
|
@ -749,7 +821,25 @@ vn_sizeof_VkPipelineViewportStateCreateInfo(const VkPipelineViewportStateCreateI
|
|||
static inline void
|
||||
vn_encode_VkPipelineViewportStateCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
const VkBaseInStructure *pnext = val;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:
|
||||
if (!vn_cs_renderer_protocol_has_extension(356 /* VK_EXT_depth_clip_control */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkPipelineViewportStateCreateInfo_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkPipelineViewportDepthClipControlCreateInfoEXT_self(enc, (const VkPipelineViewportDepthClipControlCreateInfoEXT *)pnext);
|
||||
return;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -947,6 +947,251 @@ vn_encode_VkMutableDescriptorTypeCreateInfoEXT(struct vn_cs_encoder *enc, const
|
|||
vn_encode_VkMutableDescriptorTypeCreateInfoEXT_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkDescriptorImageInfo */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkDescriptorImageInfo(const VkDescriptorImageInfo *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
size += vn_sizeof_VkSampler(&val->sampler);
|
||||
size += vn_sizeof_VkImageView(&val->imageView);
|
||||
size += vn_sizeof_VkImageLayout(&val->imageLayout);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkDescriptorImageInfo(struct vn_cs_encoder *enc, const VkDescriptorImageInfo *val)
|
||||
{
|
||||
vn_encode_VkSampler(enc, &val->sampler);
|
||||
vn_encode_VkImageView(enc, &val->imageView);
|
||||
vn_encode_VkImageLayout(enc, &val->imageLayout);
|
||||
}
|
||||
|
||||
/* struct VkDescriptorBufferInfo */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkDescriptorBufferInfo(const VkDescriptorBufferInfo *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
size += vn_sizeof_VkBuffer(&val->buffer);
|
||||
size += vn_sizeof_VkDeviceSize(&val->offset);
|
||||
size += vn_sizeof_VkDeviceSize(&val->range);
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkDescriptorBufferInfo(struct vn_cs_encoder *enc, const VkDescriptorBufferInfo *val)
|
||||
{
|
||||
vn_encode_VkBuffer(enc, &val->buffer);
|
||||
vn_encode_VkDeviceSize(enc, &val->offset);
|
||||
vn_encode_VkDeviceSize(enc, &val->range);
|
||||
}
|
||||
|
||||
/* struct VkWriteDescriptorSetInlineUniformBlock chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_pnext(const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self(const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_uint32_t(&val->dataSize);
|
||||
if (val->pData) {
|
||||
size += vn_sizeof_array_size(val->dataSize);
|
||||
size += vn_sizeof_blob_array(val->pData, val->dataSize);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSetInlineUniformBlock(const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_pnext(val->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
/* no known/supported struct */
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(struct vn_cs_encoder *enc, const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_uint32_t(enc, &val->dataSize);
|
||||
if (val->pData) {
|
||||
vn_encode_array_size(enc, val->dataSize);
|
||||
vn_encode_blob_array(enc, val->pData, val->dataSize);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock(struct vn_cs_encoder *enc, const VkWriteDescriptorSetInlineUniformBlock *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK });
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_pnext(enc, val->pNext);
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkWriteDescriptorSet chain */
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet_pnext(const void *val)
|
||||
{
|
||||
const VkBaseInStructure *pnext = val;
|
||||
size_t size = 0;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
|
||||
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
|
||||
break;
|
||||
size += vn_sizeof_simple_pointer(pnext);
|
||||
size += vn_sizeof_VkStructureType(&pnext->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_pnext(pnext->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSetInlineUniformBlock_self((const VkWriteDescriptorSetInlineUniformBlock *)pnext);
|
||||
return size;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
return vn_sizeof_simple_pointer(NULL);
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet_self(const VkWriteDescriptorSet *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
/* skip val->{sType,pNext} */
|
||||
size += vn_sizeof_VkDescriptorSet(&val->dstSet);
|
||||
size += vn_sizeof_uint32_t(&val->dstBinding);
|
||||
size += vn_sizeof_uint32_t(&val->dstArrayElement);
|
||||
size += vn_sizeof_uint32_t(&val->descriptorCount);
|
||||
size += vn_sizeof_VkDescriptorType(&val->descriptorType);
|
||||
if (val->pImageInfo) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkDescriptorImageInfo(&val->pImageInfo[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
if (val->pBufferInfo) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkDescriptorBufferInfo(&val->pBufferInfo[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
if (val->pTexelBufferView) {
|
||||
size += vn_sizeof_array_size(val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
size += vn_sizeof_VkBufferView(&val->pTexelBufferView[i]);
|
||||
} else {
|
||||
size += vn_sizeof_array_size(0);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline size_t
|
||||
vn_sizeof_VkWriteDescriptorSet(const VkWriteDescriptorSet *val)
|
||||
{
|
||||
size_t size = 0;
|
||||
|
||||
size += vn_sizeof_VkStructureType(&val->sType);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_pnext(val->pNext);
|
||||
size += vn_sizeof_VkWriteDescriptorSet_self(val);
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet_pnext(struct vn_cs_encoder *enc, const void *val)
|
||||
{
|
||||
const VkBaseInStructure *pnext = val;
|
||||
|
||||
while (pnext) {
|
||||
switch ((int32_t)pnext->sType) {
|
||||
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
|
||||
if (!vn_cs_renderer_protocol_has_extension(139 /* VK_EXT_inline_uniform_block */))
|
||||
break;
|
||||
vn_encode_simple_pointer(enc, pnext);
|
||||
vn_encode_VkStructureType(enc, &pnext->sType);
|
||||
vn_encode_VkWriteDescriptorSet_pnext(enc, pnext->pNext);
|
||||
vn_encode_VkWriteDescriptorSetInlineUniformBlock_self(enc, (const VkWriteDescriptorSetInlineUniformBlock *)pnext);
|
||||
return;
|
||||
default:
|
||||
/* ignore unknown/unsupported struct */
|
||||
break;
|
||||
}
|
||||
pnext = pnext->pNext;
|
||||
}
|
||||
|
||||
vn_encode_simple_pointer(enc, NULL);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet_self(struct vn_cs_encoder *enc, const VkWriteDescriptorSet *val)
|
||||
{
|
||||
/* skip val->{sType,pNext} */
|
||||
vn_encode_VkDescriptorSet(enc, &val->dstSet);
|
||||
vn_encode_uint32_t(enc, &val->dstBinding);
|
||||
vn_encode_uint32_t(enc, &val->dstArrayElement);
|
||||
vn_encode_uint32_t(enc, &val->descriptorCount);
|
||||
vn_encode_VkDescriptorType(enc, &val->descriptorType);
|
||||
if (val->pImageInfo) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkDescriptorImageInfo(enc, &val->pImageInfo[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
if (val->pBufferInfo) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkDescriptorBufferInfo(enc, &val->pBufferInfo[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
if (val->pTexelBufferView) {
|
||||
vn_encode_array_size(enc, val->descriptorCount);
|
||||
for (uint32_t i = 0; i < val->descriptorCount; i++)
|
||||
vn_encode_VkBufferView(enc, &val->pTexelBufferView[i]);
|
||||
} else {
|
||||
vn_encode_array_size(enc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
vn_encode_VkWriteDescriptorSet(struct vn_cs_encoder *enc, const VkWriteDescriptorSet *val)
|
||||
{
|
||||
assert(val->sType == VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET);
|
||||
vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET });
|
||||
vn_encode_VkWriteDescriptorSet_pnext(enc, val->pNext);
|
||||
vn_encode_VkWriteDescriptorSet_self(enc, val);
|
||||
}
|
||||
|
||||
/* struct VkMemoryDedicatedRequirements chain */
|
||||
|
||||
static inline size_t
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue