summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_draw.c')
-rw-r--r--src/mesa/state_tracker/st_draw.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 8b43582c14b..957fcfd410e 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -164,6 +164,7 @@ translate_prim(const struct gl_context *ctx, unsigned prim)
STATIC_ASSERT(GL_POINTS == PIPE_PRIM_POINTS);
STATIC_ASSERT(GL_QUADS == PIPE_PRIM_QUADS);
STATIC_ASSERT(GL_TRIANGLE_STRIP_ADJACENCY == PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY);
+ STATIC_ASSERT(GL_PATCHES == PIPE_PRIM_PATCHES);
return prim;
}
@@ -183,6 +184,7 @@ st_draw_vbo(struct gl_context *ctx,
GLuint min_index,
GLuint max_index,
struct gl_transform_feedback_object *tfb_vertcount,
+ unsigned stream,
struct gl_buffer_object *indirect)
{
struct st_context *st = st_context(ctx);
@@ -241,7 +243,8 @@ st_draw_vbo(struct gl_context *ctx,
/* Transform feedback drawing is always non-indexed. */
/* Set info.count_from_stream_output. */
if (tfb_vertcount) {
- st_transform_feedback_draw_init(tfb_vertcount, &info);
+ if (!st_transform_feedback_draw_init(tfb_vertcount, stream, &info))
+ return;
}
}
@@ -260,6 +263,7 @@ st_draw_vbo(struct gl_context *ctx,
info.count = prims[i].count;
info.start_instance = prims[i].base_instance;
info.instance_count = prims[i].num_instances;
+ info.vertices_per_patch = ctx->TessCtrlProgram.patch_vertices;
info.index_bias = prims[i].basevertex;
if (!ib) {
info.min_index = info.start;