diff options
Diffstat (limited to 'src/mesa/state_tracker/st_cb_feedback.c')
-rw-r--r-- | src/mesa/state_tracker/st_cb_feedback.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_cb_feedback.c b/src/mesa/state_tracker/st_cb_feedback.c index db682cc..d624d9f 100644 --- a/src/mesa/state_tracker/st_cb_feedback.c +++ b/src/mesa/state_tracker/st_cb_feedback.c @@ -46,6 +46,7 @@ #include "st_context.h" #include "st_draw.h" #include "st_cb_feedback.h" +#include "st_program.h" #include "pipe/p_context.h" #include "pipe/p_defines.h" @@ -291,13 +292,16 @@ st_RenderMode(struct gl_context *ctx, GLenum newMode ) vbo_set_draw_func(ctx, st_feedback_draw_vbo); } else { + struct gl_vertex_program *vp = st->ctx->VertexProgram._Current; + if (!st->feedback_stage) st->feedback_stage = draw_glfeedback_stage(ctx, draw); draw_set_rasterize_stage(draw, st->feedback_stage); /* Plug in new vbo draw function */ vbo_set_draw_func(ctx, st_feedback_draw_vbo); /* need to generate/use a vertex program that emits pos/color/tex */ - st->dirty |= ST_NEW_VERTEX_PROGRAM(st); + if (vp) + st->dirty |= ST_NEW_VERTEX_PROGRAM(st, st_vertex_program(vp)); } } |