r300g: merge VS output mapping state (VAP) to rasterizer block state (RS)
authorMarek Olšák <maraeo@gmail.com>
Sun, 2 May 2010 04:24:55 +0000 (06:24 +0200)
committerMarek Olšák <maraeo@gmail.com>
Sun, 2 May 2010 10:56:34 +0000 (12:56 +0200)
commit68e720e12d51cf6d5237467a74af8c56b021acb7
tree804718853b5add078944e5e1feeda6a16b4f5567
parent35232172db40fc756f3a0d1c17ed19e696a8878d
r300g: merge VS output mapping state (VAP) to rasterizer block state (RS)

These two should be tied together because what's set in VAP or stuffed in GA
should be rasterized in RS. Not doing so causes a hardlock.

The reason for the merge is that if stuffed texture coordinates (e.g. point
sprite texgen) happen to occupy the texcoord slot dedicated to fog or wpos,
the two must be relocated to other free slots, which needs remapping the vertex
shader outputs.

The rasterizer code is now literally a sequence read-rasterize-write.
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_emit.h
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_vs.c
src/gallium/drivers/r300/r300_vs.h