diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-12-23 13:17:18 -0800 |
---|---|---|
committer | Jason Ekstrand <jason.ekstrand@intel.com> | 2015-12-23 13:49:56 -0800 |
commit | 2e823d5754137c7ecb8f766540ff48b39ada48fc (patch) | |
tree | 6b96a277fbf0c3683bf300a78fa3c5ab7554bef4 /src | |
parent | 452ba4db2badced650555f8af2359d928a63c5be (diff) | |
download | external_mesa3d-2e823d5754137c7ecb8f766540ff48b39ada48fc.zip external_mesa3d-2e823d5754137c7ecb8f766540ff48b39ada48fc.tar.gz external_mesa3d-2e823d5754137c7ecb8f766540ff48b39ada48fc.tar.bz2 |
nir/spirv: Properly handle vector times matrix
Diffstat (limited to 'src')
-rw-r--r-- | src/glsl/nir/spirv_to_nir.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/glsl/nir/spirv_to_nir.c b/src/glsl/nir/spirv_to_nir.c index 91667e1..a6b770e 100644 --- a/src/glsl/nir/spirv_to_nir.c +++ b/src/glsl/nir/spirv_to_nir.c @@ -2493,7 +2493,11 @@ vtn_handle_matrix_alu(struct vtn_builder *b, SpvOp opcode, struct vtn_ssa_value *src0 = vtn_ssa_value(b, w[3]); struct vtn_ssa_value *src1 = vtn_ssa_value(b, w[4]); - val->ssa = vtn_matrix_multiply(b, src0, src1); + if (opcode == SpvOpVectorTimesMatrix) { + val->ssa = vtn_matrix_multiply(b, vtn_transpose(b, src1), src0); + } else { + val->ssa = vtn_matrix_multiply(b, src0, src1); + } break; } |