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