From: Brian P. <br...@va...> - 2000-07-31 18:12:46
|
Daryll Strauss wrote: > > On Sat, Jul 22, 2000 at 08:53:42PM +0100, James Matthews wrote: > > Well, after most of the afternoon poring over code, I figured out what > > causes the bug - most of Unreal Tournament's textures are 32 bit, and use > > the GL_RGBA8 texture format. As of XF864.0.1, this uses the > > GR_TEXFMT_ARGB_8888 format in Glide, which is only actually supported on > > the Napalm (V5). As such, the texture size returned by > > grTexTextureMemRequired is meaningless. > > > > The following is a quick patch to xc/extras/Mesa/src/FX/fxddtex.c. > > This will disable the support for 32 bit textures on the V5, though. > > > > - James Matthews > > > > --- fxddtex.c~ Fri Jun 16 22:47:01 2000 > > +++ fxddtex.c Sat Jul 22 20:41:32 2000 > > @@ -645,7 +645,7 @@ > > case GL_RGBA12: > > case GL_RGBA16: > > if(tfmt) > > - (*tfmt)=GR_TEXFMT_ARGB_8888; > > + (*tfmt)=GR_TEXFMT_ARGB_4444; > > if(ifmt) > > (*ifmt)=GL_RGBA; > > break; > > @@ -800,8 +800,8 @@ > > case GL_RGB10_A2: > > case GL_RGBA12: > > case GL_RGBA16: > > - texelSize = 4; > > - intFormat = MESA_A8_R8_G8_B8; > > + texelSize = 2; > > + intFormat = MESA_A4_R4_G4_B4; > > break; > > case GL_RGB5_A1: > > texelSize = 2; > > Excellent, that looks like a reasonable explanation. Thanks for tracking > it down. > > Could you drop this into the patch manager on SourceForge? Almost all of > us are away at SIGGRAPH, so we probably can't get to this right > away. That way we don't lose it. I've applied the patch to the DRI trunk. Thanks James! In the tdfx-2-2 branch I'll implement a better solution. When we're running in 32bpp mode on Voodoo4 or higher I'll use the 32bpp texel format, otherwise the 16bpp format. -Brian |