mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
Voodoo2 happiness
This commit is contained in:
parent
7093114285
commit
313e12e058
7 changed files with 66 additions and 160 deletions
|
|
@ -555,19 +555,19 @@ fxMesaCreateContext(GLuint win,
|
|||
grGet(GR_MEMORY_TMU, 4, &result);
|
||||
tmuRam = result / (1024 * 1024);
|
||||
grGet(GR_MEMORY_FB, 4, &result);
|
||||
fbRam = result / 1024;
|
||||
fbRam = result / (1024 * 1024);
|
||||
}
|
||||
END_BOARD_LOCK();
|
||||
|
||||
sprintf(fxMesa->rendererString, "Mesa %s v0.51 %s %dkB FB, %dMB TM, %d TMU, %s",
|
||||
sprintf(fxMesa->rendererString, "Mesa %s v0.51 %s %dMB FB, %dMB TM, %d TMU, %s",
|
||||
grGetString(GR_RENDERER),
|
||||
grGetString(GR_HARDWARE),
|
||||
fbRam,
|
||||
tmuRam * voodoo->nTexelfx,
|
||||
voodoo->nTexelfx,
|
||||
(voodoo->numChips > 1) ? "SLI" : "NOSLI");
|
||||
|
||||
fxInitPixelTables(fxMesa, useBGR);
|
||||
|
||||
fxMesa->bgrOrder = useBGR;
|
||||
|
||||
/* screen */
|
||||
fxMesa->screen_width = FX_grSstScreenWidth();
|
||||
|
|
|
|||
|
|
@ -58,13 +58,6 @@
|
|||
|
||||
|
||||
|
||||
/* These lookup table are used to extract RGB values in [0,255] from
|
||||
* 16-bit pixel values.
|
||||
*/
|
||||
GLubyte FX_PixelToR[0x10000];
|
||||
GLubyte FX_PixelToG[0x10000];
|
||||
GLubyte FX_PixelToB[0x10000];
|
||||
|
||||
/* lookup table for scaling 4 bit colors up to 8 bits */
|
||||
GLuint FX_rgb_scale_4[16] = {
|
||||
0, 17, 34, 51, 68, 85, 102, 119,
|
||||
|
|
@ -92,39 +85,6 @@ GLuint FX_rgb_scale_6[64] = {
|
|||
};
|
||||
|
||||
|
||||
/*
|
||||
* Initialize the FX_PixelTo{RGB} arrays.
|
||||
* Input: bgrOrder - if TRUE, pixels are in BGR order, else RGB order.
|
||||
*/
|
||||
void
|
||||
fxInitPixelTables(fxMesaContext fxMesa, GLboolean bgrOrder)
|
||||
{
|
||||
GLuint pixel;
|
||||
|
||||
fxMesa->bgrOrder = bgrOrder;
|
||||
for (pixel = 0; pixel <= 0xffff; pixel++) {
|
||||
GLuint r, g, b;
|
||||
if (bgrOrder) {
|
||||
r = (pixel & 0x001F) << 3;
|
||||
g = (pixel & 0x07E0) >> 3;
|
||||
b = (pixel & 0xF800) >> 8;
|
||||
}
|
||||
else {
|
||||
r = (pixel & 0xF800) >> 8;
|
||||
g = (pixel & 0x07E0) >> 3;
|
||||
b = (pixel & 0x001F) << 3;
|
||||
}
|
||||
/* fill in low-order bits with proper rounding */
|
||||
r = (GLuint)(((double)r * 255. / 0xF8) + 0.5);
|
||||
g = (GLuint)(((double)g * 255. / 0xFC) + 0.5);
|
||||
b = (GLuint)(((double)b * 255. / 0xF8) + 0.5);
|
||||
FX_PixelToR[pixel] = r;
|
||||
FX_PixelToG[pixel] = g;
|
||||
FX_PixelToB[pixel] = b;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Disable color by masking out R, G, B, A
|
||||
*/
|
||||
|
|
@ -577,27 +537,13 @@ fxDDDrawBitmap2 (GLcontext *ctx, GLint px, GLint py,
|
|||
GLint g = (GLint) (ctx->Current.RasterColor[GCOMP] * 255.0f);
|
||||
GLint b = (GLint) (ctx->Current.RasterColor[BCOMP] * 255.0f);
|
||||
GLint a = (GLint) (ctx->Current.RasterColor[ACOMP] * 255.0f);
|
||||
#if 0
|
||||
/* [dBorca]
|
||||
* who uses bgr, anyway? Expecting the V2 from HM... :D
|
||||
*/
|
||||
if (fxMesa->bgrOrder)
|
||||
color = (FxU16)
|
||||
(((FxU16) 0xf8 & b) << (11 - 3)) |
|
||||
(((FxU16) 0xfc & g) << (5 - 3 + 1)) | (((FxU16) 0xf8 & r) >> 3);
|
||||
else
|
||||
color = (FxU16)
|
||||
(((FxU16) 0xf8 & r) << (11 - 3)) |
|
||||
(((FxU16) 0xfc & g) << (5 - 3 + 1)) | (((FxU16) 0xf8 & b) >> 3);
|
||||
#else
|
||||
if (fxMesa->colDepth == 15) {
|
||||
color = TDFXPACKCOLOR1555(b, g, r, a);
|
||||
mode = GR_LFBWRITEMODE_1555;
|
||||
} else {
|
||||
color = TDFXPACKCOLOR565(b, g, r);
|
||||
color = fxMesa->bgrOrder ? TDFXPACKCOLOR565(r, g, b) : TDFXPACKCOLOR565(b, g, r);
|
||||
mode = GR_LFBWRITEMODE_565;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
info.size = sizeof(info);
|
||||
|
|
@ -755,21 +701,7 @@ fxDDDrawBitmap4 (GLcontext *ctx, GLint px, GLint py,
|
|||
GLint g = (GLint) (ctx->Current.RasterColor[GCOMP] * 255.0f);
|
||||
GLint b = (GLint) (ctx->Current.RasterColor[BCOMP] * 255.0f);
|
||||
GLint a = (GLint) (ctx->Current.RasterColor[ACOMP] * 255.0f);
|
||||
#if 0
|
||||
/* [dBorca]
|
||||
* who uses bgr, anyway? Expecting the V2 from HM... :D
|
||||
*/
|
||||
if (fxMesa->bgrOrder)
|
||||
color = (FxU16)
|
||||
(((FxU16) 0xf8 & b) << (11 - 3)) |
|
||||
(((FxU16) 0xfc & g) << (5 - 3 + 1)) | (((FxU16) 0xf8 & r) >> 3);
|
||||
else
|
||||
color = (FxU16)
|
||||
(((FxU16) 0xf8 & r) << (11 - 3)) |
|
||||
(((FxU16) 0xfc & g) << (5 - 3 + 1)) | (((FxU16) 0xf8 & b) >> 3);
|
||||
#else
|
||||
color = TDFXPACKCOLOR8888(b, g, r, a);
|
||||
#endif
|
||||
}
|
||||
|
||||
info.size = sizeof(info);
|
||||
|
|
@ -889,20 +821,18 @@ fxDDReadPixels565 (GLcontext * ctx,
|
|||
GLubyte *d = dst;
|
||||
for (col = 0; col < halfWidth; col++) {
|
||||
const GLuint pixel = ((const GLuint *) src)[col];
|
||||
const GLint pixel0 = pixel & 0xffff;
|
||||
const GLint pixel1 = pixel >> 16;
|
||||
*d++ = FX_PixelToR[pixel0];
|
||||
*d++ = FX_PixelToG[pixel0];
|
||||
*d++ = FX_PixelToB[pixel0];
|
||||
*d++ = FX_PixelToR[pixel1];
|
||||
*d++ = FX_PixelToG[pixel1];
|
||||
*d++ = FX_PixelToB[pixel1];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 11) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 5) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 27) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 21) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
}
|
||||
if (extraPixel) {
|
||||
GLushort pixel = src[width - 1];
|
||||
*d++ = FX_PixelToR[pixel];
|
||||
*d++ = FX_PixelToG[pixel];
|
||||
*d++ = FX_PixelToB[pixel];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 11) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 5) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
}
|
||||
dst += dstStride;
|
||||
src -= srcStride;
|
||||
|
|
@ -917,22 +847,20 @@ fxDDReadPixels565 (GLcontext * ctx,
|
|||
GLubyte *d = dst;
|
||||
for (col = 0; col < halfWidth; col++) {
|
||||
const GLuint pixel = ((const GLuint *) src)[col];
|
||||
const GLint pixel0 = pixel & 0xffff;
|
||||
const GLint pixel1 = pixel >> 16;
|
||||
*d++ = FX_PixelToR[pixel0];
|
||||
*d++ = FX_PixelToG[pixel0];
|
||||
*d++ = FX_PixelToB[pixel0];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 11) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 5) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = 255;
|
||||
*d++ = FX_PixelToR[pixel1];
|
||||
*d++ = FX_PixelToG[pixel1];
|
||||
*d++ = FX_PixelToB[pixel1];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 27) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 21) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
*d++ = 255;
|
||||
}
|
||||
if (extraPixel) {
|
||||
const GLushort pixel = src[width - 1];
|
||||
*d++ = FX_PixelToR[pixel];
|
||||
*d++ = FX_PixelToG[pixel];
|
||||
*d++ = FX_PixelToB[pixel];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 11) & 0x1f];
|
||||
*d++ = FX_rgb_scale_6[(pixel >> 5) & 0x3f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = 255;
|
||||
}
|
||||
dst += dstStride;
|
||||
|
|
@ -1005,18 +933,18 @@ fxDDReadPixels555 (GLcontext * ctx,
|
|||
GLubyte *d = dst;
|
||||
for (col = 0; col < halfWidth; col++) {
|
||||
const GLuint pixel = ((const GLuint *) src)[col];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 10) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 21) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 26) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 21) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
}
|
||||
if (extraPixel) {
|
||||
GLushort pixel = src[width - 1];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 10) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
}
|
||||
dst += dstStride;
|
||||
src -= srcStride;
|
||||
|
|
@ -1031,20 +959,20 @@ fxDDReadPixels555 (GLcontext * ctx,
|
|||
GLubyte *d = dst;
|
||||
for (col = 0; col < halfWidth; col++) {
|
||||
const GLuint pixel = ((const GLuint *) src)[col];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 10) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = (pixel & 0x8000) ? 255 : 0;
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 21) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 26) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 21) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 16) & 0x1f];
|
||||
*d++ = (pixel & 0x80000000) ? 255 : 0;
|
||||
}
|
||||
if (extraPixel) {
|
||||
const GLushort pixel = src[width - 1];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 10) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[(pixel >> 5) & 0x1f];
|
||||
*d++ = FX_rgb_scale_5[ pixel & 0x1f];
|
||||
*d++ = (pixel & 0x8000) ? 255 : 0;
|
||||
}
|
||||
dst += dstStride;
|
||||
|
|
@ -1377,7 +1305,9 @@ fxDDInitFxMesaContext(fxMesaContext fxMesa)
|
|||
if (fxMesa->haveZBuffer)
|
||||
grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER);
|
||||
|
||||
grLfbWriteColorFormat(GR_COLORFORMAT_ABGR);
|
||||
if (!fxMesa->bgrOrder) {
|
||||
grLfbWriteColorFormat(GR_COLORFORMAT_ABGR);
|
||||
}
|
||||
|
||||
fxMesa->textureAlign = FX_grGetInteger(GR_TEXTURE_ALIGN);
|
||||
/* [koolsmoky] */
|
||||
|
|
|
|||
|
|
@ -406,18 +406,6 @@ static void fxReadRGBASpan_RGB565 (const GLcontext * ctx,
|
|||
|
||||
for (i = j = 0; i < n; i += 2, j++) {
|
||||
GLuint pixel = data32[j];
|
||||
#if 0
|
||||
GLuint pixel0 = pixel & 0xffff;
|
||||
GLuint pixel1 = pixel >> 16;
|
||||
rgba[i][RCOMP] = FX_PixelToR[pixel0];
|
||||
rgba[i][GCOMP] = FX_PixelToG[pixel0];
|
||||
rgba[i][BCOMP] = FX_PixelToB[pixel0];
|
||||
rgba[i][ACOMP] = 255;
|
||||
rgba[i + 1][RCOMP] = FX_PixelToR[pixel1];
|
||||
rgba[i + 1][GCOMP] = FX_PixelToG[pixel1];
|
||||
rgba[i + 1][BCOMP] = FX_PixelToB[pixel1];
|
||||
rgba[i + 1][ACOMP] = 255;
|
||||
#else
|
||||
rgba[i][0] = FX_rgb_scale_5[(pixel >> 11) & 0x1F];
|
||||
rgba[i][1] = FX_rgb_scale_6[(pixel >> 5) & 0x3F];
|
||||
rgba[i][2] = FX_rgb_scale_5[ pixel & 0x1F];
|
||||
|
|
@ -426,21 +414,13 @@ static void fxReadRGBASpan_RGB565 (const GLcontext * ctx,
|
|||
rgba[i+1][1] = FX_rgb_scale_6[(pixel >> 21) & 0x3F];
|
||||
rgba[i+1][2] = FX_rgb_scale_5[(pixel >> 16) & 0x1F];
|
||||
rgba[i+1][3] = 255;
|
||||
#endif
|
||||
}
|
||||
if (extraPixel) {
|
||||
GLushort pixel = data16[n];
|
||||
#if 0
|
||||
rgba[n][RCOMP] = FX_PixelToR[pixel];
|
||||
rgba[n][GCOMP] = FX_PixelToG[pixel];
|
||||
rgba[n][BCOMP] = FX_PixelToB[pixel];
|
||||
rgba[n][ACOMP] = 255;
|
||||
#else
|
||||
rgba[n][0] = FX_rgb_scale_5[(pixel >> 11) & 0x1F];
|
||||
rgba[n][1] = FX_rgb_scale_6[(pixel >> 5) & 0x3F];
|
||||
rgba[n][2] = FX_rgb_scale_5[ pixel & 0x1F];
|
||||
rgba[n][3] = 255;
|
||||
#endif
|
||||
}
|
||||
|
||||
grLfbUnlock(GR_LFB_READ_ONLY, fxMesa->currentFB);
|
||||
|
|
|
|||
|
|
@ -864,8 +864,8 @@ GLboolean fxDDIsCompressedFormat ( GLcontext *ctx, GLenum internalFormat )
|
|||
|
||||
/* [dBorca]
|
||||
* we are handling differently the above formats from the generic
|
||||
* GL_COMPRESSED_RGB[A]. For this, we will always separately
|
||||
* check for the ones below!
|
||||
* GL_COMPRESSED_RGB[A]. For this, we will always have to separately
|
||||
* check the below formats...
|
||||
*/
|
||||
|
||||
#if FX_TC_NCC || FX_TC_NAPALM
|
||||
|
|
@ -1495,7 +1495,7 @@ fxDDCompressedTexImage2D (GLcontext *ctx, GLenum target,
|
|||
/* choose the texture format */
|
||||
assert(ctx->Driver.ChooseTextureFormat);
|
||||
texImage->TexFormat = (*ctx->Driver.ChooseTextureFormat)(ctx,
|
||||
internalFormat, format, type);
|
||||
internalFormat, -1/*format*/, -1/*type*/);
|
||||
assert(texImage->TexFormat);
|
||||
|
||||
/* Determine the appropriate Glide texel format,
|
||||
|
|
@ -1542,11 +1542,12 @@ fxDDCompressedTexImage2D (GLcontext *ctx, GLenum target,
|
|||
}
|
||||
#endif
|
||||
|
||||
ti->info.format = mml->glideFormat;
|
||||
texImage->FetchTexel = fxFetchFunction(texImage->TexFormat->MesaFormat);
|
||||
|
||||
/* [dBorca] Hack alert:
|
||||
* what about different size/texel? other anomalies? SW rescaling?
|
||||
*/
|
||||
ti->info.format = mml->glideFormat;
|
||||
texImage->FetchTexel = fxFetchFunction(texImage->TexFormat->MesaFormat);
|
||||
|
||||
/* [dBorca]
|
||||
* Hack alert: unsure...
|
||||
|
|
|
|||
|
|
@ -409,13 +409,6 @@ tfxUnitsState;
|
|||
_NEW_COLOR) \
|
||||
|
||||
|
||||
/* These lookup table are used to extract RGB values in [0,255] from
|
||||
* 16-bit pixel values.
|
||||
*/
|
||||
extern GLubyte FX_PixelToR[0x10000];
|
||||
extern GLubyte FX_PixelToG[0x10000];
|
||||
extern GLubyte FX_PixelToB[0x10000];
|
||||
|
||||
/* lookup table for scaling y bit colors up to 8 bits */
|
||||
extern GLuint FX_rgb_scale_4[16];
|
||||
extern GLuint FX_rgb_scale_5[32];
|
||||
|
|
@ -688,7 +681,6 @@ extern void fxDDDestroyFxMesaContext(fxMesaContext fxMesa);
|
|||
extern void fxSetScissorValues(GLcontext * ctx);
|
||||
extern void fxTMMoveInTM_NoLock(fxMesaContext fxMesa,
|
||||
struct gl_texture_object *tObj, GLint where);
|
||||
extern void fxInitPixelTables(fxMesaContext fxMesa, GLboolean bgrOrder);
|
||||
|
||||
extern void fxCheckIsInHardware(GLcontext *ctx);
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,9 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
|
|||
grSstSelect(i);
|
||||
|
||||
extension = grGetString(GR_HARDWARE);
|
||||
if (strstr(extension, "Voodoo Banshee")) {
|
||||
if (strstr(extension, "Voodoo2")) {
|
||||
config->SSTs[i].type = GR_SSTTYPE_Voodoo2;
|
||||
} else if (strstr(extension, "Voodoo Banshee")) {
|
||||
config->SSTs[i].type = GR_SSTTYPE_Banshee;
|
||||
} else if (strstr(extension, "Voodoo3")) {
|
||||
config->SSTs[i].type = GR_SSTTYPE_Voodoo3;
|
||||
|
|
@ -202,8 +204,8 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
|
|||
config->SSTs[i].type = GR_SSTTYPE_Voodoo4;
|
||||
} else if (strstr(extension, "Voodoo5")) {
|
||||
config->SSTs[i].type = GR_SSTTYPE_Voodoo5;
|
||||
} else { /* Voodoo1,2,rush */
|
||||
/* ZZZ TO DO: Need to distinguish whether we have V1 or V2 or Rush. */
|
||||
} else { /* Voodoo1,rush */
|
||||
/* ZZZ TO DO: Need to distinguish whether we have V1 or Rush. */
|
||||
config->SSTs[i].type = GR_SSTTYPE_VOODOO;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -803,33 +803,27 @@ fxSetupDoubleTMU_NoLock(fxMesaContext fxMesa,
|
|||
}
|
||||
}
|
||||
|
||||
/* [dBorca] Hack alert:
|
||||
* we put these in reverse order, so that if we can't
|
||||
* do _REAL_ pointcast, the TMU0 table gets broadcasted
|
||||
*/
|
||||
if (!fxMesa->haveGlobalPaletteTexture) {
|
||||
/* pointcast */
|
||||
if (ti0->info.format == GR_TEXFMT_P_8) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
fprintf(stderr, "%s: uploading texture palette for TMU0\n", __FUNCTION__);
|
||||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti0->whichTMU, ti0->paltype, &(ti0->palette));
|
||||
}
|
||||
#if 1
|
||||
else /* does anyone guess why is this here? :D */
|
||||
#endif
|
||||
if (ti1->info.format == GR_TEXFMT_P_8) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
fprintf(stderr, "%s: uploading texture palette for TMU1\n", __FUNCTION__);
|
||||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti1->whichTMU, ti1->paltype, &(ti1->palette));
|
||||
}
|
||||
if (ti0->info.format == GR_TEXFMT_P_8) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
fprintf(stderr, "%s: uploading texture palette for TMU0\n", __FUNCTION__);
|
||||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti0->whichTMU, ti0->paltype, &(ti0->palette));
|
||||
}
|
||||
}
|
||||
#if FX_TC_NCC
|
||||
/* pointcast */
|
||||
if ((ti0->info.format == GR_TEXFMT_AYIQ_8422) ||
|
||||
(ti0->info.format == GR_TEXFMT_YIQ_422)) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
fprintf(stderr, "%s: uploading NCC0 table for TMU0\n", __FUNCTION__);
|
||||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti0->whichTMU, GR_TEXTABLE_NCC0, &(ti0->palette));
|
||||
}
|
||||
if ((ti1->info.format == GR_TEXFMT_AYIQ_8422) ||
|
||||
(ti1->info.format == GR_TEXFMT_YIQ_422)) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
|
|
@ -837,6 +831,13 @@ fxSetupDoubleTMU_NoLock(fxMesaContext fxMesa,
|
|||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti1->whichTMU, GR_TEXTABLE_NCC0, &(ti1->palette));
|
||||
}
|
||||
if ((ti0->info.format == GR_TEXFMT_AYIQ_8422) ||
|
||||
(ti0->info.format == GR_TEXFMT_YIQ_422)) {
|
||||
if (TDFX_DEBUG & VERBOSE_DRIVER) {
|
||||
fprintf(stderr, "%s: uploading NCC0 table for TMU0\n", __FUNCTION__);
|
||||
}
|
||||
fxMesa->Glide.grTexDownloadTableExt(ti0->whichTMU, GR_TEXTABLE_NCC0, &(ti0->palette));
|
||||
}
|
||||
#endif
|
||||
|
||||
grTexSource(tmu0, ti0->tm[tmu0]->startAddr,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue