nir/spirv: Properly handle vector times matrix

This commit is contained in:
Jason Ekstrand
2015-12-23 13:17:18 -08:00
parent 452ba4db2b
commit 2e823d5754
+5 -1
View File
@@ -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;
}