r600: A shader is bound that exports Z as a float into Red channel

This commit is contained in:
Cooper Yuan
2009-08-12 17:39:18 +08:00
parent 64e7bb3262
commit 1e52b8b4e0
2 changed files with 4 additions and 0 deletions

View File

@@ -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)
{

View File

@@ -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);