mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
Make sure ctx->Driver.NeedFlush is set for Eval-generated attributes.
This commit is contained in:
parent
aa90495915
commit
c83d09e3b0
1 changed files with 12 additions and 12 deletions
|
|
@ -329,6 +329,15 @@ static void _tnl_fixup_vertex( GLcontext *ctx, GLuint attr, GLuint sz )
|
|||
for (i = sz ; i <= tnl->vtx.attrsz[attr] ; i++)
|
||||
tnl->vtx.attrptr[attr][i-1] = id[i-1];
|
||||
}
|
||||
|
||||
/* Does setting NeedFlush belong here? Necessitates resetting
|
||||
* vtxfmt on each flush (otherwise flags won't get reset
|
||||
* afterwards).
|
||||
*/
|
||||
if (attr == 0)
|
||||
ctx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
|
||||
else
|
||||
ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -393,14 +402,6 @@ static attrfv_func do_choose( GLuint attr, GLuint sz )
|
|||
|
||||
_tnl_fixup_vertex( ctx, attr, sz );
|
||||
|
||||
/* Does setting NeedFlush belong here? Necessitates resetting
|
||||
* vtxfmt on each flush (otherwise flags won't get reset
|
||||
* afterwards).
|
||||
*/
|
||||
if (attr == 0)
|
||||
ctx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
|
||||
else
|
||||
ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -517,7 +518,6 @@ do { \
|
|||
if (N>1) dest[1] = (params)[1]; \
|
||||
if (N>2) dest[2] = (params)[2]; \
|
||||
if (N>3) dest[3] = (params)[3]; \
|
||||
ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
@ -631,7 +631,7 @@ static void GLAPIENTRY _tnl_EvalCoord1f( GLfloat u )
|
|||
|
||||
for (i = 0 ; i <= _TNL_ATTRIB_INDEX ; i++) {
|
||||
if (tnl->vtx.eval.map1[i].map)
|
||||
if (tnl->vtx.attrsz[i] < tnl->vtx.eval.map1[i].sz)
|
||||
if (tnl->vtx.attrsz[i] != tnl->vtx.eval.map1[i].sz)
|
||||
_tnl_fixup_vertex( ctx, i, tnl->vtx.eval.map1[i].sz );
|
||||
}
|
||||
}
|
||||
|
|
@ -659,12 +659,12 @@ static void GLAPIENTRY _tnl_EvalCoord2f( GLfloat u, GLfloat v )
|
|||
|
||||
for (i = 0 ; i <= _TNL_ATTRIB_INDEX ; i++) {
|
||||
if (tnl->vtx.eval.map2[i].map)
|
||||
if (tnl->vtx.attrsz[i] < tnl->vtx.eval.map2[i].sz)
|
||||
if (tnl->vtx.attrsz[i] != tnl->vtx.eval.map2[i].sz)
|
||||
_tnl_fixup_vertex( ctx, i, tnl->vtx.eval.map2[i].sz );
|
||||
}
|
||||
|
||||
if (ctx->Eval.AutoNormal)
|
||||
if (tnl->vtx.attrsz[_TNL_ATTRIB_NORMAL] < 3)
|
||||
if (tnl->vtx.attrsz[_TNL_ATTRIB_NORMAL] != 3)
|
||||
_tnl_fixup_vertex( ctx, _TNL_ATTRIB_NORMAL, 3 );
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue