spirv: add missing SPV_EXT_descriptor_indexing capabilities

Add ShaderNonUniformEXT, UniformBufferArrayNonUniformIndexingEXT,
SampledImageArrayNonUniformIndexingEXT,
StorageBufferArrayNonUniformIndexingEXT,
StorageImageArrayNonUniformIndexingEXT,
InputAttachmentArrayNonUniformIndexingEXT,
UniformTexelBufferArrayNonUniformIndexingEXT and
StorageTexelBufferArrayNonUniformIndexingEXT capabilities.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Juan A. Suarez Romero
2019-04-29 17:02:45 +02:00
parent 1fb6630636
commit bbbe00a101
2 changed files with 16 additions and 0 deletions

View File

@@ -37,6 +37,8 @@ struct spirv_supported_capabilities {
bool atomic_storage; bool atomic_storage;
bool derivative_group; bool derivative_group;
bool descriptor_array_dynamic_indexing; bool descriptor_array_dynamic_indexing;
bool descriptor_array_non_uniform_indexing;
bool descriptor_indexing;
bool device_group; bool device_group;
bool draw_parameters; bool draw_parameters;
bool float64; bool float64;

View File

@@ -3716,12 +3716,26 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
spv_check_supported(storage_8bit, cap); spv_check_supported(storage_8bit, cap);
break; break;
case SpvCapabilityShaderNonUniformEXT:
spv_check_supported(descriptor_indexing, cap);
break;
case SpvCapabilityInputAttachmentArrayDynamicIndexingEXT: case SpvCapabilityInputAttachmentArrayDynamicIndexingEXT:
case SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT: case SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT:
case SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT: case SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT:
spv_check_supported(descriptor_array_dynamic_indexing, cap); spv_check_supported(descriptor_array_dynamic_indexing, cap);
break; break;
case SpvCapabilityUniformBufferArrayNonUniformIndexingEXT:
case SpvCapabilitySampledImageArrayNonUniformIndexingEXT:
case SpvCapabilityStorageBufferArrayNonUniformIndexingEXT:
case SpvCapabilityStorageImageArrayNonUniformIndexingEXT:
case SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT:
case SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT:
case SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT:
spv_check_supported(descriptor_array_non_uniform_indexing, cap);
break;
case SpvCapabilityRuntimeDescriptorArrayEXT: case SpvCapabilityRuntimeDescriptorArrayEXT:
spv_check_supported(runtime_descriptor_array, cap); spv_check_supported(runtime_descriptor_array, cap);
break; break;