mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-05 04:40:11 +01:00
nvk: Claim shaderUniformBufferArrayNonUniformIndexingNative
"Native" is relative for UBOs. On the one hand, we don't loop in the shader for non-uniform UBO access ever. On the other hand, uniformity does affect UBOs on Turing since we can only use bindless UBOs if the handle (and therefore the loaded descriptor) are uniform. But if it's non-uniform, we fall back to ld.constant which is pretty fast. On Volta and earlier where we don't have bindless UBOs, we use ld.uniform or ld.ci which are just as fast uniform as non. On all hardware, non-constant UBO indexing prevents cbuf promotion so that's always slower no matter what. The moral of the story is that "native" non-uniform for UBOs is a nonsense anyway and we should just set NonUniformIndexingNative so we don't scare apps into doing something silly. The proprietary driver claims native non-uniform UBOs as well. Reviewed-by: Mel Henning <mhenning@darkrefraction.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35268>
This commit is contained in:
parent
a8b309f1cf
commit
c37bcd43fc
1 changed files with 1 additions and 1 deletions
|
|
@ -887,7 +887,7 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||
.shaderRoundingModeRTZFloat32 = true,
|
||||
.shaderRoundingModeRTZFloat64 = true,
|
||||
.maxUpdateAfterBindDescriptorsInAllPools = UINT32_MAX,
|
||||
.shaderUniformBufferArrayNonUniformIndexingNative = false,
|
||||
.shaderUniformBufferArrayNonUniformIndexingNative = true,
|
||||
.shaderSampledImageArrayNonUniformIndexingNative = info->cls_eng3d >= TURING_A,
|
||||
.shaderStorageBufferArrayNonUniformIndexingNative = true,
|
||||
.shaderStorageImageArrayNonUniformIndexingNative = info->cls_eng3d >= TURING_A,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue