diff options
author | Marek Olšák <[email protected]> | 2019-10-25 14:55:06 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-11-04 18:17:34 -0500 |
commit | 08dc541b662c39ebae80935d4845b2f40e92d028 (patch) | |
tree | ec57733fbe0e498ec7c9b60022c5b079822f7f67 /src/compiler | |
parent | 9be4a422a055d1e829d56c3cc91e1fc2f6e8fb31 (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.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. |