Module: Mesa
Branch: staging/19.0
Commit: ef2f4086f363c7ed7607f953dab011243b0738ba
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef2f4086f363c7ed7607f953dab011243b0738ba

Author: Juan A. Suarez Romero <[email protected]>
Date:   Mon Apr 29 17:02:45 2019 +0200

spirv: add missing SPV_EXT_descriptor_indexing capabilities

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

Cc: [email protected]
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
(cherry picked from commit bbbe00a1016bd7b9e777a94fbe92477dc6109678)

---

 src/compiler/shader_info.h        |  2 ++
 src/compiler/spirv/spirv_to_nir.c | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
index c3dbe764961..e82f465b256 100644
--- a/src/compiler/shader_info.h
+++ b/src/compiler/shader_info.h
@@ -36,6 +36,8 @@ struct spirv_supported_capabilities {
    bool address;
    bool atomic_storage;
    bool descriptor_array_dynamic_indexing;
+   bool descriptor_array_non_uniform_indexing;
+   bool descriptor_indexing;
    bool device_group;
    bool draw_parameters;
    bool float64;
diff --git a/src/compiler/spirv/spirv_to_nir.c 
b/src/compiler/spirv/spirv_to_nir.c
index 6b9c831bfad..f76cac88f18 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -3701,12 +3701,26 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, 
SpvOp opcode,
          spv_check_supported(storage_8bit, cap);
          break;
 
+      case SpvCapabilityShaderNonUniformEXT:
+         spv_check_supported(descriptor_indexing, cap);
+         break;
+
       case SpvCapabilityInputAttachmentArrayDynamicIndexingEXT:
       case SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT:
       case SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT:
          spv_check_supported(descriptor_array_dynamic_indexing, cap);
          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:
          spv_check_supported(runtime_descriptor_array, cap);
          break;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to