VkObjectTableCreateInfoNVX(3)

# VkObjectTableCreateInfoNVX(3) Manual Page

## Name

VkObjectTableCreateInfoNVX - Structure specifying the parameters of a newly created object table

## C Specification

The `VkObjectTableCreateInfoNVX` structure is defined as:

    typedef struct VkObjectTableCreateInfoNVX {
        VkStructureType                      sType;
        const void*                          pNext;
        uint32_t                             objectCount;
        const VkObjectEntryTypeNVX*          pObjectEntryTypes;
        const uint32_t*                      pObjectEntryCounts;
        const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
        uint32_t                             maxUniformBuffersPerDescriptor;
        uint32_t                             maxStorageBuffersPerDescriptor;
        uint32_t                             maxStorageImagesPerDescriptor;
        uint32_t                             maxSampledImagesPerDescriptor;
        uint32_t                             maxPipelineLayouts;
    } VkObjectTableCreateInfoNVX;

## Members

- `sType` is the type of this structure.

- `pNext` is `NULL` or a pointer to an extension-specific structure.

- `objectCount` is the number of entry configurations that the object table supports.

- `pObjectEntryTypes` is a pointer to an array of VkObjectEntryTypeNVX values providing the entry type of a given configuration.

- `pObjectEntryCounts` is a pointer to an array of counts of how many objects can be registered in the table.

- `pObjectEntryUsageFlags` is a pointer to an array of bitmasks of VkObjectEntryUsageFlagBitsNVX specifying the binding usage of the entry.

- `maxUniformBuffersPerDescriptor` is the maximum number of `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER` or `VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC` used by any single registered `VkDescriptorSet` in this table.

- `maxStorageBuffersPerDescriptor` is the maximum number of `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER` or `VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC` used by any single registered `VkDescriptorSet` in this table.

- `maxStorageImagesPerDescriptor` is the maximum number of `VK_DESCRIPTOR_TYPE_STORAGE_IMAGE` or `VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER` used by any single registered `VkDescriptorSet` in this table.

- `maxSampledImagesPerDescriptor` is the maximum number of `VK_DESCRIPTOR_TYPE_SAMPLER`, `VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER`, `VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER` or `VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT` used by any single registered `VkDescriptorSet` in this table.

- `maxPipelineLayouts` is the maximum number of unique `VkPipelineLayout` used by any registered `VkDescriptorSet` or `VkPipeline` in this table.

## Description

Valid Usage

- If the `VkDeviceGeneratedCommandsFeaturesNVX`::`computeBindingPointSupport` feature is not enabled, `pObjectEntryUsageFlags` must not contain `VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX`

- Any value within `pObjectEntryCounts` must not exceed `VkDeviceGeneratedCommandsLimitsNVX`::`maxObjectEntryCounts`

- `maxUniformBuffersPerDescriptor` must be within the limits supported by the device.

- `maxStorageBuffersPerDescriptor` must be within the limits supported by the device.

- `maxStorageImagesPerDescriptor` must be within the limits supported by the device.

- `maxSampledImagesPerDescriptor` must be within the limits supported by the device.

Valid Usage (Implicit)

- `sType` must be `VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX`

- `pNext` must be `NULL`

- `pObjectEntryTypes` must be a valid pointer to an array of `objectCount` valid VkObjectEntryTypeNVX values

- `pObjectEntryCounts` must be a valid pointer to an array of `objectCount` `uint32_t` values

- `pObjectEntryUsageFlags` must be a valid pointer to an array of `objectCount` valid combinations of VkObjectEntryUsageFlagBitsNVX values

- Each element of `pObjectEntryUsageFlags` must not be `0`

- `objectCount` must be greater than `0`

## See Also

VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX, VkStructureType, vkCreateObjectTableNVX

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright (c) 2014-2020 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.