diff options
Diffstat (limited to 'src/mesa/drivers/glide/fxglidew.c')
-rw-r--r-- | src/mesa/drivers/glide/fxglidew.c | 461 |
1 files changed, 251 insertions, 210 deletions
diff --git a/src/mesa/drivers/glide/fxglidew.c b/src/mesa/drivers/glide/fxglidew.c index 400f1fbafc..89f6e5f8e6 100644 --- a/src/mesa/drivers/glide/fxglidew.c +++ b/src/mesa/drivers/glide/fxglidew.c @@ -41,7 +41,7 @@ * See fxapi.h for more revision/author details. */ - + #ifdef HAVE_CONFIG_H #include "conf.h" #endif @@ -54,280 +54,319 @@ #include <stdlib.h> #include <string.h> -FxI32 FX_grGetInteger_NoLock(FxU32 pname) +FxI32 +FX_grGetInteger_NoLock(FxU32 pname) { #if !defined(FX_GLIDE3) - switch (pname) - { - case FX_FOG_TABLE_ENTRIES: - return GR_FOG_TABLE_SIZE; - case FX_GLIDE_STATE_SIZE: - return sizeof(GrState); - case FX_LFB_PIXEL_PIPE: - return FXFALSE; - case FX_PENDING_BUFFERSWAPS: - return grBufferNumPending(); - case FX_TEXTURE_ALIGN: - /* This is a guess from reading the glide3 docs */ - return 8; - default: - if (MESA_VERBOSE&VERBOSE_DRIVER) { - fprintf(stderr,"Wrong parameter in FX_grGetInteger!\n"); - } - return -1; - } + switch (pname) { + case FX_FOG_TABLE_ENTRIES: + return GR_FOG_TABLE_SIZE; + case FX_GLIDE_STATE_SIZE: + return sizeof(GrState); + case FX_LFB_PIXEL_PIPE: + return FXFALSE; + case FX_PENDING_BUFFERSWAPS: + return grBufferNumPending(); + case FX_TEXTURE_ALIGN: + /* This is a guess from reading the glide3 docs */ + return 8; + default: + if (MESA_VERBOSE & VERBOSE_DRIVER) { + fprintf(stderr, "Wrong parameter in FX_grGetInteger!\n"); + } + return -1; + } #else - FxU32 grname; - FxI32 result; - - switch (pname) - { - case FX_FOG_TABLE_ENTRIES: - case FX_GLIDE_STATE_SIZE: - case FX_LFB_PIXEL_PIPE: - case FX_PENDING_BUFFERSWAPS: - case FX_TEXTURE_ALIGN: - grname = pname; - break; - default: - if (MESA_VERBOSE&VERBOSE_DRIVER) { - fprintf(stderr,"Wrong parameter in FX_grGetInteger!\n"); - } - return -1; - } - - grGet(grname,4,&result); - return result; + FxU32 grname; + FxI32 result; + + switch (pname) { + case FX_FOG_TABLE_ENTRIES: + case FX_GLIDE_STATE_SIZE: + case FX_LFB_PIXEL_PIPE: + case FX_PENDING_BUFFERSWAPS: + case FX_TEXTURE_ALIGN: + grname = pname; + break; + default: + if (MESA_VERBOSE & VERBOSE_DRIVER) { + fprintf(stderr, "Wrong parameter in FX_grGetInteger!\n"); + } + return -1; + } + + grGet(grname, 4, &result); + return result; #endif } -FxI32 FX_grGetInteger(FxU32 pname) +FxI32 +FX_grGetInteger(FxU32 pname) { - int result; + int result; - BEGIN_BOARD_LOCK(); - result=FX_grGetInteger_NoLock(pname); - END_BOARD_LOCK(); - return result; + BEGIN_BOARD_LOCK(); + result = FX_grGetInteger_NoLock(pname); + END_BOARD_LOCK(); + return result; } -FxBool FX_grLfbLock(GrLock_t type, GrBuffer_t buffer, - GrLfbWriteMode_t writeMode, GrOriginLocation_t origin, - FxBool pixelPipeline, GrLfbInfo_t *info ) { - FxBool result; +FxBool +FX_grLfbLock(GrLock_t type, GrBuffer_t buffer, + GrLfbWriteMode_t writeMode, GrOriginLocation_t origin, + FxBool pixelPipeline, GrLfbInfo_t * info) +{ + FxBool result; - BEGIN_BOARD_LOCK(); - result=grLfbLock(type, buffer, writeMode, origin, pixelPipeline, info); - END_BOARD_LOCK(); - return result; + BEGIN_BOARD_LOCK(); + result = grLfbLock(type, buffer, writeMode, origin, pixelPipeline, info); + END_BOARD_LOCK(); + return result; } -FxU32 FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo *info) { - FxU32 result; +FxU32 +FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo * info) +{ + FxU32 result; - BEGIN_BOARD_LOCK(); - result=grTexTextureMemRequired(evenOdd, info); - END_BOARD_LOCK(); - return result; + BEGIN_BOARD_LOCK(); + result = grTexTextureMemRequired(evenOdd, info); + END_BOARD_LOCK(); + return result; } -FxU32 FX_grTexMinAddress(GrChipID_t tmu) { - FxU32 result; +FxU32 +FX_grTexMinAddress(GrChipID_t tmu) +{ + FxU32 result; - BEGIN_BOARD_LOCK(); - result=grTexMinAddress(tmu); - END_BOARD_LOCK(); - return result; + BEGIN_BOARD_LOCK(); + result = grTexMinAddress(tmu); + END_BOARD_LOCK(); + return result; } -extern FxU32 FX_grTexMaxAddress(GrChipID_t tmu) { - FxU32 result; +extern FxU32 +FX_grTexMaxAddress(GrChipID_t tmu) +{ + FxU32 result; - BEGIN_BOARD_LOCK(); - result=grTexMaxAddress(tmu); - END_BOARD_LOCK(); - return result; + BEGIN_BOARD_LOCK(); + result = grTexMaxAddress(tmu); + END_BOARD_LOCK(); + return result; } -FxBool FX_grSstControl(FxU32 code) +FxBool +FX_grSstControl(FxU32 code) { #if defined(FX_GLIDE3) - /* The glide 3 sources call for grEnable/grDisable to be called in exchange - * for grSstControl. */ - switch(code) { - case GR_CONTROL_ACTIVATE: + /* The glide 3 sources call for grEnable/grDisable to be called in exchange + * for grSstControl. */ + switch (code) { + case GR_CONTROL_ACTIVATE: grEnable(GR_PASSTHRU); break; - case GR_CONTROL_DEACTIVATE: + case GR_CONTROL_DEACTIVATE: grDisable(GR_PASSTHRU); break; - } - /* Appearently GR_CONTROL_RESIZE can be ignored. */ - return 1; /* OK? */ + } + /* Appearently GR_CONTROL_RESIZE can be ignored. */ + return 1; /* OK? */ #else - FxU32 result; - BEGIN_BOARD_LOCK(); - result = grSstControl(code); - END_BOARD_LOCK(); - return result; + FxU32 result; + BEGIN_BOARD_LOCK(); + result = grSstControl(code); + END_BOARD_LOCK(); + return result; #endif } #if defined(FX_GLIDE3) -void FX_grGammaCorrectionValue(float val) +void +FX_grGammaCorrectionValue(float val) { - (void)val; + (void) val; /* ToDo */ } -int FX_getFogTableSize(void) +int +FX_getFogTableSize(void) { int result; BEGIN_BOARD_LOCK(); - grGet(GR_FOG_TABLE_ENTRIES,sizeof(int),(void*)&result); + grGet(GR_FOG_TABLE_ENTRIES, sizeof(int), (void *) &result); END_BOARD_LOCK(); - return result; + return result; } -int FX_getGrStateSize(void) +int +FX_getGrStateSize(void) { int result; BEGIN_BOARD_LOCK(); - grGet(GR_GLIDE_STATE_SIZE,sizeof(int),(void*)&result); + grGet(GR_GLIDE_STATE_SIZE, sizeof(int), (void *) &result); END_BOARD_LOCK(); return result; - + } -int FX_grSstScreenWidth() +int +FX_grSstScreenWidth() { FxI32 result[4]; BEGIN_BOARD_LOCK(); - grGet(GR_VIEWPORT,sizeof(FxI32)*4,result); + grGet(GR_VIEWPORT, sizeof(FxI32) * 4, result); END_BOARD_LOCK(); - + return result[2]; } -int FX_grSstScreenHeight() +int +FX_grSstScreenHeight() { FxI32 result[4]; BEGIN_BOARD_LOCK(); - grGet(GR_VIEWPORT,sizeof(FxI32)*4,result); + grGet(GR_VIEWPORT, sizeof(FxI32) * 4, result); END_BOARD_LOCK(); - + return result[3]; } -void FX_grGlideGetVersion(char *buf) +void +FX_grGlideGetVersion(char *buf) { - BEGIN_BOARD_LOCK(); - strcpy(buf,grGetString(GR_VERSION)); - END_BOARD_LOCK(); + BEGIN_BOARD_LOCK(); + strcpy(buf, grGetString(GR_VERSION)); + END_BOARD_LOCK(); } -void FX_grSstPerfStats(GrSstPerfStats_t *st) +void +FX_grSstPerfStats(GrSstPerfStats_t * st) { - FxI32 n; - grGet(GR_STATS_PIXELS_IN, 4, &n); st->pixelsIn = n; - grGet(GR_STATS_PIXELS_CHROMA_FAIL, 4, &n); st->chromaFail = n; - grGet(GR_STATS_PIXELS_DEPTHFUNC_FAIL, 4, &n); st->zFuncFail = n; - grGet(GR_STATS_PIXELS_AFUNC_FAIL, 4, &n); st->aFuncFail = n; - grGet(GR_STATS_PIXELS_OUT, 4, &n); st->pixelsOut = n; + FxI32 n; + grGet(GR_STATS_PIXELS_IN, 4, &n); + st->pixelsIn = n; + grGet(GR_STATS_PIXELS_CHROMA_FAIL, 4, &n); + st->chromaFail = n; + grGet(GR_STATS_PIXELS_DEPTHFUNC_FAIL, 4, &n); + st->zFuncFail = n; + grGet(GR_STATS_PIXELS_AFUNC_FAIL, 4, &n); + st->aFuncFail = n; + grGet(GR_STATS_PIXELS_OUT, 4, &n); + st->pixelsOut = n; } -void FX_grAADrawLine(GrVertex *a,GrVertex *b) +void +FX_grAADrawLine(GrVertex * a, GrVertex * b) { /* ToDo */ BEGIN_CLIP_LOOP(); - grDrawLine(a,b); + grDrawLine(a, b); END_CLIP_LOOP(); } -void FX_grAADrawPoint(GrVertex *a) +void +FX_grAADrawPoint(GrVertex * a) { - BEGIN_CLIP_LOOP(); - grDrawPoint(a); - END_CLIP_LOOP(); + BEGIN_CLIP_LOOP(); + grDrawPoint(a); + END_CLIP_LOOP(); } -void FX_grDrawPolygonVertexList(int n, GrVertex *verts) +void +FX_grDrawPolygonVertexList(int n, GrVertex * verts) { - BEGIN_CLIP_LOOP(); - grDrawVertexArrayContiguous(GR_POLYGON, n, verts, sizeof(GrVertex)); - END_CLIP_LOOP(); + BEGIN_CLIP_LOOP(); + grDrawVertexArrayContiguous(GR_POLYGON, n, verts, sizeof(GrVertex)); + END_CLIP_LOOP(); } -void FX_setupGrVertexLayout(void) +void +FX_setupGrVertexLayout(void) { - BEGIN_BOARD_LOCK(); - grReset(GR_VERTEX_PARAMETER); - - grCoordinateSpace(GR_WINDOW_COORDS); - grVertexLayout(GR_PARAM_XY, GR_VERTEX_X_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_RGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_A, GR_VERTEX_A_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_Q, GR_VERTEX_OOW_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_Z, GR_VERTEX_OOZ_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_ST0, GR_VERTEX_SOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE); - grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE); - grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); - grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); - END_BOARD_LOCK(); + BEGIN_BOARD_LOCK(); + grReset(GR_VERTEX_PARAMETER); + + grCoordinateSpace(GR_WINDOW_COORDS); + grVertexLayout(GR_PARAM_XY, GR_VERTEX_X_OFFSET << 2, GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_RGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_A, GR_VERTEX_A_OFFSET << 2, GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_Q, GR_VERTEX_OOW_OFFSET << 2, GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_Z, GR_VERTEX_OOZ_OFFSET << 2, GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_ST0, GR_VERTEX_SOW_TMU0_OFFSET << 2, + GR_PARAM_ENABLE); + grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, + GR_PARAM_DISABLE); + grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, + GR_PARAM_DISABLE); + grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, + GR_PARAM_DISABLE); + END_BOARD_LOCK(); } -void FX_grHints_NoLock(GrHint_t hintType, FxU32 hintMask) +void +FX_grHints_NoLock(GrHint_t hintType, FxU32 hintMask) { - switch(hintType) { - case GR_HINT_STWHINT: - { - if (hintMask & GR_STWHINT_W_DIFF_TMU0) - grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE); - else - grVertexLayout(GR_PARAM_Q0,GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE); - - if (hintMask & GR_STWHINT_ST_DIFF_TMU1) - grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_ENABLE); - else - grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); - - if (hintMask & GR_STWHINT_W_DIFF_TMU1) - grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_ENABLE); - else - grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); - - } - } + switch (hintType) { + case GR_HINT_STWHINT: + { + if (hintMask & GR_STWHINT_W_DIFF_TMU0) + grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, + GR_PARAM_ENABLE); + else + grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, + GR_PARAM_DISABLE); + + if (hintMask & GR_STWHINT_ST_DIFF_TMU1) + grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, + GR_PARAM_ENABLE); + else + grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, + GR_PARAM_DISABLE); + + if (hintMask & GR_STWHINT_W_DIFF_TMU1) + grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, + GR_PARAM_ENABLE); + else + grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, + GR_PARAM_DISABLE); + + } + } } -void FX_grHints(GrHint_t hintType, FxU32 hintMask) { - BEGIN_BOARD_LOCK(); - FX_grHints_NoLock(hintType, hintMask); - END_BOARD_LOCK(); +void +FX_grHints(GrHint_t hintType, FxU32 hintMask) +{ + BEGIN_BOARD_LOCK(); + FX_grHints_NoLock(hintType, hintMask); + END_BOARD_LOCK(); } /* * Glide3 doesn't have the grSstQueryHardware function anymore. * Instead, we call grGet() and fill in the data structures ourselves. */ -int FX_grSstQueryHardware(GrHwConfiguration *config) +int +FX_grSstQueryHardware(GrHwConfiguration * config) { int i, j; int numFB; BEGIN_BOARD_LOCK(); - grGet(GR_NUM_BOARDS, 4, (void*)&(config->num_sst)); + grGet(GR_NUM_BOARDS, 4, (void *) &(config->num_sst)); if (config->num_sst == 0) return 0; - for (i = 0; i< config->num_sst; i++) { + for (i = 0; i < config->num_sst; i++) { FxI32 result; config->SSTs[i].type = GR_SSTTYPE_VOODOO; @@ -335,24 +374,25 @@ int FX_grSstQueryHardware(GrHwConfiguration *config) grGet(GR_MEMORY_FB, 4, &result); config->SSTs[i].sstBoard.VoodooConfig.fbRam = result / (1024 * 1024); - + grGet(GR_NUM_TMU, 4, &result); config->SSTs[i].sstBoard.VoodooConfig.nTexelfx = result; grGet(GR_REVISION_FB, 4, &result); config->SSTs[i].sstBoard.VoodooConfig.fbiRev = result; - - grGet(GR_NUM_FB,4,(void*)&numFB); + + grGet(GR_NUM_FB, 4, (void *) &numFB); if (numFB > 1) - config->SSTs[i].sstBoard.VoodooConfig.sliDetect = FXTRUE; + config->SSTs[i].sstBoard.VoodooConfig.sliDetect = FXTRUE; else - config->SSTs[i].sstBoard.VoodooConfig.sliDetect = FXFALSE; + config->SSTs[i].sstBoard.VoodooConfig.sliDetect = FXFALSE; for (j = 0; j < config->SSTs[i].sstBoard.VoodooConfig.nTexelfx; j++) { - grGet(GR_MEMORY_TMU, 4, &result); - config->SSTs[i].sstBoard.VoodooConfig.tmuConfig[j].tmuRam = result / (1024*1024); - grGet(GR_REVISION_TMU, 4, &result); - config->SSTs[i].sstBoard.VoodooConfig.tmuConfig[j].tmuRev = result; + grGet(GR_MEMORY_TMU, 4, &result); + config->SSTs[i].sstBoard.VoodooConfig.tmuConfig[j].tmuRam = + result / (1024 * 1024); + grGet(GR_REVISION_TMU, 4, &result); + config->SSTs[i].sstBoard.VoodooConfig.tmuConfig[j].tmuRev = result; } } END_BOARD_LOCK(); @@ -361,7 +401,8 @@ int FX_grSstQueryHardware(GrHwConfiguration *config) #else -int FX_grSstScreenWidth() +int +FX_grSstScreenWidth() { int i; BEGIN_BOARD_LOCK(); @@ -370,7 +411,8 @@ int FX_grSstScreenWidth() return i; } -int FX_grSstScreenHeight() +int +FX_grSstScreenHeight() { int i; BEGIN_BOARD_LOCK(); @@ -379,51 +421,49 @@ int FX_grSstScreenHeight() return i; } -int FX_grSstQueryHardware(GrHwConfiguration *c) +int +FX_grSstQueryHardware(GrHwConfiguration * c) { int i; BEGIN_BOARD_LOCK(); i = grSstQueryHardware(c); END_BOARD_LOCK(); return i; -} +} -#endif /* FX_GLIDE3 */ +#endif /* FX_GLIDE3 */ /* It appears to me that this function is needed either way. */ -FX_GrContext_t FX_grSstWinOpen( FxU32 hWnd, - GrScreenResolution_t screen_resolution, - GrScreenRefresh_t refresh_rate, - GrColorFormat_t color_format, - GrOriginLocation_t origin_location, - int nColBuffers, - int nAuxBuffers) +FX_GrContext_t +FX_grSstWinOpen(FxU32 hWnd, + GrScreenResolution_t screen_resolution, + GrScreenRefresh_t refresh_rate, + GrColorFormat_t color_format, + GrOriginLocation_t origin_location, + int nColBuffers, int nAuxBuffers) { FX_GrContext_t i; BEGIN_BOARD_LOCK(); - i = grSstWinOpen( hWnd, - screen_resolution, - refresh_rate, - color_format, - origin_location, - nColBuffers, - nAuxBuffers ); - + i = grSstWinOpen(hWnd, + screen_resolution, + refresh_rate, + color_format, origin_location, nColBuffers, nAuxBuffers); + /* - fprintf(stderr, - "grSstWinOpen( win %d res %d ref %d fmt %d\n" - " org %d ncol %d naux %d )\n" - " ==> %d\n", - hWnd, - screen_resolution, - refresh_rate, - color_format, - origin_location, - nColBuffers, - nAuxBuffers, - i); - */ + fprintf(stderr, + "grSstWinOpen( win %d res %d ref %d fmt %d\n" + " org %d ncol %d naux %d )\n" + " ==> %d\n", + hWnd, + screen_resolution, + refresh_rate, + color_format, + origin_location, + nColBuffers, + nAuxBuffers, + i); + */ END_BOARD_LOCK(); return i; } @@ -437,9 +477,10 @@ FX_GrContext_t FX_grSstWinOpen( FxU32 hWnd, */ extern int gl_fx_dummy_function_glidew(void); -int gl_fx_dummy_function_glidew(void) +int +gl_fx_dummy_function_glidew(void) { - return 0; + return 0; } #endif /* FX */ |