Module: Mesa
Branch: master
Commit: a03d6f2aa3bb589ca61c3cc13c4189a973b3a2c1
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a03d6f2aa3bb589ca61c3cc13c4189a973b3a2c1

Author: Ilia Mirkin <[email protected]>
Date:   Mon Feb 15 23:57:06 2016 -0500

mesa: add GL_OES_texture_stencil8 support

It's basically the same thing as GL_ARB_texture_stencil8 except that
glCopyTexImage isn't supported, so add STENCIL_INDEX to the list of
invalid GLES formats for glCopyTexImage.

Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Eduardo Lima Mitev <[email protected]>

---

 docs/GL3.txt                     | 2 +-
 src/mesa/main/extensions_table.h | 1 +
 src/mesa/main/glformats.c        | 8 ++++++++
 src/mesa/main/teximage.c         | 2 ++
 4 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/docs/GL3.txt b/docs/GL3.txt
index ea7ceef..73974de 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -256,7 +256,7 @@ GLES3.2, GLSL ES 3.2
   GL_OES_texture_border_clamp                          not started (based on 
GL_ARB_texture_border_clamp, which is done)
   GL_OES_texture_buffer                                not started (based on 
GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, and 
GL_ARB_texture_buffer_object_rgb32 that are all done)
   GL_OES_texture_cube_map_array                        not started (based on 
GL_ARB_texture_cube_map_array, which is done for all drivers)
-  GL_OES_texture_stencil8                              not started (based on 
GL_ARB_texture_stencil8, which is done for some drivers)
+  GL_OES_texture_stencil8                              DONE (all drivers that 
support GL_ARB_texture_stencil8)
   GL_OES_texture_storage_multisample_2d_array          DONE (all drivers that 
support GL_ARB_texture_multisample)
 
 More info about these features and the work involved can be found at
diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
index d1e3a99..0c90f01 100644
--- a/src/mesa/main/extensions_table.h
+++ b/src/mesa/main/extensions_table.h
@@ -341,6 +341,7 @@ EXT(OES_texture_half_float                  , 
OES_texture_half_float
 EXT(OES_texture_half_float_linear           , OES_texture_half_float_linear    
      ,  x ,  x ,  x , ES2, 2005)
 EXT(OES_texture_mirrored_repeat             , dummy_true                       
      ,  x ,  x , ES1,  x , 2005)
 EXT(OES_texture_npot                        , ARB_texture_non_power_of_two     
      ,  x ,  x , ES1, ES2, 2005)
+EXT(OES_texture_stencil8                    , ARB_texture_stencil8             
      ,  x ,  x ,  x ,  30, 2014)
 EXT(OES_texture_storage_multisample_2d_array, ARB_texture_multisample          
      ,  x ,  x , ES1,  31, 2014)
 EXT(OES_vertex_array_object                 , dummy_true                       
      ,  x ,  x , ES1, ES2, 2010)
 
diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
index f528444..987cd0d 100644
--- a/src/mesa/main/glformats.c
+++ b/src/mesa/main/glformats.c
@@ -3153,6 +3153,14 @@ _mesa_es3_error_check_format_and_type(const struct 
gl_context *ctx,
       }
       break;
 
+   case GL_STENCIL_INDEX:
+      if (!_mesa_has_OES_texture_stencil8(ctx) ||
+          type != GL_UNSIGNED_BYTE ||
+          internalFormat != GL_STENCIL_INDEX8) {
+         return GL_INVALID_OPERATION;
+      }
+      break;
+
    case GL_ALPHA:
    case GL_LUMINANCE:
    case GL_LUMINANCE_ALPHA:
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 57765d7..8a4c628 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -2285,8 +2285,10 @@ copytexture_error_check( struct gl_context *ctx, GLuint 
dimensions,
       }
       if (baseFormat == GL_DEPTH_COMPONENT ||
           baseFormat == GL_DEPTH_STENCIL ||
+          baseFormat == GL_STENCIL_INDEX ||
           rb_base_format == GL_DEPTH_COMPONENT ||
           rb_base_format == GL_DEPTH_STENCIL ||
+          rb_base_format == GL_STENCIL_INDEX ||
           ((baseFormat == GL_LUMINANCE_ALPHA ||
             baseFormat == GL_ALPHA) &&
            rb_base_format != GL_RGBA) ||

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to