Mesa (master): glsl: flag shaders which use gather4 at all

Chris Forbes chrisf at kemper.freedesktop.org
Wed Oct 2 18:58:07 UTC 2013


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

Author: Chris Forbes <chrisf at ijw.co.nz>
Date:   Wed Sep 25 16:56:36 2013 +1200

glsl: flag shaders which use gather4 at all

Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glsl/ir_set_program_inouts.cpp |    9 +++++++++
 src/mesa/main/mtypes.h             |    2 ++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
index 1267d6d..ab23538 100644
--- a/src/glsl/ir_set_program_inouts.cpp
+++ b/src/glsl/ir_set_program_inouts.cpp
@@ -59,6 +59,7 @@ public:
    virtual ir_visitor_status visit_enter(ir_function_signature *);
    virtual ir_visitor_status visit_enter(ir_expression *);
    virtual ir_visitor_status visit_enter(ir_discard *);
+   virtual ir_visitor_status visit_enter(ir_texture *);
    virtual ir_visitor_status visit(ir_dereference_variable *);
 
 private:
@@ -319,6 +320,14 @@ ir_set_program_inouts_visitor::visit_enter(ir_discard *)
    return visit_continue;
 }
 
+ir_visitor_status
+ir_set_program_inouts_visitor::visit_enter(ir_texture *ir)
+{
+   if (ir->op == ir_tg4)
+      prog->UsesGather = true;
+   return visit_continue;
+}
+
 void
 do_set_program_inouts(exec_list *instructions, struct gl_program *prog,
                       GLenum shader_type)
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 3d414d5..514f810 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1963,6 +1963,8 @@ struct gl_program
    GLbitfield SamplersUsed;   /**< Bitfield of which samplers are used */
    GLbitfield ShadowSamplers; /**< Texture units used for shadow sampling. */
 
+   GLboolean UsesGather; /**< Does this program use gather4 at all? */
+
 
    /** Named parameters, constants, etc. from program text */
    struct gl_program_parameter_list *Parameters;




More information about the mesa-commit mailing list