aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-10-25 14:55:06 -0400
committerMarek Olšák <[email protected]>2019-11-04 18:17:34 -0500
commit08dc541b662c39ebae80935d4845b2f40e92d028 (patch)
treeec57733fbe0e498ec7c9b60022c5b079822f7f67 /src/compiler
parent9be4a422a055d1e829d56c3cc91e1fc2f6e8fb31 (diff)
nir: pack nir_variable::data::stream
Reviewed-by: Connor Abbott <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/glsl/glsl_to_nir.cpp2
-rw-r--r--src/compiler/nir/nir.h7
2 files changed, 6 insertions, 3 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index c9bba912622..9b9da7f8187 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -445,6 +445,8 @@ nir_visitor::visit(ir_variable *ir)
var->data.invariant = ir->data.invariant;
var->data.location = ir->data.location;
var->data.stream = ir->data.stream;
+ if (ir->data.stream & (1u << 31))
+ var->data.stream |= NIR_STREAM_PACKED;
var->data.compact = false;
switch(ir->data.mode) {
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 00e5028d27b..e1f0fdd707c 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -60,6 +60,7 @@ extern "C" {
#define NIR_TRUE (~0u)
#define NIR_MAX_VEC_COMPONENTS 4
#define NIR_MAX_MATRIX_COLUMNS 4
+#define NIR_STREAM_PACKED (1 << 8)
typedef uint8_t nir_component_mask_t;
/** Defines a cast function
@@ -450,10 +451,10 @@ typedef struct nir_variable {
/**
* Vertex stream output identifier.
*
- * For packed outputs, bit 31 is set and bits [2*i+1,2*i] indicate the
- * stream of the i-th component.
+ * For packed outputs, NIR_STREAM_PACKED is set and bits [2*i+1,2*i]
+ * indicate the stream of the i-th component.
*/
- unsigned stream;
+ unsigned stream:9;
/**
* output index for dual source blending.