count = u_stream_outputs_for_vertices(ctx->active_prim,
ctx->vertex_count);
- ctx->streamout.offsets[i] += count;
+ pan_so_target(ctx->streamout.targets[i])->offset += count;
}
}
cfg.index_count = info->count;
} else {
ctx->offset_start = info->start;
- cfg.index_count = ctx->vertex_count;
+ cfg.index_count = info->count_from_stream_output ?
+ pan_so_target(info->count_from_stream_output)->offset :
+ ctx->vertex_count;
}
}
{
struct pipe_stream_output_target *target;
- target = rzalloc(pctx, struct pipe_stream_output_target);
+ target = &rzalloc(pctx, struct panfrost_streamout_target)->base;
if (!target)
return NULL;
for (unsigned i = 0; i < num_targets; i++) {
if (offsets[i] != -1)
- so->offsets[i] = offsets[i];
+ pan_so_target(targets[i])->offset = offsets[i];
pipe_so_target_reference(&so->targets[i], targets[i]);
}