summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/spirv/spirv_to_nir.c9
-rw-r--r--src/compiler/spirv/vtn_variables.c5
2 files changed, 12 insertions, 2 deletions
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c
index 4013d2ddd0e..7e3a6d6e882 100644
--- a/src/compiler/spirv/spirv_to_nir.c
+++ b/src/compiler/spirv/spirv_to_nir.c
@@ -847,7 +847,6 @@ type_decoration_cb(struct vtn_builder *b,
case SpvDecorationNonWritable:
case SpvDecorationNonReadable:
case SpvDecorationUniform:
- case SpvDecorationStream:
case SpvDecorationLocation:
case SpvDecorationComponent:
case SpvDecorationOffset:
@@ -857,6 +856,14 @@ type_decoration_cb(struct vtn_builder *b,
spirv_decoration_to_string(dec->decoration));
break;
+ case SpvDecorationStream:
+ /* We don't need to do anything here, as stream is filled up when
+ * aplying the decoration to a variable, just check that if it is not a
+ * struct member, it should be a struct.
+ */
+ vtn_assert(type->base_type == vtn_base_type_struct);
+ break;
+
case SpvDecorationRelaxedPrecision:
case SpvDecorationSpecId:
case SpvDecorationInvariant:
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
index 6ff2e83515a..8dab86abd74 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -1298,7 +1298,6 @@ apply_var_decoration(struct vtn_builder *b,
case SpvDecorationMatrixStride:
case SpvDecorationAliased:
case SpvDecorationUniform:
- case SpvDecorationStream:
case SpvDecorationLinkageAttributes:
break; /* Do nothing with these here */
@@ -1337,6 +1336,10 @@ apply_var_decoration(struct vtn_builder *b,
var_data->offset = dec->literals[0];
break;
+ case SpvDecorationStream:
+ var_data->stream = dec->literals[0];
+ break;
+
case SpvDecorationCPacked:
case SpvDecorationSaturatedConversion:
case SpvDecorationFuncParamAttr: