[Mesa-dev] [PATCH V4 06/13] glsl: flag shaders which use gather4 at all
Chris Forbes
chrisf at ijw.co.nz
Mon Sep 30 03:08:36 PDT 2013
---
src/glsl/ir_set_program_inouts.cpp | 9 +++++++++
src/mesa/main/mtypes.h | 2 ++
2 files changed, 11 insertions(+)
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;
--
1.8.4
More information about the mesa-dev
mailing list