Mesa (master): radeon: fix hw texture limits

Roland Scheidegger sroland at kemper.freedesktop.org
Thu Jun 25 13:58:05 UTC 2009


Module: Mesa
Branch: master
Commit: 43b3b745e4d893b64d6331cb6183f8615e613f66
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=43b3b745e4d893b64d6331cb6183f8615e613f66

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Thu Jun 25 15:57:33 2009 +0200

radeon: fix hw texture limits

still always enable max, but the right values this time.
More work should probably be done for saner limits without mm, and/or
dri conf option allow_large_textures (which is ignored) removed.
3D limit on r100 is pretty arbitrary as still handled by swrast anyway.
Also fix r300 limits (except 3d I've no idea what the max is anyway so
keep using mesa default).

---

 src/mesa/drivers/dri/r200/r200_context.c     |    6 +++---
 src/mesa/drivers/dri/r300/r300_context.c     |   10 ++++++++--
 src/mesa/drivers/dri/radeon/radeon_context.c |    7 +++----
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index 1ba8e5e..9a92a32 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -356,9 +356,9 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
 
    /* FIXME: When no memory manager is available we should set this 
     * to some reasonable value based on texture memory pool size */
-   ctx->Const.MaxTextureLevels = 11;
-   ctx->Const.Max3DTextureLevels = 8;
-   ctx->Const.MaxCubeTextureLevels = 11;
+   ctx->Const.MaxTextureLevels = 12;
+   ctx->Const.Max3DTextureLevels = 9;
+   ctx->Const.MaxCubeTextureLevels = 12;
    ctx->Const.MaxTextureRectSize = 2048;
 
    ctx->Const.MaxTextureMaxAnisotropy = 16.0;
diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c
index 14a11ea..b7d7542 100644
--- a/src/mesa/drivers/dri/r300/r300_context.c
+++ b/src/mesa/drivers/dri/r300/r300_context.c
@@ -270,10 +270,16 @@ static void r300InitConstValues(GLcontext *ctx, radeonScreenPtr screen)
 	ctx->Const.MaxTextureMaxAnisotropy = 16.0;
 	ctx->Const.MaxTextureLodBias = 16.0;
 
-	if (screen->chip_family >= CHIP_FAMILY_RV515)
+	if (screen->chip_family >= CHIP_FAMILY_RV515) {
 		ctx->Const.MaxTextureLevels = 13;
-	else
+		ctx->Const.MaxCubeTextureLevels = 13;
+		ctx->Const.MaxTextureRectSize = 4096;
+	}
+	else {
 		ctx->Const.MaxTextureLevels = 12;
+		ctx->Const.MaxCubeTextureLevels = 12;
+		ctx->Const.MaxTextureRectSize = 2048;
+	}
 
 	ctx->Const.MinPointSize = 1.0;
 	ctx->Const.MinPointSizeAA = 1.0;
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c
index 3d03f62..46cba73 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_context.c
@@ -285,10 +285,9 @@ r100CreateContext( const __GLcontextModes *glVisual,
 
    /* FIXME: When no memory manager is available we should set this 
     * to some reasonable value based on texture memory pool size */
-   /* FIXME: does r100 support 2048x2048 texture ? */
-   ctx->Const.MaxTextureLevels = 11;
-   ctx->Const.Max3DTextureLevels = 8;
-   ctx->Const.MaxCubeTextureLevels = 11;
+   ctx->Const.MaxTextureLevels = 12;
+   ctx->Const.Max3DTextureLevels = 9;
+   ctx->Const.MaxCubeTextureLevels = 12;
    ctx->Const.MaxTextureRectSize = 2048;
 
    ctx->Const.MaxTextureMaxAnisotropy = 16.0;




More information about the mesa-commit mailing list