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 21cad61..501b00d 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
     */