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 <imirkin@alum.mit.edu> Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
This commit is contained in:
@@ -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
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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) ||
|
||||
|
Reference in New Issue
Block a user