mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 03:40:23 +01:00
mesa: fix tnl->render_inputs_bitset setup for fragment program texcoords
Handle the case where there's no per-vertex texcoords but the fragment shader needs texcoords. Fixes piglit shaders/fp-generic/dph test.
This commit is contained in:
parent
1df62651b2
commit
f6d23943cd
1 changed files with 10 additions and 6 deletions
|
|
@ -109,24 +109,28 @@ _tnl_InvalidateState( GLcontext *ctx, GLuint new_state )
|
|||
|
||||
tnl->pipeline.new_state |= new_state;
|
||||
|
||||
/* Calculate tnl->render_inputs:
|
||||
/* Calculate tnl->render_inputs. This bitmask indicates which vertex
|
||||
* attributes need to be emitted to the rasterizer.
|
||||
*/
|
||||
if (ctx->Visual.rgbMode) {
|
||||
GLuint i;
|
||||
|
||||
RENDERINPUTS_ZERO( tnl->render_inputs_bitset );
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_POS );
|
||||
|
||||
if (!fp || (fp->Base.InputsRead & FRAG_BIT_COL0)) {
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_COLOR0 );
|
||||
}
|
||||
for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
|
||||
if (ctx->Texture._EnabledCoordUnits & (1 << i)) {
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_TEX(i) );
|
||||
}
|
||||
}
|
||||
|
||||
if (NEED_SECONDARY_COLOR(ctx))
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_COLOR1 );
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
|
||||
if (ctx->Texture._EnabledCoordUnits & (1 << i) ||
|
||||
(fp && fp->Base.InputsRead & FRAG_BIT_TEX(i))) {
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_TEX(i) );
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
RENDERINPUTS_SET( tnl->render_inputs_bitset, _TNL_ATTRIB_POS );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue