summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_set_program_inouts.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2011-09-07 11:00:03 -0700
committerEric Anholt <eric@anholt.net>2011-09-08 20:20:49 -0700
commitd00deae3ef3a7828de1e566ad95b3a5b1ab7034d (patch)
treebcfe1b7622f618bf7df577fc03b73b0e63b240fd /src/glsl/ir_set_program_inouts.cpp
parentce64b6d612dc167c4b8c00594d87517d6ed0e5fa (diff)
downloadexternal_mesa3d-d00deae3ef3a7828de1e566ad95b3a5b1ab7034d.zip
external_mesa3d-d00deae3ef3a7828de1e566ad95b3a5b1ab7034d.tar.gz
external_mesa3d-d00deae3ef3a7828de1e566ad95b3a5b1ab7034d.tar.bz2
glsl: Fix setting of OutputsWritten for whole array dereference.
We just want to mark the whole thing used, not mark from each element the whole size in use. Fixes undefined URB entry writes on i965, which blew up with debugging enabled. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/ir_set_program_inouts.cpp')
-rw-r--r--src/glsl/ir_set_program_inouts.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
index 0854565..3b10b90 100644
--- a/src/glsl/ir_set_program_inouts.cpp
+++ b/src/glsl/ir_set_program_inouts.cpp
@@ -94,10 +94,8 @@ ir_set_program_inouts_visitor::visit(ir_dereference_variable *ir)
return visit_continue;
if (ir->type->is_array()) {
- for (unsigned int i = 0; i < ir->type->length; i++) {
- mark(this->prog, ir->var, i,
- ir->type->length * ir->type->fields.array->matrix_columns);
- }
+ mark(this->prog, ir->var, 0,
+ ir->type->length * ir->type->fields.array->matrix_columns);
} else {
mark(this->prog, ir->var, 0, ir->type->matrix_columns);
}