Mesa (master): R6xx/r7xx: VS export fog color as parameter
Cooper Yuan
cooperyuan at kemper.freedesktop.org
Wed Jul 29 07:31:18 UTC 2009
Module: Mesa
Branch: master
Commit: 0f6d3aece7b193dcacbd94f87ac734ee3a44b366
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f6d3aece7b193dcacbd94f87ac734ee3a44b366
Author: Cooper Yuan <cooperyuan at gmail.com>
Date: Wed Jul 29 15:23:56 2009 +0800
R6xx/r7xx: VS export fog color as parameter
---
src/mesa/drivers/dri/r600/r700_assembler.c | 16 ++++++++++++++++
src/mesa/drivers/dri/r600/r700_fragprog.c | 6 ++++++
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c
index 1d41c5c..ebd5ff1 100644
--- a/src/mesa/drivers/dri/r600/r700_assembler.c
+++ b/src/mesa/drivers/dri/r600/r700_assembler.c
@@ -4014,6 +4014,22 @@ GLboolean Process_Vertex_Exports(r700_AssemblerBase *pR700AsmCode,
export_starting_index++;
}
+ unBit = 1 << VERT_RESULT_FOGC;
+ if(OutputsWritten & unBit)
+ {
+ if( GL_FALSE == Process_Export(pR700AsmCode,
+ SQ_EXPORT_PARAM,
+ export_starting_index,
+ 1,
+ pR700AsmCode->ucVP_OutputMap[VERT_RESULT_FOGC],
+ GL_FALSE) )
+ {
+ return GL_FALSE;
+ }
+
+ export_starting_index++;
+ }
+
for(i=0; i<8; i++)
{
unBit = 1 << (VERT_RESULT_TEX0 + i);
diff --git a/src/mesa/drivers/dri/r600/r700_fragprog.c b/src/mesa/drivers/dri/r600/r700_fragprog.c
index 88e6649..a473dfe 100644
--- a/src/mesa/drivers/dri/r600/r700_fragprog.c
+++ b/src/mesa/drivers/dri/r600/r700_fragprog.c
@@ -67,6 +67,12 @@ void Map_Fragment_Program(r700_AssemblerBase *pAsm,
pAsm->uiFP_AttributeMap[FRAG_ATTRIB_COL1] = pAsm->number_used_registers++;
}
+ unBit = 1 << FRAG_ATTRIB_FOGC;
+ if(mesa_fp->Base.InputsRead & unBit)
+ {
+ pAsm->uiFP_AttributeMap[FRAG_ATTRIB_FOGC] = pAsm->number_used_registers++;
+ }
+
for(i=0; i<8; i++)
{
unBit = 1 << (FRAG_ATTRIB_TEX0 + i);
More information about the mesa-commit
mailing list