meta: Add a meta implementation of GL_ARB_clear_texture
authorNeil Roberts <neil@linux.intel.com>
Tue, 10 Jun 2014 15:21:21 +0000 (16:21 +0100)
committerNeil Roberts <neil@linux.intel.com>
Wed, 23 Jul 2014 10:50:38 +0000 (11:50 +0100)
commit0779f37e1589b0ba4f1443a889f34dd83607c117
tree871274c17a6b5c95ae1b22f601890171b4b6b230
parent05b52efbc977311c96ba31ac5fa2c95fe525d85e
meta: Add a meta implementation of GL_ARB_clear_texture

Adds an implementation of the ClearTexSubImage driver entry point that tries
to set up an FBO to render to the texture and then calls glClearBuffer with a
scissor to perform the actual clear. If an FBO can't be created for the
texture then it will fall back to using _mesa_store_ClearTexSubImage.

When used in combination with _mesa_store_ClearTexSubImage this should provide
an implementation that works for all DRI-based drivers. However as this has
only been tested with the i965 driver it is currently only enabled there.

v2: Only enable the extension for the i965 driver instead of all DRI drivers.
    Remove an unnecessary goto. Don't require GL_ARB_framebuffer_object. Add
    some more comments.

v3: Use glClearBuffer* to avoid having to modify glClearColor and friends.
    Handle sRGB textures. Explicitly disable dithering.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
src/mesa/drivers/common/driverfuncs.c
src/mesa/drivers/common/meta.c
src/mesa/drivers/common/meta.h
src/mesa/drivers/dri/i965/intel_extensions.c