mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 16:10:09 +01:00
panvk: advertise descriptor indexing on valhall
Our existing descriptor implementation already supports update-after-bind on both bifrost and valhall, but on bifrost the some of the descriptor limits are lower than the minimum required by the extension. Signed-off-by: Olivia Lee <olivia.lee@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35408>
This commit is contained in:
parent
f90b9b3642
commit
5fe5e3176f
3 changed files with 49 additions and 28 deletions
|
|
@ -476,7 +476,7 @@ Vulkan 1.2 -- all DONE: anv, hk, nvk, panvk/v10+, tu, vn
|
|||
VK_KHR_timeline_semaphore DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_uniform_buffer_standard_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_KHR_vulkan_memory_model DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, v3dv, vn)
|
||||
VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, radv, tu, vn)
|
||||
VK_EXT_descriptor_indexing DONE (anv, dzn, lvp, nvk, panvk/v10+, radv, tu, vn)
|
||||
VK_EXT_host_query_reset DONE (anv, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||
VK_EXT_sampler_filter_minmax DONE (anv, lvp, nvk, panvk/v10+, radv, tu, vn)
|
||||
VK_EXT_scalar_block_layout DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, vn, v3dv/vc7+)
|
||||
|
|
|
|||
|
|
@ -48,3 +48,4 @@ VK_KHR_maintenance9 on RADV
|
|||
VK_KHR_unified_image_layouts on RADV (RDNA3+)
|
||||
VK_KHR_vulkan_memory_model on panvk
|
||||
VK_KHR_present_wait2
|
||||
VK_EXT_descriptor_indexing on panvk/v10+
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ panvk_per_arch(get_physical_device_extensions)(
|
|||
#ifdef VK_USE_PLATFORM_DISPLAY_KHR
|
||||
.EXT_display_control = true,
|
||||
#endif
|
||||
.EXT_descriptor_indexing = PAN_ARCH >= 9,
|
||||
.EXT_extended_dynamic_state = true,
|
||||
.EXT_extended_dynamic_state2 = true,
|
||||
.EXT_external_memory_dma_buf = true,
|
||||
|
|
@ -281,7 +282,10 @@ panvk_per_arch(get_physical_device_features)(
|
|||
.shaderFloat16 = PAN_ARCH >= 10,
|
||||
.shaderInt8 = true,
|
||||
|
||||
.descriptorIndexing = false,
|
||||
/* In theory, update-after-bind is supported on bifrost, but the
|
||||
* descriptor limits would be too low for the descriptorIndexing feature.
|
||||
*/
|
||||
.descriptorIndexing = PAN_ARCH >= 9,
|
||||
.shaderInputAttachmentArrayDynamicIndexing = true,
|
||||
.shaderUniformTexelBufferArrayDynamicIndexing = true,
|
||||
.shaderStorageTexelBufferArrayDynamicIndexing = true,
|
||||
|
|
@ -292,14 +296,14 @@ panvk_per_arch(get_physical_device_features)(
|
|||
.shaderInputAttachmentArrayNonUniformIndexing = true,
|
||||
.shaderUniformTexelBufferArrayNonUniformIndexing = true,
|
||||
.shaderStorageTexelBufferArrayNonUniformIndexing = true,
|
||||
.descriptorBindingUniformBufferUpdateAfterBind = false,
|
||||
.descriptorBindingSampledImageUpdateAfterBind = false,
|
||||
.descriptorBindingStorageImageUpdateAfterBind = false,
|
||||
.descriptorBindingStorageBufferUpdateAfterBind = false,
|
||||
.descriptorBindingUniformTexelBufferUpdateAfterBind = false,
|
||||
.descriptorBindingStorageTexelBufferUpdateAfterBind = false,
|
||||
.descriptorBindingUpdateUnusedWhilePending = false,
|
||||
.descriptorBindingPartiallyBound = false,
|
||||
.descriptorBindingUniformBufferUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingSampledImageUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingStorageImageUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingStorageBufferUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingUniformTexelBufferUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingStorageTexelBufferUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.descriptorBindingUpdateUnusedWhilePending = PAN_ARCH >= 9,
|
||||
.descriptorBindingPartiallyBound = PAN_ARCH >= 9,
|
||||
.descriptorBindingVariableDescriptorCount = true,
|
||||
.runtimeDescriptorArray = true,
|
||||
|
||||
|
|
@ -769,30 +773,46 @@ panvk_per_arch(get_physical_device_properties)(
|
|||
.shaderRoundingModeRTZFloat16 = true,
|
||||
.shaderRoundingModeRTZFloat32 = true,
|
||||
.shaderRoundingModeRTZFloat64 = false,
|
||||
/* XXX: VK_EXT_descriptor_indexing */
|
||||
.maxUpdateAfterBindDescriptorsInAllPools = 0,
|
||||
/* VK_EXT_descriptor_indexing */
|
||||
.maxUpdateAfterBindDescriptorsInAllPools =
|
||||
PAN_ARCH >= 9 ? UINT32_MAX : 0,
|
||||
.shaderUniformBufferArrayNonUniformIndexingNative = false,
|
||||
.shaderSampledImageArrayNonUniformIndexingNative = false,
|
||||
.shaderStorageBufferArrayNonUniformIndexingNative = false,
|
||||
.shaderStorageImageArrayNonUniformIndexingNative = false,
|
||||
.shaderInputAttachmentArrayNonUniformIndexingNative = false,
|
||||
.robustBufferAccessUpdateAfterBind = false,
|
||||
.robustBufferAccessUpdateAfterBind = PAN_ARCH >= 9,
|
||||
.quadDivergentImplicitLod = false,
|
||||
.maxPerStageDescriptorUpdateAfterBindSamplers = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindUniformBuffers = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageBuffers = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindSampledImages = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageImages = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindInputAttachments = 0,
|
||||
.maxPerStageUpdateAfterBindResources = 0,
|
||||
.maxDescriptorSetUpdateAfterBindSamplers = 0,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffers = 0,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffers = 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 0,
|
||||
.maxDescriptorSetUpdateAfterBindSampledImages = 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageImages = 0,
|
||||
.maxDescriptorSetUpdateAfterBindInputAttachments = 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindSamplers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_SAMPLERS : 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindUniformBuffers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_UNIFORM_BUFFERS : 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageBuffers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_STORAGE_BUFFERS : 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindSampledImages =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_SAMPLED_IMAGES : 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindStorageImages =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_STORAGE_IMAGES : 0,
|
||||
.maxPerStageDescriptorUpdateAfterBindInputAttachments =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_INPUT_ATTACHMENTS : 0,
|
||||
.maxPerStageUpdateAfterBindResources =
|
||||
PAN_ARCH >= 9 ? MAX_PER_STAGE_RESOURCES : 0,
|
||||
.maxDescriptorSetUpdateAfterBindSamplers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_SAMPLERS : 0,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_UNIFORM_BUFFERS : 0,
|
||||
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic =
|
||||
PAN_ARCH >= 9 ? MAX_DYNAMIC_UNIFORM_BUFFERS : 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffers =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_STORAGE_BUFFERS : 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic =
|
||||
PAN_ARCH >= 9 ? MAX_DYNAMIC_STORAGE_BUFFERS : 0,
|
||||
.maxDescriptorSetUpdateAfterBindSampledImages =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_SAMPLED_IMAGES : 0,
|
||||
.maxDescriptorSetUpdateAfterBindStorageImages =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_STORAGE_IMAGES : 0,
|
||||
.maxDescriptorSetUpdateAfterBindInputAttachments =
|
||||
PAN_ARCH >= 9 ? MAX_PER_SET_INPUT_ATTACHMENTS : 0,
|
||||
.filterMinmaxSingleComponentFormats = PAN_ARCH >= 10,
|
||||
.filterMinmaxImageComponentMapping = PAN_ARCH >= 10,
|
||||
.maxTimelineSemaphoreValueDifference = INT64_MAX,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue