[Mesa-dev] [PATCH 2/4] mesa: finish implementing ARB_texture_stencil8

Kenneth Graunke kenneth at whitecape.org
Sun Apr 5 20:31:55 PDT 2015


On Sunday, April 05, 2015 04:48:48 PM Dave Airlie wrote:
> Parts of this were implemented previously, so finish it off.
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/mesa/main/extensions.c | 1 +
>  src/mesa/main/teximage.c   | 3 ++-
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index f212015..eea1ade 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -185,6 +185,7 @@ static const struct extension extension_table[] = {
>     { "GL_ARB_texture_rectangle",                   o(NV_texture_rectangle),                    GL,             2004 },
>     { "GL_ARB_texture_rgb10_a2ui",                  o(ARB_texture_rgb10_a2ui),                  GL,             2009 },
>     { "GL_ARB_texture_rg",                          o(ARB_texture_rg),                          GL,             2008 },
> +   { "GL_ARB_texture_stencil8",                    o(ARB_texture_stencil8),                    GL,             2013 },
>     { "GL_ARB_texture_storage",                     o(dummy_true),                              GL,             2011 },
>     { "GL_ARB_texture_storage_multisample",         o(ARB_texture_multisample),                 GL,             2012 },
>     { "GL_ARB_texture_view",                        o(ARB_texture_view),                        GL,             2012 },
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 36e0b56..faca801 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -1997,7 +1997,8 @@ _mesa_legal_texture_base_format_for_target(struct gl_context *ctx,
>                                             const char *caller)

You should update the comment above this function.

>  {
>     if (_mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_COMPONENT
> -       || _mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_STENCIL) {
> +       || _mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_STENCIL
> +       || _mesa_base_tex_format(ctx, internalFormat) == GL_STENCIL_INDEX) {
>        /* Section 3.8.3 (Texture Image Specification) of the OpenGL 3.3 Core
>         * Profile spec says:
>         *
> 

This seems insufficient to me.  It think at minimum need to add code to
the following places:

- test_attachment_completeness
- _mesa_choose_tex_format
- _mesa_base_tex_format

At least, that's what I did in my earlier attempt:

http://cgit.freedesktop.org/~kwg/mesa/commit/?h=stencil-texture&id=131e0f1bc70fa286df67f1ede8c4671bd6c88053
http://cgit.freedesktop.org/~kwg/mesa/commit/?h=stencil-texture&id=7fc34cd005e9059a9876c2d37ed90cef056adf92

The reason I abandoned the effort was because the extension introduces a
zillion new places you can use stencil textures - or places that use
textures and now hit stencil textures - and doing a proper job meant
writing Piglit tests for a lot of those.

For example...GetTexImage?  FBO stencil attachments?  GenerateMipmaps?
Multisampled stencil textures?  (Yes, that's a thing now!  Hooray :/)

I'm sure nobody's driver gets any of that wrong...

--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150405/2bd4766b/attachment.sig>


More information about the mesa-dev mailing list