From: Ian Romanick Date: Sat, 11 Aug 2012 02:16:37 +0000 (-0700) Subject: mesa: Kill GL_ARB_shadow_ambient with fire X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=707f0679157f83ac45127e41647b96ed924d45c9;p=mesa.git mesa: Kill GL_ARB_shadow_ambient with fire No driver supports this extension, and it seems unlikely than any driver ever will. I think r300c may have supported it at one time, but that driver has already been removed. Signed-off-by: Ian Romanick Reviewed-by: Kenneth Graunke Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/r300/compiler/radeon_compiler.h b/src/gallium/drivers/r300/compiler/radeon_compiler.h index d42cee9cce1..f78a51c19c3 100644 --- a/src/gallium/drivers/r300/compiler/radeon_compiler.h +++ b/src/gallium/drivers/r300/compiler/radeon_compiler.h @@ -114,7 +114,6 @@ struct r300_fragment_program_compiler { struct rX00_fragment_program_code *code; /* Optional transformations and features. */ struct r300_fragment_program_external_state state; - unsigned enable_shadow_ambient; /* Register corresponding to the depthbuffer. */ unsigned OutputDepth; /* Registers corresponding to the four colorbuffers. */ diff --git a/src/gallium/drivers/r300/compiler/radeon_program_tex.c b/src/gallium/drivers/r300/compiler/radeon_program_tex.c index 9d69ebd18fb..8dfcd54d238 100644 --- a/src/gallium/drivers/r300/compiler/radeon_program_tex.c +++ b/src/gallium/drivers/r300/compiler/radeon_program_tex.c @@ -37,17 +37,8 @@ static struct rc_src_register shadow_fail_value(struct r300_fragment_program_com { struct rc_src_register reg = { 0, 0, 0, 0, 0, 0 }; - if (compiler->enable_shadow_ambient) { - reg.File = RC_FILE_CONSTANT; - reg.Index = rc_constants_add_state(&compiler->Base.Program.Constants, - RC_STATE_SHADOW_AMBIENT, tmu); - reg.Swizzle = RC_SWIZZLE_WWWW; - } else { - reg.File = RC_FILE_NONE; - reg.Swizzle = RC_SWIZZLE_0000; - } - - reg.Swizzle = combine_swizzles(reg.Swizzle, + reg.File = RC_FILE_NONE; + reg.Swizzle = combine_swizzles(RC_SWIZZLE_0000, compiler->state.unit[tmu].texture_swizzle); return reg; } diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 9cab35b0c37..1a04eebdd19 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -805,10 +805,6 @@ pop_texture_group(struct gl_context *ctx, struct texture_state *texstate) _mesa_TexParameterf(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, samp->MaxAnisotropy); } - if (ctx->Extensions.ARB_shadow_ambient) { - _mesa_TexParameterf(target, GL_TEXTURE_COMPARE_FAIL_VALUE_ARB, - samp->CompareFailValue); - } if (ctx->Extensions.ARB_shadow) { _mesa_TexParameteri(target, GL_TEXTURE_COMPARE_MODE, samp->CompareMode); diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 521fe14dba5..7f3aa940a00 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -120,7 +120,6 @@ static const struct extension extension_table[] = { { "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 }, { "GL_ARB_shader_texture_lod", o(ARB_shader_texture_lod), GL, 2009 }, { "GL_ARB_shading_language_100", o(ARB_shading_language_100), GLL, 2003 }, - { "GL_ARB_shadow_ambient", o(ARB_shadow_ambient), GL, 2001 }, { "GL_ARB_shadow", o(ARB_shadow), GLL, 2001 }, { "GL_ARB_sync", o(ARB_sync), GL, 2003 }, { "GL_ARB_texture_border_clamp", o(ARB_texture_border_clamp), GLL, 2000 }, @@ -427,7 +426,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx) ctx->Extensions.ARB_shading_language_100 = GL_TRUE; #endif ctx->Extensions.ARB_shadow = GL_TRUE; - ctx->Extensions.ARB_shadow_ambient = GL_TRUE; ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; ctx->Extensions.ARB_texture_cube_map = GL_TRUE; ctx->Extensions.ARB_texture_env_combine = GL_TRUE; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 8fcb6b45694..552c1cf69de 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1250,7 +1250,6 @@ struct gl_sampler_object GLfloat MaxAnisotropy; /**< GL_EXT_texture_filter_anisotropic */ GLenum CompareMode; /**< GL_ARB_shadow */ GLenum CompareFunc; /**< GL_ARB_shadow */ - GLfloat CompareFailValue; /**< GL_ARB_shadow_ambient */ GLenum sRGBDecode; /**< GL_DECODE_EXT or GL_SKIP_DECODE_EXT */ GLboolean CubeMapSeamless; /**< GL_AMD_seamless_cubemap_per_texture */ }; @@ -2972,7 +2971,6 @@ struct gl_extensions GLboolean ARB_shader_texture_lod; GLboolean ARB_shading_language_100; GLboolean ARB_shadow; - GLboolean ARB_shadow_ambient; GLboolean ARB_sync; GLboolean ARB_texture_border_clamp; GLboolean ARB_texture_buffer_object; diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c index dc8adfc3f72..8bf5f490a12 100644 --- a/src/mesa/main/samplerobj.c +++ b/src/mesa/main/samplerobj.c @@ -130,7 +130,6 @@ _mesa_init_sampler_object(struct gl_sampler_object *sampObj, GLuint name) sampObj->MaxAnisotropy = 1.0F; sampObj->CompareMode = GL_NONE; sampObj->CompareFunc = GL_LEQUAL; - sampObj->CompareFailValue = 0.0; sampObj->sRGBDecode = GL_DECODE_EXT; sampObj->CubeMapSeamless = GL_FALSE; } diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index f70da4fbc94..02e37bebc5e 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -144,7 +144,6 @@ _mesa_initialize_texture_object( struct gl_texture_object *obj, obj->Sampler.MaxAnisotropy = 1.0; obj->Sampler.CompareMode = GL_NONE; /* ARB_shadow */ obj->Sampler.CompareFunc = GL_LEQUAL; /* ARB_shadow */ - obj->Sampler.CompareFailValue = 0.0F; /* ARB_shadow_ambient */ obj->DepthMode = GL_LUMINANCE; obj->Sampler.CubeMapSeamless = GL_FALSE; obj->Swizzle[0] = GL_RED; @@ -257,7 +256,6 @@ _mesa_copy_texture_object( struct gl_texture_object *dest, dest->Sampler.MaxAnisotropy = src->Sampler.MaxAnisotropy; dest->Sampler.CompareMode = src->Sampler.CompareMode; dest->Sampler.CompareFunc = src->Sampler.CompareFunc; - dest->Sampler.CompareFailValue = src->Sampler.CompareFailValue; dest->Sampler.CubeMapSeamless = src->Sampler.CubeMapSeamless; dest->DepthMode = src->DepthMode; dest->Sampler.sRGBDecode = src->Sampler.sRGBDecode; diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index 9e7c3e45782..690fd6c2562 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -541,20 +541,6 @@ set_tex_parameterf(struct gl_context *ctx, } return GL_FALSE; - case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB: - if (ctx->Extensions.ARB_shadow_ambient) { - if (texObj->Sampler.CompareFailValue != params[0]) { - flush(ctx); - texObj->Sampler.CompareFailValue = CLAMP(params[0], 0.0F, 1.0F); - return GL_TRUE; - } - } - else { - _mesa_error(ctx, GL_INVALID_ENUM, - "glTexParameter(pname=GL_TEXTURE_COMPARE_FAIL_VALUE_ARB)"); - } - return GL_FALSE; - case GL_TEXTURE_LOD_BIAS: /* NOTE: this is really part of OpenGL 1.4, not EXT_texture_lod_bias */ if (texObj->Sampler.LodBias != params[0]) { @@ -1136,11 +1122,6 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ) goto invalid_pname; *params = obj->Sampler.MaxAnisotropy; break; - case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB: - if (!ctx->Extensions.ARB_shadow_ambient) - goto invalid_pname; - *params = obj->Sampler.CompareFailValue; - break; case GL_GENERATE_MIPMAP_SGIS: *params = (GLfloat) obj->GenerateMipmap; break; @@ -1282,11 +1263,6 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) goto invalid_pname; *params = (GLint) obj->Sampler.MaxAnisotropy; break; - case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB: - if (!ctx->Extensions.ARB_shadow_ambient) - goto invalid_pname; - *params = (GLint) FLOAT_TO_INT(obj->Sampler.CompareFailValue); - break; case GL_GENERATE_MIPMAP_SGIS: *params = (GLint) obj->GenerateMipmap; break; diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index 91212218e7a..f9c6677b19b 100644 --- a/src/mesa/program/prog_statevars.c +++ b/src/mesa/program/prog_statevars.c @@ -551,22 +551,6 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[], value[3] = ctx->Pixel.AlphaBias; return; - case STATE_SHADOW_AMBIENT: - { - const int unit = (int) state[2]; - const struct gl_texture_object *texObj - = ctx->Texture.Unit[unit]._Current; - const struct gl_sampler_object *samp = - _mesa_get_samplerobj(ctx, unit); - if (texObj) { - value[0] = - value[1] = - value[2] = - value[3] = samp->CompareFailValue; - } - } - return; - case STATE_FB_SIZE: value[0] = (GLfloat) (ctx->DrawBuffer->Width - 1); value[1] = (GLfloat) (ctx->DrawBuffer->Height - 1); @@ -702,7 +686,6 @@ _mesa_program_state_flags(const gl_state_index state[STATE_LENGTH]) return _NEW_MODELVIEW; case STATE_TEXRECT_SCALE: - case STATE_SHADOW_AMBIENT: case STATE_ROT_MATRIX_0: case STATE_ROT_MATRIX_1: return _NEW_TEXTURE; @@ -918,9 +901,6 @@ append_token(char *dst, gl_state_index k) case STATE_PT_BIAS: append(dst, "PTbias"); break; - case STATE_SHADOW_AMBIENT: - append(dst, "CompareFailValue"); - break; case STATE_FB_SIZE: append(dst, "FbSize"); break; diff --git a/src/mesa/program/prog_statevars.h b/src/mesa/program/prog_statevars.h index 65baa7833cb..efd0e030cb3 100644 --- a/src/mesa/program/prog_statevars.h +++ b/src/mesa/program/prog_statevars.h @@ -124,7 +124,6 @@ typedef enum gl_state_index_ { STATE_LIGHT_HALF_VECTOR, /* object vs eye space */ STATE_PT_SCALE, /**< Pixel transfer RGBA scale */ STATE_PT_BIAS, /**< Pixel transfer RGBA bias */ - STATE_SHADOW_AMBIENT, /**< ARB_shadow_ambient fail value; token[2] is texture unit index */ STATE_FB_SIZE, /**< (width-1, height-1, 0, 0) */ STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height) if a FBO is bound, (-1, height, 1, 0) otherwise */ STATE_ROT_MATRIX_0, /**< ATI_envmap_bumpmap, rot matrix row 0 */ diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c index 51c8992087a..3c2aae91356 100644 --- a/src/mesa/swrast/s_texfilter.c +++ b/src/mesa/swrast/s_texfilter.c @@ -3345,34 +3345,33 @@ sample_lambda_1d_array(struct gl_context *ctx, /** - * Compare texcoord against depth sample. Return 1.0 or the ambient value. + * Compare texcoord against depth sample. Return 1.0 or 0.0 value. */ static inline GLfloat -shadow_compare(GLenum function, GLfloat coord, GLfloat depthSample, - GLfloat ambient) +shadow_compare(GLenum function, GLfloat coord, GLfloat depthSample) { switch (function) { case GL_LEQUAL: - return (coord <= depthSample) ? 1.0F : ambient; + return (coord <= depthSample) ? 1.0F : 0.0F; case GL_GEQUAL: - return (coord >= depthSample) ? 1.0F : ambient; + return (coord >= depthSample) ? 1.0F : 0.0F; case GL_LESS: - return (coord < depthSample) ? 1.0F : ambient; + return (coord < depthSample) ? 1.0F : 0.0F; case GL_GREATER: - return (coord > depthSample) ? 1.0F : ambient; + return (coord > depthSample) ? 1.0F : 0.0F; case GL_EQUAL: - return (coord == depthSample) ? 1.0F : ambient; + return (coord == depthSample) ? 1.0F : 0.0F; case GL_NOTEQUAL: - return (coord != depthSample) ? 1.0F : ambient; + return (coord != depthSample) ? 1.0F : 0.0F; case GL_ALWAYS: return 1.0F; case GL_NEVER: - return ambient; + return 0.0F; case GL_NONE: return depthSample; default: _mesa_problem(NULL, "Bad compare func in shadow_compare"); - return ambient; + return 0.0F; } } @@ -3384,9 +3383,9 @@ static inline GLfloat shadow_compare4(GLenum function, GLfloat coord, GLfloat depth00, GLfloat depth01, GLfloat depth10, GLfloat depth11, - GLfloat ambient, GLfloat wi, GLfloat wj) + GLfloat wi, GLfloat wj) { - const GLfloat d = (1.0F - (GLfloat) ambient) * 0.25F; + const GLfloat d = 0.25F; GLfloat luminance = 1.0F; switch (function) { @@ -3429,13 +3428,13 @@ shadow_compare4(GLenum function, GLfloat coord, case GL_ALWAYS: return 1.0F; case GL_NEVER: - return ambient; + return 0.0F; case GL_NONE: /* ordinary bilinear filtering */ return lerp_2d(wi, wj, depth00, depth10, depth01, depth11); default: _mesa_problem(NULL, "Bad compare func in sample_compare4"); - return ambient; + return 0.0F; } } @@ -3483,7 +3482,6 @@ sample_depth_texture( struct gl_context *ctx, const GLint depth = img->Depth; const GLuint compare_coord = (tObj->Target == GL_TEXTURE_2D_ARRAY_EXT) ? 3 : 2; - GLfloat ambient; GLenum function; GLfloat result; @@ -3497,8 +3495,6 @@ sample_depth_texture( struct gl_context *ctx, tObj->Target == GL_TEXTURE_2D_ARRAY_EXT || tObj->Target == GL_TEXTURE_CUBE_MAP); - ambient = samp->CompareFailValue; - /* XXXX if samp->MinFilter != samp->MagFilter, we're ignoring lambda */ function = (samp->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) ? @@ -3522,7 +3518,7 @@ sample_depth_texture( struct gl_context *ctx, depthRef = CLAMP(texcoords[i][compare_coord], 0.0F, 1.0F); - result = shadow_compare(function, depthRef, depthSample, ambient); + result = shadow_compare(function, depthRef, depthSample); switch (tObj->DepthMode) { case GL_LUMINANCE: @@ -3617,7 +3613,7 @@ sample_depth_texture( struct gl_context *ctx, result = shadow_compare4(function, depthRef, depth00, depth01, depth10, depth11, - ambient, wi, wj); + wi, wj); switch (tObj->DepthMode) { case GL_LUMINANCE: