iris: scissor slots
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 22 Jan 2018 05:23:48 +0000 (21:23 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:05 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_state.c

index 9082b6154f2b0dc66b4595c0f3efb9652442f690..8e49312f58da7c65ae9d877c449d0d85cca04f89 100644 (file)
@@ -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);