diff options
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/glsl/glsl_to_nir.cpp | 2 | ||||
-rw-r--r-- | src/compiler/nir/nir.h | 7 |
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. |