diff options
author | Eric Anholt <eric@anholt.net> | 2011-09-07 11:00:03 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-09-08 20:20:49 -0700 |
commit | d00deae3ef3a7828de1e566ad95b3a5b1ab7034d (patch) | |
tree | bcfe1b7622f618bf7df577fc03b73b0e63b240fd /src/glsl/ir_set_program_inouts.cpp | |
parent | ce64b6d612dc167c4b8c00594d87517d6ed0e5fa (diff) | |
download | external_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.cpp | 6 |
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); } |