aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-06-24 15:37:35 -0700
committerKenneth Graunke <[email protected]>2016-06-27 16:36:30 -0700
commita36a73a7b8a058c037cb0307b57ac97292953c58 (patch)
tree9e7c64587096b8f9deaa520e3a2c0b2ceb6d5d16
parent7b9b0967756c7d552f5ad80eba46379b2115e604 (diff)
glsl: Ignore ir_texture in lower_const_arrays_to_uniforms.
The only part of an ir_texture which can be an array is the offsets array in textureGatherOffsets() calls. We don't want to lower those, because they're required to remain constants. Fixes textureGatherOffsets with Gallium drivers such as llvmpipe, which commit ef78df8d3b0cf540e5f08c8c2f6caa338b64a6c7 regressed. Cc: [email protected] Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
-rw-r--r--src/compiler/glsl/lower_const_arrays_to_uniforms.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp b/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp
index 99481505e0e..665a9ad1d48 100644
--- a/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp
+++ b/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp
@@ -57,6 +57,7 @@ public:
return progress;
}
+ ir_visitor_status visit_enter(ir_texture *);
void handle_rvalue(ir_rvalue **rvalue);
private:
@@ -64,6 +65,12 @@ private:
bool progress;
};
+ir_visitor_status
+lower_const_array_visitor::visit_enter(ir_texture *)
+{
+ return visit_continue_with_parent;
+}
+
void
lower_const_array_visitor::handle_rvalue(ir_rvalue **rvalue)
{