intel: Enable stripping of texture borders.
authorEric Anholt <eric@anholt.net>
Mon, 17 Oct 2011 21:34:52 +0000 (14:34 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 26 Oct 2011 19:42:23 +0000 (12:42 -0700)
This replaces software rendering of textures with the deprecated
1-pixel border (which is always bad, since mipmapping is rather broken
in swrast, and GLSL 1.30 is unsupported) with hardware rendering that
just pretends there was never a border (so you have potential seams on
apps that actually intentionally used the 1-pixel borders, but correct
rendering otherwise).

This doesn't regress any piglit tests on gen6 (since the texwrap
border/bordercolor cases already failed due to broken border color
handling), but regresses texwrap border cases on original gen4 since
those end up sampling the border color instead of the border pixels.
It's a small price to pay for not thinking about texture borders any
more.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/drivers/dri/intel/intel_context.c

index 21cad615c90f2943872ebbc2f60484c1beff2bad..501b00d8ab2c62ad28796413e6a10e36ba207ee3 100644 (file)
@@ -789,6 +789,8 @@ intelInitContext(struct intel_context *intel,
    if (intel->gen >= 6)
       ctx->Const.MaxClipPlanes = 8;
 
+   ctx->Const.StripTextureBorder = GL_TRUE;
+
    /* reinitialize the context point state.
     * It depend on constants in __struct gl_contextRec::Const
     */