Mesa (master): i915: Add support for reading output regs in the FS.

Eric Anholt anholt at kemper.freedesktop.org
Tue Aug 17 23:39:32 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 17 15:51:34 2010 -0700

i915: Add support for reading output regs in the FS.

Fixes glsl-unused-varying and many others, since we produce an output
reg read any time gl_FragColor is written inside an if statement.

---

 src/mesa/drivers/dri/i915/i915_fragprog.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c
index 2ba0d2c..3101bd1 100644
--- a/src/mesa/drivers/dri/i915/i915_fragprog.c
+++ b/src/mesa/drivers/dri/i915/i915_fragprog.c
@@ -143,6 +143,20 @@ src_vector(struct i915_fragment_program *p,
       }
       break;
 
+   case PROGRAM_OUTPUT:
+      switch (source->Index) {
+      case FRAG_RESULT_COLOR:
+	 src = UREG(REG_TYPE_OC, 0);
+	 break;
+      case FRAG_RESULT_DEPTH:
+	 src = UREG(REG_TYPE_OD, 0);
+	 break;
+      default:
+	 i915_program_error(p, "Bad source->Index: %d", source->Index);
+	 return 0;
+      }
+      break;
+
       /* Various paramters and env values.  All emitted to
        * hardware as program constants.
        */




More information about the mesa-commit mailing list