diff --git a/GPU/Software/Rasterizer.cpp b/GPU/Software/Rasterizer.cpp index 700f6f5349..cc5fa5ca68 100644 --- a/GPU/Software/Rasterizer.cpp +++ b/GPU/Software/Rasterizer.cpp @@ -881,15 +881,17 @@ inline void DrawSinglePixel(const DrawingCoords &p, u16 z, Vec3 prim_color_ SetPixelDepth(p.x, p.y, z); } + // Doubling happens only when texturing is enabled, and after tests. + if (gstate.isTextureMapEnabled() && gstate.isColorDoublingEnabled() && !clearMode) { + // TODO: Does this need to be clamped before blending? + prim_color_rgb *= 2; + } + if (gstate.isAlphaBlendEnabled() && !clearMode) { Vec4 dst = Vec4::FromRGBA(GetPixelColor(p.x, p.y)); prim_color_rgb = AlphaBlendingResult(prim_color_rgb, prim_color_a, dst); } - if (gstate.isTextureMapEnabled() && gstate.isColorDoublingEnabled() && !clearMode) { - prim_color_rgb *= 2; - } - if (!clearMode) prim_color_rgb = prim_color_rgb.Clamp(0, 255);