iris: only get space for one offset in stream output targets
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 5 Dec 2018 09:16:23 +0000 (01:16 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:10 +0000 (10:26 -0800)
Target corresponds to a buffer, buffer only records one offset, not
multiple.

src/gallium/drivers/iris/iris_state.c

index 809f971758034b811e1151334a3b40ad492fc3a6..5012ffd996ea8d53f4cc189da8dc97a820cd4800 100644 (file)
@@ -2529,7 +2529,7 @@ iris_create_stream_output_target(struct pipe_context *ctx,
    cso->base.buffer_size = buffer_size;
    cso->base.context = ctx;
 
-   upload_state(ctx->stream_uploader, &cso->offset, 4 * sizeof(uint32_t), 4);
+   upload_state(ctx->stream_uploader, &cso->offset, sizeof(uint32_t), 4);
 
    return &cso->base;
 }
@@ -2618,7 +2618,7 @@ iris_set_stream_output_targets(struct pipe_context *ctx,
          sob.StreamOffset = offsets[i];
          sob.StreamOutputBufferOffsetAddress =
             rw_bo(NULL, iris_resource_bo(tgt->offset.res)->gtt_offset +
-                        tgt->offset.offset + i * sizeof(uint32_t));
+                        tgt->offset.offset);
       }
    }