[Mesa-dev] [PATCH] i965: Fix stencil texturing in ES 3.1.
Nanley Chery
nanleychery at gmail.com
Thu Mar 17 05:01:26 UTC 2016
On Wed, Mar 16, 2016 at 07:25:56PM -0700, Kenneth Graunke wrote:
> Stencil texturing is required by ES 3.1. Apparently we never actually
> turned it on, and we missed some necessary code.
>
> Fixes nine dEQP-GLES31.functional tests:
>
> stencil_texturing.format.stencil_index8_2d
> texture.border_clamp.formats.stencil_index8.nearest_size_pot
> texture.border_clamp.formats.stencil_index8.nearest_size_npot
> texture.border_clamp.formats.stencil_index8.gather_size_pot
> texture.border_clamp.formats.stencil_index8.gather_size_npot
> texture.border_clamp.unused_channels.stencil_index8
> state_query.internal_format.renderbuffer.stencil_index8_samples
> state_query.internal_format.texture_2d_multisample.stencil_index8_samples
> state_query.internal_format.texture_2d_multisample_array.stencil_index8_samples
>
> For now, leave it turned off in desktop GL. There are still bugs with
> stencil array textures, and I suspect there are multisampling bugs too.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/brw_surface_formats.c | 1 +
> src/mesa/drivers/dri/i965/intel_extensions.c | 2 ++
> src/mesa/main/texformat.c | 5 +++++
> 3 files changed, 8 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_surface_formats.c b/src/mesa/drivers/dri/i965/brw_surface_formats.c
> index 3c0b23b..a1160d9 100644
> --- a/src/mesa/drivers/dri/i965/brw_surface_formats.c
> +++ b/src/mesa/drivers/dri/i965/brw_surface_formats.c
> @@ -718,6 +718,7 @@ brw_init_surface_formats(struct brw_context *brw)
> ctx->TextureFormatSupported[MESA_FORMAT_Z24_UNORM_X8_UINT] = true;
> ctx->TextureFormatSupported[MESA_FORMAT_Z_FLOAT32] = true;
> ctx->TextureFormatSupported[MESA_FORMAT_Z32_FLOAT_S8X24_UINT] = true;
> + ctx->TextureFormatSupported[MESA_FORMAT_S_UINT8] = true;
>
> /* Benchmarking shows that Z16 is slower than Z24, so there's no reason to
> * use it unless you're under memory (not memory bandwidth) pressure.
> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c
> index 60ac124..8d9dab5 100644
> --- a/src/mesa/drivers/dri/i965/intel_extensions.c
> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
> @@ -367,6 +367,8 @@ intelInitExtensions(struct gl_context *ctx)
>
> if (brw->gen >= 8) {
> ctx->Extensions.ARB_stencil_texturing = true;
> + if (ctx->API == API_OPENGLES2)
> + ctx->Extensions.ARB_texture_stencil8 = true;
> }
>
We assert that this extension is disabled in brw_meta_stencil_blit().
Since one can call glBlitFramebuffer with a mask value of
GL_STENCIL_BUFFER_BIT in GLES, shouldn't we get rid of the assertion?
- Nanley
> if (brw->gen >= 9) {
> diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
> index 419fd78..be2581b 100644
> --- a/src/mesa/main/texformat.c
> +++ b/src/mesa/main/texformat.c
> @@ -765,6 +765,11 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
> RETURN_IF_SUPPORTED(MESA_FORMAT_B8G8R8A8_UNORM);
> break;
>
> + case GL_STENCIL_INDEX:
> + case GL_STENCIL_INDEX8:
> + RETURN_IF_SUPPORTED(MESA_FORMAT_S_UINT8);
> + break;
> +
> default:
> /* For non-generic compressed format we assert two things:
> *
> --
> 2.7.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list