mesa: OpenGL 1.3 feature GL_ARB_texture_env_combine is not optional

v2: GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, and GL_ONE_MINUS_SRC_ALPHA
should always be supported now. Noticed by Marek.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
This commit is contained in:
Ian Romanick
2021-12-14 17:10:43 -08:00
committed by Marge Bot
parent 7649ab1f03
commit 61a3e68767
5 changed files with 5 additions and 24 deletions

View File

@@ -157,7 +157,7 @@ EXT(ARB_texture_compression_rgtc , ARB_texture_compression_rgtc
EXT(ARB_texture_cube_map , dummy_true , GLL, x , x , x , 1999)
EXT(ARB_texture_cube_map_array , ARB_texture_cube_map_array , GLL, GLC, x , x , 2009)
EXT(ARB_texture_env_add , dummy_true , GLL, x , x , x , 1999)
EXT(ARB_texture_env_combine , ARB_texture_env_combine , GLL, x , x , x , 2001)
EXT(ARB_texture_env_combine , dummy_true , GLL, x , x , x , 2001)
EXT(ARB_texture_env_crossbar , ARB_texture_env_crossbar , GLL, x , x , x , 2001)
EXT(ARB_texture_env_dot3 , ARB_texture_env_dot3 , GLL, x , x , x , 2001)
EXT(ARB_texture_filter_anisotropic , ARB_texture_filter_anisotropic , GLL, GLC, x , x , 2017)

View File

@@ -4450,7 +4450,6 @@ struct gl_extensions
GLboolean ARB_texture_compression_bptc;
GLboolean ARB_texture_compression_rgtc;
GLboolean ARB_texture_cube_map_array;
GLboolean ARB_texture_env_combine;
GLboolean ARB_texture_env_crossbar;
GLboolean ARB_texture_env_dot3;
GLboolean ARB_texture_filter_anisotropic;

View File

@@ -116,10 +116,8 @@ set_combiner_mode(struct gl_context *ctx,
case GL_ADD:
case GL_ADD_SIGNED:
case GL_INTERPOLATE:
legal = GL_TRUE;
break;
case GL_SUBTRACT:
legal = ctx->Extensions.ARB_texture_env_combine;
legal = GL_TRUE;
break;
case GL_DOT3_RGB_EXT:
case GL_DOT3_RGBA_EXT:
@@ -308,22 +306,9 @@ set_combiner_operand(struct gl_context *ctx,
switch (param) {
case GL_SRC_COLOR:
case GL_ONE_MINUS_SRC_COLOR:
/* The color input can only be used with GL_OPERAND[01]_RGB in the EXT
* version. In the ARB and NV versions and OpenGL ES 1.x they can be
* used for any RGB operand.
*/
legal = !alpha
&& ((term < 2) || ctx->Extensions.ARB_texture_env_combine
|| ctx->Extensions.NV_texture_env_combine4);
legal = !alpha;
break;
case GL_ONE_MINUS_SRC_ALPHA:
/* GL_ONE_MINUS_SRC_ALPHA can only be used with
* GL_OPERAND[01]_(RGB|ALPHA) in the EXT version. In the ARB and NV
* versions and OpenGL ES 1.x it can be used for any operand.
*/
legal = (term < 2) || ctx->Extensions.ARB_texture_env_combine
|| ctx->Extensions.NV_texture_env_combine4;
break;
case GL_SRC_ALPHA:
legal = GL_TRUE;
break;

View File

@@ -251,8 +251,7 @@ compute_version(const struct gl_extensions *extensions,
{
GLuint major, minor, version;
const bool ver_1_3 = (extensions->ARB_texture_env_combine &&
extensions->ARB_texture_env_dot3);
const bool ver_1_3 = (extensions->ARB_texture_env_dot3);
const bool ver_1_4 = (ver_1_3 &&
extensions->ARB_depth_texture &&
extensions->ARB_shadow &&
@@ -494,8 +493,7 @@ static GLuint
compute_version_es1(const struct gl_extensions *extensions)
{
/* OpenGL ES 1.0 is derived from OpenGL 1.3 */
const bool ver_1_0 = (extensions->ARB_texture_env_combine &&
extensions->ARB_texture_env_dot3);
const bool ver_1_0 = (extensions->ARB_texture_env_dot3);
/* OpenGL ES 1.1 is derived from OpenGL 1.5 */
const bool ver_1_1 = (ver_1_0 &&
extensions->EXT_point_parameters);

View File

@@ -1109,7 +1109,6 @@ void st_init_extensions(struct pipe_screen *screen,
extensions->ARB_internalformat_query2 = GL_TRUE;
extensions->ARB_map_buffer_range = GL_TRUE;
extensions->ARB_sync = GL_TRUE;
extensions->ARB_texture_env_combine = GL_TRUE;
extensions->ARB_texture_env_crossbar = GL_TRUE;
extensions->ARB_texture_env_dot3 = GL_TRUE;
extensions->ARB_vertex_program = GL_TRUE;