summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2015-12-23 13:17:18 -0800
committerJason Ekstrand <jason.ekstrand@intel.com>2015-12-23 13:49:56 -0800
commit2e823d5754137c7ecb8f766540ff48b39ada48fc (patch)
tree6b96a277fbf0c3683bf300a78fa3c5ab7554bef4 /src
parent452ba4db2badced650555f8af2359d928a63c5be (diff)
downloadexternal_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.c6
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;
}