diff --git a/src/compiler/spirv/vtn_alu.c b/src/compiler/spirv/vtn_alu.c index 544e820d1ea..a528b2e1b12 100644 --- a/src/compiler/spirv/vtn_alu.c +++ b/src/compiler/spirv/vtn_alu.c @@ -799,7 +799,9 @@ vtn_handle_alu(struct vtn_builder *b, SpvOp opcode, } case SpvOpDot: - dest->def = nir_fdot(&b->nb, src[0], src[1]); + dest->def = glsl_type_is_bfloat_16(dest_type) ? + nir_bfdot(&b->nb, src[0], src[1]) : + nir_fdot(&b->nb, src[0], src[1]); break; case SpvOpIAddCarry: