From df401aaa11eeab91ada100c44ec9a1c4f3963978 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Sun, 21 Jan 2018 21:23:48 -0800 Subject: [PATCH] iris: scissor slots --- src/gallium/drivers/iris/iris_state.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 9082b6154f2..8e49312f58d 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -923,15 +923,14 @@ static void iris_set_scissor_states(struct pipe_context *ctx, unsigned start_slot, unsigned num_scissors, - const struct pipe_scissor_state *state) + const struct pipe_scissor_state *states) { struct iris_context *ice = (struct iris_context *) ctx; - // XXX: start_slot ice->state.num_scissors = num_scissors; - for (unsigned i = start_slot; i < start_slot + num_scissors; i++) { - ice->state.scissors[i] = *state; + for (unsigned i = 0; i < num_scissors; i++) { + ice->state.scissors[start_slot + i] = states[i]; } ice->state.dirty |= IRIS_DIRTY_SCISSOR_RECT; @@ -1049,6 +1048,7 @@ iris_set_viewport_states(struct pipe_context *ctx, struct iris_viewport_state *cso = malloc(sizeof(struct iris_viewport_state)); + // XXX: sf_cl_vp is only big enough for one slot, we don't iterate right for (unsigned i = start_slot; i < start_slot + num_viewports; i++) { float x_extent = extent_from_matrix(&state[i], 0); float y_extent = extent_from_matrix(&state[i], 1); -- 2.30.2