diff options
author | Ian Romanick <idr@us.ibm.com> | 2004-05-07 17:30:31 +0000 |
---|---|---|
committer | Ian Romanick <idr@us.ibm.com> | 2004-05-07 17:30:31 +0000 |
commit | d81d2aeca8ee43ddec39a043a5acb4cb44be70ac (patch) | |
tree | 954d5e2024d4f7bf68e9eb40d514630fba0bbd0c /src/mesa/drivers/dri/i830/i830_debug.c | |
parent | f539860f792feaec69f8033f2b0b86cc2212ee0b (diff) |
Add support for the 3rd and 4th texture units. The actual number of
available units is configurable via the texture_units option.
Diffstat (limited to 'src/mesa/drivers/dri/i830/i830_debug.c')
-rw-r--r-- | src/mesa/drivers/dri/i830/i830_debug.c | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i830/i830_debug.c b/src/mesa/drivers/dri/i830/i830_debug.c index 02c36bec7d..56940e223c 100644 --- a/src/mesa/drivers/dri/i830/i830_debug.c +++ b/src/mesa/drivers/dri/i830/i830_debug.c @@ -318,9 +318,26 @@ void i830EmitHwStateLockedDebug( i830ContextPtr imesa ) for(i = 0; i < I830_TEXTURE_COUNT; i++) { if ((imesa->dirty & I830_UPLOAD_TEX_N(i)) && imesa->CurrentTexObj[i]) { + unsigned * TexState; + imesa->sarea->dirty |= I830_UPLOAD_TEX_N(i); - memcpy(imesa->sarea->TexState[i], - imesa->CurrentTexObj[i]->Setup, + + switch( i ) { + case 0: + case 1: + TexState = & imesa->sarea->TexState[i]; + break; + + case 2: + TexState = & imesa->sarea->TexState2; + break; + + case 3: + TexState = & imesa->sarea->TexState3; + break; + } + + memcpy(TexState, imesa->CurrentTexObj[i]->Setup, sizeof(imesa->sarea->TexState[i])); i830DumpTextureState(imesa, i); } @@ -329,11 +346,33 @@ void i830EmitHwStateLockedDebug( i830ContextPtr imesa ) for(i = 0; i < I830_TEXBLEND_COUNT; i++) { if (imesa->dirty & I830_UPLOAD_TEXBLEND_N(i)) { + unsigned * TexBlendState; + unsigned * words_used; + imesa->sarea->dirty |= I830_UPLOAD_TEXBLEND_N(i); - memcpy(imesa->sarea->TexBlendState[i],imesa->TexBlend[i], + + switch( i ) { + case 0: + case 1: + TexBlendState = imesa->sarea->TexBlendState[i]; + words_used = & imesa->sarea->TexBlendStateWordsUsed[i]; + break; + + case 2: + TexBlendState = imesa->sarea->TexBlendState2; + words_used = & imesa->sarea->TexBlendStateWordsUsed2; + break; + + case 3: + TexBlendState = imesa->sarea->TexBlendState3; + words_used = & imesa->sarea->TexBlendStateWordsUsed3; + break; + } + + memcpy(TexBlendState, imesa->TexBlend[i], imesa->TexBlendWordsUsed[i] * 4); - imesa->sarea->TexBlendStateWordsUsed[i] = - imesa->TexBlendWordsUsed[i]; + *words_used = imesa->TexBlendWordsUsed[i]; + i830DumpTextureBlendState(imesa, i); } } |