X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fffvertex_prog.c;h=70ac47f36d77fd7135593b501991604a7478c6a4;hb=35489ef285f1fde234b2b9bbb91fdc41fddefc02;hp=ba94a38770bebdbd1a82909e936ba238753d161a;hpb=298be2b028263b2c343a707662c6fbfa18293cb2;p=mesa.git diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index ba94a38770b..70ac47f36d7 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -75,6 +75,7 @@ struct state_key { unsigned light_attenuated:1; unsigned texunit_really_enabled:1; unsigned texmat_enabled:1; + unsigned coord_replace:1; unsigned texgen_enabled:4; unsigned texgen_mode0:4; unsigned texgen_mode1:4; @@ -225,6 +226,10 @@ static void make_state_key( GLcontext *ctx, struct state_key *key ) if (texUnit->_ReallyEnabled) key->unit[i].texunit_really_enabled = 1; + if (ctx->Point.PointSprite) + if (ctx->Point.CoordReplace[i]) + key->unit[i].coord_replace = 1; + if (ctx->Texture._TexMatEnabled & ENABLE_TEXMAT(i)) key->unit[i].texmat_enabled = 1; @@ -1385,6 +1390,9 @@ static void build_texture_transform( struct tnl_program *p ) if (!(p->state->fragprog_inputs_read & FRAG_BIT_TEX(i))) continue; + if (p->state->unit[i].coord_replace) + continue; + if (p->state->unit[i].texgen_enabled || p->state->unit[i].texmat_enabled) {