diff options
| author | Cooper Yuan <cooperyuan@gmail.com> | 2009-08-12 17:39:18 +0800 | 
|---|---|---|
| committer | Cooper Yuan <cooperyuan@gmail.com> | 2009-08-12 17:39:18 +0800 | 
| commit | 1e52b8b4e02c887cb493e5e2bde902b54e9c72fd (patch) | |
| tree | 2ba6b2ab262c2e08e14203334121a6022105df3f /src/mesa | |
| parent | 64e7bb326207df559b5cebdb278f62df83cf1425 (diff) | |
r600: A shader is bound that exports Z as a float into Red channel
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/drivers/dri/r600/r700_assembler.c | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r600/r700_fragprog.c | 1 | 
2 files changed, 4 insertions, 0 deletions
| diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c index 0abf112b55..eaacd06113 100644 --- a/src/mesa/drivers/dri/r600/r700_assembler.c +++ b/src/mesa/drivers/dri/r600/r700_assembler.c @@ -3839,6 +3839,9 @@ GLboolean Process_Export(r700_AssemblerBase* pAsm,      if (export_count == 1)       {          ucWriteMask = pAsm->pucOutMask[starting_register_number - pAsm->starting_export_register_number]; +	/* exports Z as a float into Red channel */ +	if (GL_TRUE == is_depth_export) +	    ucWriteMask = 0x1;          if( (ucWriteMask & 0x1) != 0)          { diff --git a/src/mesa/drivers/dri/r600/r700_fragprog.c b/src/mesa/drivers/dri/r600/r700_fragprog.c index efeea905c1..6249bde6f1 100644 --- a/src/mesa/drivers/dri/r600/r700_fragprog.c +++ b/src/mesa/drivers/dri/r600/r700_fragprog.c @@ -118,6 +118,7 @@ void Map_Fragment_Program(r700_AssemblerBase         *pAsm,  		pAsm->uiFP_OutputMap[FRAG_RESULT_DEPTH] = pAsm->number_used_registers++;  		pAsm->number_of_exports++;  		pAsm->number_of_colorandz_exports++; +		pAsm->pR700Shader->depthIsExported = 1;  	}      pAsm->pucOutMask = (unsigned char*) MALLOC(pAsm->number_of_exports);     | 
