i965/gen6: Fix point sprite texture coordinate overrides.
We were assuming that the input attribute n to the FS was FRAG_ATTRIB_TEXn, which happened to be true often enough for our testcases. Acked-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
e7280b16d6
commit
f304bb8a5d
|
@ -231,13 +231,6 @@ upload_sf_state(struct brw_context *brw)
|
|||
(1 << GEN6_SF_TRIFAN_PROVOKE_SHIFT);
|
||||
}
|
||||
|
||||
if (ctx->Point.PointSprite) {
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (ctx->Point.CoordReplace[i])
|
||||
dw16 |= (1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
/* flat shading */
|
||||
if (ctx->Light.ShadeModel == GL_FLAT) {
|
||||
dw17 |= ((brw->fragment_program->Base.InputsRead & (FRAG_BIT_COL0 | FRAG_BIT_COL1)) >>
|
||||
|
@ -251,6 +244,13 @@ upload_sf_state(struct brw_context *brw)
|
|||
if (!(brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(attr)))
|
||||
continue;
|
||||
|
||||
/* _NEW_POINT */
|
||||
if (ctx->Point.PointSprite &&
|
||||
(attr >= FRAG_ATTRIB_TEX0 && attr <= FRAG_ATTRIB_TEX7) &&
|
||||
ctx->Point.CoordReplace[attr - FRAG_ATTRIB_TEX0]) {
|
||||
dw16 |= (1 << input_index);
|
||||
}
|
||||
|
||||
/* The hardware can only do the overrides on 16 overrides at a
|
||||
* time, and the other up to 16 have to be lined up so that the
|
||||
* input index = the output index. We'll need to do some
|
||||
|
|
Loading…
Reference in New Issue