diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-12-23 16:05:51 +0100 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-12-29 05:08:11 +0100 |
commit | 8369ee58035ca98f776428f6cccbcf987fee3bc9 (patch) | |
tree | 3c1800823ffe55529ba6dbcba0c4407d2da625f2 /src/video_core/rasterizer.cpp | |
parent | GPU: Bitwise texture swizzling (diff) | |
download | yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar.gz yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar.bz2 yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar.lz yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar.xz yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.tar.zst yuzu-8369ee58035ca98f776428f6cccbcf987fee3bc9.zip |
Diffstat (limited to 'src/video_core/rasterizer.cpp')
-rw-r--r-- | src/video_core/rasterizer.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/video_core/rasterizer.cpp b/src/video_core/rasterizer.cpp index 63da7104d..a80148872 100644 --- a/src/video_core/rasterizer.cpp +++ b/src/video_core/rasterizer.cpp @@ -106,10 +106,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, int bias1 = IsRightSideOrFlatBottomEdge(vtxpos[1].xy(), vtxpos[2].xy(), vtxpos[0].xy()) ? -1 : 0; int bias2 = IsRightSideOrFlatBottomEdge(vtxpos[2].xy(), vtxpos[0].xy(), vtxpos[1].xy()) ? -1 : 0; - const Math::Vec3<float24> w_inverse = Math::MakeVec( - float24::FromFloat32(1.0f) / v0.pos.w, - float24::FromFloat32(1.0f) / v1.pos.w, - float24::FromFloat32(1.0f) / v2.pos.w); + auto w_inverse = Math::MakeVec(v0.pos.w, v1.pos.w, v2.pos.w); auto textures = registers.GetTextures(); auto tev_stages = registers.GetTevStages(); @@ -158,7 +155,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, // // The generalization to three vertices is straightforward in baricentric coordinates. auto GetInterpolatedAttribute = [&](float24 attr0, float24 attr1, float24 attr2) { - auto attr_over_w = Math::MakeVec(attr0, attr1, attr2) * w_inverse; + auto attr_over_w = Math::MakeVec(attr0, attr1, attr2); float24 interpolated_attr_over_w = Math::Dot(attr_over_w, baricentric_coordinates); return interpolated_attr_over_w * interpolated_w_inverse; }; |