Mesa (master): ir_to_mesa: When emitting a pixel kill, flag that we did so.

Eric Anholt anholt at kemper.freedesktop.org
Tue Aug 31 22:44:25 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Aug 31 13:02:59 2010 -0700

ir_to_mesa: When emitting a pixel kill, flag that we did so.

Both i965 and swrast rely on UsesKill to determine whether to do early
depth writes.  Fixes glsl-fs-discard-02.

Bug #29835.

---

 src/mesa/program/ir_to_mesa.cpp |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 8f39a22..57458d0 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2041,9 +2041,12 @@ ir_to_mesa_visitor::visit(ir_return *ir)
 void
 ir_to_mesa_visitor::visit(ir_discard *ir)
 {
+   struct gl_fragment_program *fp = (struct gl_fragment_program *)this->prog;
+
    assert(ir->condition == NULL); /* FINISHME */
 
    ir_to_mesa_emit_op0(ir, OPCODE_KIL_NV);
+   fp->UsesKill = GL_TRUE;
 }
 
 void




More information about the mesa-commit mailing list