mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 08:10:09 +01:00
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:
parent
edb58c6660
commit
ccfbd94891
2 changed files with 42 additions and 0 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue