r100/r200/r300/r600: Set MaxCombinedTextureImageunits.
authorPauli Nieminen <suokkos@gmail.com>
Sun, 7 Feb 2010 01:06:27 +0000 (03:06 +0200)
committerPauli Nieminen <suokkos@gmail.com>
Sun, 7 Feb 2010 11:13:23 +0000 (13:13 +0200)
Fixes glActiveTexture to set GL_INVALID_ENUM when trying
to activate texture unit that is not available.

piglit test case general/texunit passes now.

src/mesa/drivers/dri/r200/r200_context.c
src/mesa/drivers/dri/r300/r300_context.c
src/mesa/drivers/dri/r600/r600_context.c
src/mesa/drivers/dri/radeon/radeon_context.c

index 3191025..8986191 100644 (file)
@@ -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 
index eedb7b6..7c21efb 100644 (file)
@@ -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;
index 15f65ba..5b7d7c2 100644 (file)
@@ -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;
 
index 86c91f1..475e93b 100644 (file)
@@ -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");