summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/softpipe/sp_setup.c
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-06-16 18:19:45 -0600
committerBrian Paul <[email protected]>2009-06-16 18:21:26 -0600
commit6b917d0b1787280f976c2f0d1ead0e5d7587a3e9 (patch)
treed859568db35e590ec84f78dcb45bee3a2d38ac8e /src/gallium/drivers/softpipe/sp_setup.c
parent742ba084068b6856e94283a9c5fe3b39d48f64cb (diff)
i965: fix bugs in projective texture coordinates
For the TXP instruction we check if the texcoord is really a 4-component atttibute which requires the divide by W step. This check involved the projtex_mask field. However, the projtex_mask field was being miscalculated because of some confusion between vertex program outputs and fragment program inputs. 1. Rework the size_masks calculation so we correctly set bits corresponding to fragment program input attributes. 2. Rename projtex_mask to proj_attrib_mask since we're interested in more than just texcoords (generic varying vars too). 3. Simply the indexing of the size_masks and proj_attrib_mask fields. 4. The tracker::active[] array was mis-dimensioned. Use MAX_PROGRAM_TEMPS instead of a magic number. 5. Update comments, add new assertions. With these changes the Lightsmark demo/benchmark renders correctly, until we eventually hit a GPU lockup...
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_setup.c')
0 files changed, 0 insertions, 0 deletions