mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
Fixes to cope with the lack of AGP textures. This is all that's needed
to support PCI Savages on the Mesa side. Bumped driver date.
This commit is contained in:
parent
9db66a3f9f
commit
86f1439f82
3 changed files with 21 additions and 14 deletions
|
|
@ -176,15 +176,17 @@ savageInitDriver(__DRIscreenPrivate *sPriv)
|
|||
|
||||
savageScreen->agpTextures.handle = gDRIPriv->agpTextureHandle;
|
||||
savageScreen->agpTextures.size = gDRIPriv->agpTextureSize;
|
||||
if (drmMap(sPriv->fd,
|
||||
savageScreen->agpTextures.handle,
|
||||
savageScreen->agpTextures.size,
|
||||
(drmAddress *)&(savageScreen->agpTextures.map)) != 0)
|
||||
{
|
||||
Xfree(savageScreen);
|
||||
sPriv->private = NULL;
|
||||
return GL_FALSE;
|
||||
}
|
||||
if (gDRIPriv->agpTextureSize) {
|
||||
if (drmMap(sPriv->fd,
|
||||
savageScreen->agpTextures.handle,
|
||||
savageScreen->agpTextures.size,
|
||||
(drmAddress *)&(savageScreen->agpTextures.map)) != 0) {
|
||||
Xfree(savageScreen);
|
||||
sPriv->private = NULL;
|
||||
return GL_FALSE;
|
||||
}
|
||||
} else
|
||||
savageScreen->agpTextures.map = NULL;
|
||||
|
||||
savageScreen->texVirtual[SAVAGE_CARD_HEAP] =
|
||||
(drmAddress)(((unsigned int)sPriv->pFB)+gDRIPriv->textureOffset);
|
||||
|
|
@ -361,7 +363,12 @@ savageCreateContext( const __GLcontextModes *mesaVis,
|
|||
break;
|
||||
}
|
||||
ctx->Const.MaxTextureLevels = maxTextureLevels;
|
||||
assert (ctx->Const.MaxTextureLevels > 6); /*spec requires at least 64x64*/
|
||||
if (ctx->Const.MaxTextureLevels <= 6) { /*spec requires at least 64x64*/
|
||||
__driUtilMessage("Not enough texture memory. "
|
||||
"Falling back to indirect rendering.");
|
||||
Xfree(imesa);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
ctx->Const.MinLineWidth = 1.0;
|
||||
|
|
@ -401,7 +408,7 @@ savageCreateContext( const __GLcontextModes *mesaVis,
|
|||
{
|
||||
int i;
|
||||
|
||||
for(i=0;i<SAVAGE_NR_TEX_HEAPS;i++)
|
||||
for(i=0;i<imesa->lastTexHeap;i++)
|
||||
{
|
||||
imesa->texHeap[i] = mmInit( 0, savageScreen->textureSize[i] );
|
||||
make_empty_list(&imesa->TexObjList[i]);
|
||||
|
|
@ -503,7 +510,7 @@ savageDestroyContext(__DRIcontextPrivate *driContextPriv)
|
|||
/* update for multi-tex*/
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<SAVAGE_NR_TEX_HEAPS;i++)
|
||||
for(i=0;i<imesa->lastTexHeap;i++)
|
||||
foreach_s (t, next_t, &(imesa->TexObjList[i]))
|
||||
savageDestroyTexObj(imesa, t);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
#include "utils.h"
|
||||
|
||||
|
||||
#define DRIVER_DATE "20050101"
|
||||
#define DRIVER_DATE "20050110"
|
||||
|
||||
/***************************************
|
||||
* Mesa's Driver Functions
|
||||
|
|
|
|||
|
|
@ -760,7 +760,7 @@ int savageUploadTexImages( savageContextPtr imesa, savageTextureObjectPtr t )
|
|||
t->MemBlock = mmAllocMem( imesa->texHeap[heap], t->totalSize, 12, 0 );
|
||||
if (t->MemBlock)
|
||||
break;
|
||||
else
|
||||
else if (imesa->lastTexHeap == 2)
|
||||
{
|
||||
heap = t->heap = SAVAGE_AGP_HEAP;
|
||||
t->MemBlock = mmAllocMem( imesa->texHeap[heap], t->totalSize, 12, 0 );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue