mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
mesa: fix vertex format/attribute bug
If the tnl output attributes matches the swsetup input attributes we still need to check if the desired vertex color type (float vs. chan) has changed so that we use the right emit functions. Fixes a conformance failure found with logicop test at pathlevel 3.
This commit is contained in:
parent
902727b7e3
commit
5462d447aa
1 changed files with 8 additions and 5 deletions
|
|
@ -112,22 +112,25 @@ setup_vertex_format(GLcontext *ctx)
|
|||
{
|
||||
TNLcontext *tnl = TNL_CONTEXT(ctx);
|
||||
SScontext *swsetup = SWSETUP_CONTEXT(ctx);
|
||||
GLboolean intColors = !ctx->FragmentProgram._Current
|
||||
&& !ctx->ATIFragmentShader._Enabled
|
||||
&& ctx->RenderMode == GL_RENDER
|
||||
&& CHAN_TYPE == GL_UNSIGNED_BYTE;
|
||||
|
||||
if (!RENDERINPUTS_EQUAL(tnl->render_inputs_bitset,
|
||||
if (intColors != swsetup->intColors ||
|
||||
!RENDERINPUTS_EQUAL(tnl->render_inputs_bitset,
|
||||
swsetup->last_index_bitset)) {
|
||||
DECLARE_RENDERINPUTS(index_bitset);
|
||||
struct tnl_attr_map map[_TNL_ATTRIB_MAX];
|
||||
int i, e = 0;
|
||||
|
||||
swsetup->intColors = intColors;
|
||||
|
||||
RENDERINPUTS_COPY( index_bitset, tnl->render_inputs_bitset );
|
||||
|
||||
EMIT_ATTR( _TNL_ATTRIB_POS, EMIT_4F_VIEWPORT, attrib[FRAG_ATTRIB_WPOS] );
|
||||
|
||||
if (RENDERINPUTS_TEST( index_bitset, _TNL_ATTRIB_COLOR0 )) {
|
||||
swsetup->intColors = !ctx->FragmentProgram._Current
|
||||
&& !ctx->ATIFragmentShader._Enabled
|
||||
&& ctx->RenderMode == GL_RENDER
|
||||
&& CHAN_TYPE == GL_UNSIGNED_BYTE;
|
||||
if (swsetup->intColors)
|
||||
EMIT_ATTR( _TNL_ATTRIB_COLOR0, EMIT_4CHAN_4F_RGBA, color );
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue