intel: FBOs with texture border are unsupported
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 1 Feb 2012 17:18:13 +0000 (10:18 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 3 Feb 2012 17:50:01 +0000 (10:50 -0700)
commit87b4c9b322dabeba7c9a9d02e9efefd2c89e6625
tree58fec8ab42faddf811818ad97efa759b9a5e08e3
parent0fcc518964223d9baaa2b45e80afeb800beb872f
intel: FBOs with texture border are unsupported

FBOs differ from textures in a significant way.  With textures, we can
strip the border and get correct rendering except when the application
fetches texels outside [0,1].

With an FBO, the pixel at (0,0) is in the border.  The
ARB_framebuffer_object spec says:

    "If the attached image is a texture image, then the window
    coordinates (x[w], y[w]) correspond to the texel (i, j, k), from
    figure 3.10 as follows:

                           i = (x[w] - b)

                           j = (y[w] - b)

                           k = (layer - b)

    where <b> is the texture image's border width..."

Since the border doesn't exist, we can never render any pixels in the
correct location.  Just mark these FBOs FRAMEBUFFER_UNSUPPORTED.

NOTE: This is a candidate for the 8.0 branch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42336
src/mesa/drivers/dri/intel/intel_fbo.c