i965: Momentarily pretend to support ARB_texture_stencil8 for blits.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 9 Jun 2015 21:33:47 +0000 (14:33 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 10 Jun 2015 21:24:49 +0000 (14:24 -0700)
commitf83b9e58f6e8a748def367c7d523eb7285b1aeb7
tree665085b1f3f80912af29639a9bf4c647b77c9cde
parent7217faf39f63f81b74f268d62fbdd94d445b0e6f
i965: Momentarily pretend to support ARB_texture_stencil8 for blits.

Broadwell's stencil blitting code attempts to bind a renderbuffer as a
texture, using dd->BindRenderbufferTexImage().

This calls _mesa_init_teximage_fields(), which then attempts to set
img->_BaseFormat = _mesa_base_tex_format(ctx, internalFormat), which
assert fails if internalFormat is GL_STENCIL_INDEX8 but
ARB_texture_stencil8 is unsupported.

To work around this, just pretend to support the extension momentarily,
during the blit.  Meta has already munged a variety of other things in
the context (including the API!), so it's not that much worse than what
we're already doing.

Fixes regressions since commit f7aad9da20b13c98f77d6a690b327716f39c0a47
(mesa/teximage: use correct extension for accept stencil texture.).

v2: Add an XXX comment explaining the situation (requested by Jason
    Ekstrand and Martin Peres), and an assert that we don't support
    the extension so we remember to remove this hack (requested by
    Neil Roberts).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c