summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCooper Yuan <[email protected]>2009-07-29 15:31:41 +0800
committerCooper Yuan <[email protected]>2009-07-29 15:31:41 +0800
commit03607708b0499816291f0fb0d1c331fbf034f0ba (patch)
tree54ce38014e9ea9321388ab6fbd7622cf44e8f9cb
parent0f6d3aece7b193dcacbd94f87ac734ee3a44b366 (diff)
r600: emit fog color in PS input map, fix fog related applications
-rw-r--r--src/mesa/drivers/dri/r600/r700_fragprog.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r600/r700_fragprog.c b/src/mesa/drivers/dri/r600/r700_fragprog.c
index a473dfe8889..180d980442b 100644
--- a/src/mesa/drivers/dri/r600/r700_fragprog.c
+++ b/src/mesa/drivers/dri/r600/r700_fragprog.c
@@ -395,6 +395,19 @@ GLboolean r700SetupFragmentProgram(GLcontext * ctx)
CLEARbit(r700->SPI_PS_INPUT_CNTL[ui].u32All, FLAT_SHADE_bit);
}
+ unBit = 1 << FRAG_ATTRIB_FOGC;
+ if(mesa_fp->Base.InputsRead & unBit)
+ {
+ ui = pAsm->uiFP_AttributeMap[FRAG_ATTRIB_FOGC];
+ SETbit(r700->SPI_PS_INPUT_CNTL[ui].u32All, SEL_CENTROID_bit);
+ SETfield(r700->SPI_PS_INPUT_CNTL[ui].u32All, ui,
+ SEMANTIC_shift, SEMANTIC_mask);
+ if (r700->SPI_INTERP_CONTROL_0.u32All & FLAT_SHADE_ENA_bit)
+ SETbit(r700->SPI_PS_INPUT_CNTL[ui].u32All, FLAT_SHADE_bit);
+ else
+ CLEARbit(r700->SPI_PS_INPUT_CNTL[ui].u32All, FLAT_SHADE_bit);
+ }
+
for(i=0; i<8; i++)
{
unBit = 1 << (FRAG_ATTRIB_TEX0 + i);