diff options
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_state.c')
-rw-r--r-- | src/gallium/drivers/ilo/ilo_state.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/ilo/ilo_state.c b/src/gallium/drivers/ilo/ilo_state.c index 43dc34756e9..1b97eaa14c6 100644 --- a/src/gallium/drivers/ilo/ilo_state.c +++ b/src/gallium/drivers/ilo/ilo_state.c @@ -856,10 +856,11 @@ static void ilo_set_stream_output_targets(struct pipe_context *pipe, unsigned num_targets, struct pipe_stream_output_target **targets, - unsigned append_bitmask) + const unsigned *offset) { struct ilo_context *ilo = ilo_context(pipe); unsigned i; + unsigned append_bitmask = 0; if (!targets) num_targets = 0; @@ -868,8 +869,11 @@ ilo_set_stream_output_targets(struct pipe_context *pipe, if (!ilo->so.count && !num_targets) return; - for (i = 0; i < num_targets; i++) + for (i = 0; i < num_targets; i++) { pipe_so_target_reference(&ilo->so.states[i], targets[i]); + if (offset[i] == (unsigned)-1) + append_bitmask |= 1 << i; + } for (; i < ilo->so.count; i++) pipe_so_target_reference(&ilo->so.states[i], NULL); |