nvk: Enable descriptor indexing
These values follow the already existing per-stage and descriptor set limits. If we change these to be similar to the reported values of the proprietary driver, care must be taken as Turing has bigger limits for uniform buffers than older generations. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
committed by
Marge Bot
parent
edb58c6660
commit
ccfbd94891
@@ -184,7 +184,29 @@ nvk_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
|
||||
.subminor = 0,
|
||||
.patch = 0,
|
||||
},
|
||||
.maxUpdateAfterBindDescriptorsInAllPools = UINT32_MAX,
|
||||
.shaderUniformBufferArrayNonUniformIndexingNative = false,
|
||||
.shaderSampledImageArrayNonUniformIndexingNative = pdev->info.cls_eng3d >= TURING_A,
|
||||
.shaderStorageBufferArrayNonUniformIndexingNative = true,
|
||||
.shaderStorageImageArrayNonUniformIndexingNative = pdev->info.cls_eng3d >= TURING_A,
|
||||
.shaderInputAttachmentArrayNonUniformIndexingNative = false,
|
||||
.robustBufferAccessUpdateAfterBind = true,
|
||||
.quadDivergentImplicitLod = pdev->info.cls_eng3d >= TURING_A,
|
||||
.maxPerStageDescriptorUpdateAfterBindSamplers = UINT32_MAX,
|
||||
.maxPerStageDescriptorUpdateAfterBindUniformBuffers = UINT32_MAX,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageBuffers = UINT32_MAX,
|
||||
.maxPerStageDescriptorUpdateAfterBindSampledImages = UINT32_MAX,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageImages = UINT32_MAX,
|
||||
.maxPerStageDescriptorUpdateAfterBindInputAttachments = UINT32_MAX,
|
||||
.maxPerStageUpdateAfterBindResources = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindSamplers = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffers = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = NVK_MAX_DYNAMIC_BUFFERS / 2,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffers = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = NVK_MAX_DYNAMIC_BUFFERS / 2,
|
||||
.maxDescriptorSetUpdateAfterBindSampledImages = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindStorageImages = UINT32_MAX,
|
||||
.maxDescriptorSetUpdateAfterBindInputAttachments = UINT32_MAX,
|
||||
.filterMinmaxSingleComponentFormats = true,
|
||||
.filterMinmaxImageComponentMapping = true,
|
||||
};
|
||||
@@ -320,6 +342,7 @@ nvk_get_device_extensions(const struct nv_device_info *dev,
|
||||
.EXT_border_color_swizzle = true,
|
||||
.EXT_buffer_device_address = true,
|
||||
.EXT_custom_border_color = true,
|
||||
.EXT_descriptor_indexing = true,
|
||||
.EXT_extended_dynamic_state = true,
|
||||
.EXT_extended_dynamic_state2 = true,
|
||||
.EXT_extended_dynamic_state3 = true,
|
||||
@@ -412,8 +435,23 @@ nvk_get_device_features(const struct nv_device_info *dev,
|
||||
.shaderInputAttachmentArrayDynamicIndexing = true,
|
||||
.shaderUniformTexelBufferArrayDynamicIndexing = true,
|
||||
.shaderStorageTexelBufferArrayDynamicIndexing = true,
|
||||
.shaderUniformBufferArrayNonUniformIndexing = true,
|
||||
.shaderSampledImageArrayNonUniformIndexing = true,
|
||||
.shaderStorageBufferArrayNonUniformIndexing = true,
|
||||
.shaderStorageImageArrayNonUniformIndexing = true,
|
||||
.shaderInputAttachmentArrayNonUniformIndexing = true,
|
||||
.shaderUniformTexelBufferArrayNonUniformIndexing = true,
|
||||
.shaderStorageTexelBufferArrayNonUniformIndexing = true,
|
||||
.descriptorBindingUniformBufferUpdateAfterBind = true,
|
||||
.descriptorBindingSampledImageUpdateAfterBind = true,
|
||||
.descriptorBindingStorageImageUpdateAfterBind = true,
|
||||
.descriptorBindingStorageBufferUpdateAfterBind = true,
|
||||
.descriptorBindingUniformTexelBufferUpdateAfterBind = true,
|
||||
.descriptorBindingStorageTexelBufferUpdateAfterBind = true,
|
||||
.descriptorBindingUpdateUnusedWhilePending = true,
|
||||
.descriptorBindingPartiallyBound = true,
|
||||
.descriptorBindingVariableDescriptorCount = true,
|
||||
.runtimeDescriptorArray = true,
|
||||
.imagelessFramebuffer = true,
|
||||
.uniformBufferStandardLayout = true,
|
||||
.separateDepthStencilLayouts = true,
|
||||
|
||||
@@ -67,6 +67,9 @@ nvk_physical_device_spirv_options(const struct nvk_physical_device *pdevice,
|
||||
return (struct spirv_to_nir_options) {
|
||||
.caps = {
|
||||
.demote_to_helper_invocation = true,
|
||||
.descriptor_indexing = true,
|
||||
.descriptor_array_dynamic_indexing = true,
|
||||
.descriptor_array_non_uniform_indexing = true,
|
||||
.draw_parameters = true,
|
||||
.geometry_streams = true,
|
||||
.image_read_without_format = true,
|
||||
@@ -74,6 +77,7 @@ nvk_physical_device_spirv_options(const struct nvk_physical_device *pdevice,
|
||||
.min_lod = true,
|
||||
.multiview = true,
|
||||
.physical_storage_buffer_address = true,
|
||||
.runtime_descriptor_array = true,
|
||||
.shader_viewport_index_layer = true,
|
||||
.tessellation = true,
|
||||
.transform_feedback = true,
|
||||
|
||||
Reference in New Issue
Block a user