summaryrefslogtreecommitdiff
path: root/src/video_core/swrasterizer/clipper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/swrasterizer/clipper.cpp')
-rw-r--r--src/video_core/swrasterizer/clipper.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/video_core/swrasterizer/clipper.cpp b/src/video_core/swrasterizer/clipper.cpp
index 2d80822d9..6fb923756 100644
--- a/src/video_core/swrasterizer/clipper.cpp
+++ b/src/video_core/swrasterizer/clipper.cpp
@@ -69,13 +69,14 @@ static void InitScreenCoordinates(Vertex& vtx) {
69 viewport.offset_y = float24::FromFloat32(static_cast<float>(regs.rasterizer.viewport_corner.y)); 69 viewport.offset_y = float24::FromFloat32(static_cast<float>(regs.rasterizer.viewport_corner.y));
70 70
71 float24 inv_w = float24::FromFloat32(1.f) / vtx.pos.w; 71 float24 inv_w = float24::FromFloat32(1.f) / vtx.pos.w;
72 vtx.color *= inv_w; 72 vtx.pos.w = inv_w;
73 vtx.view *= inv_w;
74 vtx.quat *= inv_w; 73 vtx.quat *= inv_w;
74 vtx.color *= inv_w;
75 vtx.tc0 *= inv_w; 75 vtx.tc0 *= inv_w;
76 vtx.tc1 *= inv_w; 76 vtx.tc1 *= inv_w;
77 vtx.tc0_w *= inv_w;
78 vtx.view *= inv_w;
77 vtx.tc2 *= inv_w; 79 vtx.tc2 *= inv_w;
78 vtx.pos.w = inv_w;
79 80
80 vtx.screenpos[0] = 81 vtx.screenpos[0] =
81 (vtx.pos.x * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_x + viewport.offset_x; 82 (vtx.pos.x * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_x + viewport.offset_x;