const struct pipe_draw_indirect_info *indirect,
const struct pipe_draw_start_count_bias draw)
{
- struct u_vbuf *vbuf = cso->vbuf_current;
-
/* We can't have both indirect drawing and SO-vertex-count drawing */
assert(!indirect ||
indirect->buffer == NULL ||
!indirect ||
indirect->count_from_stream_output == NULL);
- if (vbuf) {
- u_vbuf_draw_vbo(vbuf, info, drawid_offset, indirect, &draw, 1);
+ struct pipe_context *pipe = cso->pipe;
+
+ if (cso->vbuf_current) {
+ u_vbuf_draw_vbo(pipe, info, drawid_offset, indirect, &draw, 1);
} else {
- struct pipe_context *pipe = cso->pipe;
pipe->draw_vbo(pipe, info, drawid_offset, indirect, &draw, 1);
}
}
const struct pipe_draw_start_count_bias *draws,
unsigned num_draws)
{
- struct u_vbuf *vbuf = cso->vbuf_current;
+ struct pipe_context *pipe = cso->pipe;
- if (vbuf) {
- u_vbuf_draw_vbo(vbuf, info, drawid_offset, NULL, draws, num_draws);
+ if (cso->vbuf_current) {
+ u_vbuf_draw_vbo(pipe, info, drawid_offset, NULL, draws, num_draws);
} else {
- struct pipe_context *pipe = cso->pipe;
-
pipe->draw_vbo(pipe, info, drawid_offset, NULL, draws, num_draws);
}
}
draw.index_bias = indirect_data[offset + 3];
info->start_instance = indirect_data[offset + 4];
- u_vbuf_draw_vbo(mgr, info, drawid_offset, NULL, &draw, 1);
+ u_vbuf_draw_vbo(mgr->pipe, info, drawid_offset, NULL, &draw, 1);
}
}
-void u_vbuf_draw_vbo(struct u_vbuf *mgr, const struct pipe_draw_info *info,
+void u_vbuf_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info,
unsigned drawid_offset,
const struct pipe_draw_indirect_info *indirect,
const struct pipe_draw_start_count_bias *draws,
unsigned num_draws)
{
- struct pipe_context *pipe = mgr->pipe;
+ struct u_vbuf *mgr = pipe->vbuf;
int start_vertex;
unsigned min_index;
unsigned num_vertices;
unsigned unbind_num_trailing_slots,
bool take_ownership,
const struct pipe_vertex_buffer *bufs);
-void u_vbuf_draw_vbo(struct u_vbuf *mgr, const struct pipe_draw_info *info,
+void u_vbuf_draw_vbo(struct pipe_context *pipe,
+ const struct pipe_draw_info *info,
unsigned drawid_offset,
const struct pipe_draw_indirect_info *indirect,
const struct pipe_draw_start_count_bias *draws,