diff --git a/src/video_core/vertex_shader.cpp b/src/video_core/vertex_shader.cpp index 87006a832..c9a6170c5 100644 --- a/src/video_core/vertex_shader.cpp +++ b/src/video_core/vertex_shader.cpp @@ -230,6 +230,21 @@ static void ProcessShaderCode(VertexShaderState& state) { break; } + case OpCode::Id::DPH: + case OpCode::Id::DPHI: + { + float24 dot = src2[3]; + for (int i = 0; i < 3; ++i) + dot += src1[i] * src2[i]; + + for (int i = 0; i < 4; ++i) { + if (!swizzle.DestComponentEnabled(i)) + continue; + dest[i] = dot; + } + break; + } + // Reciprocal case OpCode::Id::RCP: {