summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPauli Nieminen <[email protected]>2010-02-07 03:06:27 +0200
committerPauli Nieminen <[email protected]>2010-02-07 13:13:23 +0200
commit0943706d35e3955cacbc3b690cfb1e2dfb78d639 (patch)
tree8428ef4aea41d9013e584976006aea96c4fbacbd
parent76a9831b2b20d59c49b5f25ba5275f17b4e2067b (diff)
r100/r200/r300/r600: Set MaxCombinedTextureImageunits.
Fixes glActiveTexture to set GL_INVALID_ENUM when trying to activate texture unit that is not available. piglit test case general/texunit passes now.
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c2
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.c4
-rw-r--r--src/mesa/drivers/dri/r600/r600_context.c4
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.c1
4 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index 31910253dd3..8986191c393 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -350,6 +350,8 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
ctx->Const.MaxTextureImageUnits = ctx->Const.MaxTextureUnits;
ctx->Const.MaxTextureCoordUnits = ctx->Const.MaxTextureUnits;
+ ctx->Const.MaxCombinedTextureImageUnits = ctx->Const.MaxTextureUnits;
+
i = driQueryOptioni( &rmesa->radeon.optionCache, "allow_large_textures");
/* FIXME: When no memory manager is available we should set this
diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c
index eedb7b6ed86..7c21efb1ded 100644
--- a/src/mesa/drivers/dri/r300/r300_context.c
+++ b/src/mesa/drivers/dri/r300/r300_context.c
@@ -333,6 +333,10 @@ static void r300InitConstValues(GLcontext *ctx, radeonScreenPtr screen)
driQueryOptioni(&r300->radeon.optionCache, "texture_coord_units");
ctx->Const.MaxTextureUnits = MIN2(ctx->Const.MaxTextureImageUnits,
ctx->Const.MaxTextureCoordUnits);
+ ctx->Const.MaxCombinedTextureImageUnits =
+ ctx->Const.MaxVertexTextureImageUnits +
+ ctx->Const.MaxTextureImageUnits;
+
ctx->Const.MaxTextureMaxAnisotropy = 16.0;
ctx->Const.MaxTextureLodBias = 16.0;
diff --git a/src/mesa/drivers/dri/r600/r600_context.c b/src/mesa/drivers/dri/r600/r600_context.c
index 15f65bae6e3..5b7d7c28ec1 100644
--- a/src/mesa/drivers/dri/r600/r600_context.c
+++ b/src/mesa/drivers/dri/r600/r600_context.c
@@ -249,6 +249,10 @@ static void r600InitConstValues(GLcontext *ctx, radeonScreenPtr screen)
ctx->Const.MaxTextureUnits =
MIN2(ctx->Const.MaxTextureImageUnits,
ctx->Const.MaxTextureCoordUnits);
+ ctx->Const.MaxCombinedTextureImageUnits =
+ ctx->Const.MaxVertexTextureImageUnits +
+ ctx->Const.MaxTextureImageUnits;
+
ctx->Const.MaxTextureMaxAnisotropy = 16.0;
ctx->Const.MaxTextureLodBias = 16.0;
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c
index 86c91f19bb8..475e93bc05f 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_context.c
@@ -279,6 +279,7 @@ r100CreateContext( const __GLcontextModes *glVisual,
"texture_units");
ctx->Const.MaxTextureImageUnits = ctx->Const.MaxTextureUnits;
ctx->Const.MaxTextureCoordUnits = ctx->Const.MaxTextureUnits;
+ ctx->Const.MaxCombinedTextureImageUnits = ctx->Const.MaxTextureUnits;
i = driQueryOptioni( &rmesa->radeon.optionCache, "allow_large_textures");