[Mesa-dev] [PATCH 03/28] spirv/nir: setting interface type for ubos/ssbos

Alejandro PiƱeiro apinheiro at igalia.com
Mon Oct 22 12:24:25 UTC 2018


Right now, a type is considered a ubo/ssbo if the mode is
uniform/shader_storage and the interface_type is different to
NULL. See ir_variable::in_in_buffer_block as an example.
---
 src/compiler/spirv/vtn_variables.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
index 5665106ab14..04103455614 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -1731,7 +1731,16 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val,
       }
       var->var->data.mode = nir_mode;
       var->var->data.location = -1;
-      var->var->interface_type = NULL;
+
+      switch (var->mode) {
+      case vtn_variable_mode_ubo:
+      case vtn_variable_mode_ssbo:
+         var->var->interface_type = without_array->type;
+         break;
+      default:
+         var->var->interface_type = NULL;
+         break;
+      }
       break;
 
    case vtn_variable_mode_workgroup:
-- 
2.14.1



More information about the mesa-dev mailing list