Mesa (master): swr: color interpolation is also supposed to get perspective division

Ilia Mirkin imirkin at kemper.freedesktop.org
Wed Nov 23 01:29:34 UTC 2016


Module: Mesa
Branch: master
Commit: f6f644ea128f38bdf24fe7e832cdabc18cfdfb0c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f6f644ea128f38bdf24fe7e832cdabc18cfdfb0c

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sun Nov 20 21:20:08 2016 -0500

swr: color interpolation is also supposed to get perspective division

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Tim Rowley <timothy.o.rowley at intel.com>

---

 src/gallium/drivers/swr/swr_shader.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/swr/swr_shader.cpp b/src/gallium/drivers/swr/swr_shader.cpp
index 428c9b3..294a568 100644
--- a/src/gallium/drivers/swr/swr_shader.cpp
+++ b/src/gallium/drivers/swr/swr_shader.cpp
@@ -457,7 +457,8 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key)
 
       // load/compute w
       Value *vw = nullptr, *pAttribs;
-      if (interpMode == TGSI_INTERPOLATE_PERSPECTIVE) {
+      if (interpMode == TGSI_INTERPOLATE_PERSPECTIVE ||
+          interpMode == TGSI_INTERPOLATE_COLOR) {
          pAttribs = pPerspAttribs;
          switch (interpLoc) {
          case TGSI_INTERPOLATE_LOC_CENTER:
@@ -596,7 +597,8 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key)
                Value *interp1 = FMUL(vb, vj);
                interp = FADD(interp, interp1);
                interp = FADD(interp, vc);
-               if (interpMode == TGSI_INTERPOLATE_PERSPECTIVE)
+               if (interpMode == TGSI_INTERPOLATE_PERSPECTIVE ||
+                   interpMode == TGSI_INTERPOLATE_COLOR)
                   interp = FMUL(interp, vw);
                inputs[attrib][channel] = wrap(interp);
             }




More information about the mesa-commit mailing list