diff options
author | Neil Roberts <[email protected]> | 2018-01-16 19:47:07 +0100 |
---|---|---|
committer | Alejandro PiƱeiro <[email protected]> | 2018-07-31 13:18:28 +0200 |
commit | b0af66bb172c803c08b73e705822c3d53f5191f5 (patch) | |
tree | 4f8043bb8e7145c73ab2227293a5080f7c0853fd | |
parent | 13b8857fcf575c5b786e055ad4594d8bf6a5c4b6 (diff) |
spirv/nir: Fix the stream ID when emitting a primitive or vertex
It looks like it was previously taking the SPIR-V instruction number
directly instead of looking up the constant value.
v2: use vtn_constant_value helper (Jason)
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/compiler/spirv/spirv_to_nir.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 7e3a6d6e882..f0a5fae4a64 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3218,9 +3218,12 @@ vtn_handle_barrier(struct vtn_builder *b, SpvOp opcode, switch (opcode) { case SpvOpEmitStreamVertex: - case SpvOpEndStreamPrimitive: - nir_intrinsic_set_stream_id(intrin, w[1]); + case SpvOpEndStreamPrimitive: { + unsigned stream = vtn_constant_value(b, w[1])->values[0].u32[0]; + nir_intrinsic_set_stream_id(intrin, stream); break; + } + default: break; } |