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 <airl...@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

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to