mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 18:08:40 +02:00
vbo: remove node->count > 0 test in vbo_save_playback_vertex_list()
See piglit dlist-fdo31590.c test and http://bugs.freedesktop.org/show_bug.cgi?id=31590 In this case we had node->prim_count=1 but node->count==0 because the display list started with glBegin() but had no vertices. The call to glEvalCoord1f() triggered the DO_FALLBACK() path. When replaying the display list, the old condition basically no-op'd the call to vbo_save_playback_vertex_list call(). That led to the invalid operation error being raised in glEnd(). NOTE: This is a candidate for the 7.10 branch.
This commit is contained in:
parent
f1cdce95f6
commit
62811057f4
1 changed files with 11 additions and 9 deletions
|
|
@ -249,7 +249,7 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data)
|
|||
|
||||
FLUSH_CURRENT(ctx, 0);
|
||||
|
||||
if (node->prim_count > 0 && node->count > 0) {
|
||||
if (node->prim_count > 0) {
|
||||
|
||||
if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END &&
|
||||
node->prim[0].begin) {
|
||||
|
|
@ -289,14 +289,16 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data)
|
|||
if (ctx->NewState)
|
||||
_mesa_update_state( ctx );
|
||||
|
||||
vbo_context(ctx)->draw_prims(ctx,
|
||||
save->inputs,
|
||||
node->prim,
|
||||
node->prim_count,
|
||||
NULL,
|
||||
GL_TRUE,
|
||||
0, /* Node is a VBO, so this is ok */
|
||||
node->count - 1);
|
||||
if (node->count > 0) {
|
||||
vbo_context(ctx)->draw_prims(ctx,
|
||||
save->inputs,
|
||||
node->prim,
|
||||
node->prim_count,
|
||||
NULL,
|
||||
GL_TRUE,
|
||||
0, /* Node is a VBO, so this is ok */
|
||||
node->count - 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Copy to current?
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue