Remove the ATI_envmap_bumpmap extension
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 27 Jun 2014 16:40:10 +0000 (09:40 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 30 Jun 2014 19:02:25 +0000 (12:02 -0700)
As far as I can tell, the Intel mesa driver is the only driver in the world
still supporting this legacy extension.  If someone wants to do bump
mapping, they can use shaders.

Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> [v1]
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> [v2]
Reviewed-by: Ian Romanick <idr@freedesktop.org> [v3]
32 files changed:
docs/relnotes/10.3.html
src/glsl/builtin_variables.cpp
src/mapi/glapi/gen/gl_API.xml
src/mapi/glapi/tests/check_table.cpp
src/mesa/drivers/dri/i965/brw_surface_formats.c
src/mesa/drivers/dri/i965/intel_extensions.c
src/mesa/main/context.c
src/mesa/main/dlist.c
src/mesa/main/extensions.c
src/mesa/main/ff_fragment_shader.cpp
src/mesa/main/format_pack.c
src/mesa/main/format_unpack.c
src/mesa/main/formats.c
src/mesa/main/formats.h
src/mesa/main/glformats.c
src/mesa/main/glformats.h
src/mesa/main/mtypes.h
src/mesa/main/pack.c
src/mesa/main/pack.h
src/mesa/main/tests/enum_strings.cpp
src/mesa/main/texenv.c
src/mesa/main/texenv.h
src/mesa/main/texformat.c
src/mesa/main/texgetimage.c
src/mesa/main/teximage.c
src/mesa/main/texstate.c
src/mesa/main/texstore.c
src/mesa/program/prog_statevars.c
src/mesa/program/prog_statevars.h
src/mesa/swrast/s_texcombine.c
src/mesa/swrast/s_texfetch.c
src/mesa/swrast/s_texfetch_tmp.h

index 8a90b18067d0b948302e6be1532dff855607237d..47d2c5fff863002a6e8ef6ea1a3ff0742fba783d 100644 (file)
@@ -64,6 +64,7 @@ TBD.
 <h2>Changes</h2>
 
 <ul>
+<li>Removed support for the GL_ATI_envmap_bumpmap extension</li>
 </ul>
 
 </div>
index b9c69d23c7cce11b618d4b2508b2ec036d91029b..9f9571619ba13b6958ad2165ce85343c5f23de7f 100644 (file)
@@ -160,14 +160,6 @@ static const struct gl_builtin_uniform_element gl_NormalScale_elements[] = {
    {NULL, {STATE_NORMAL_SCALE}, SWIZZLE_XXXX},
 };
 
-static const struct gl_builtin_uniform_element gl_BumpRotMatrix0MESA_elements[] = {
-   {NULL, {STATE_INTERNAL, STATE_ROT_MATRIX_0}, SWIZZLE_XYZW},
-};
-
-static const struct gl_builtin_uniform_element gl_BumpRotMatrix1MESA_elements[] = {
-   {NULL, {STATE_INTERNAL, STATE_ROT_MATRIX_1}, SWIZZLE_XYZW},
-};
-
 static const struct gl_builtin_uniform_element gl_FogParamsOptimizedMESA_elements[] = {
    {NULL, {STATE_INTERNAL, STATE_FOG_PARAMS_OPTIMIZED}, SWIZZLE_XYZW},
 };
@@ -284,8 +276,6 @@ static const struct gl_builtin_uniform_desc _mesa_builtin_uniform_desc[] = {
    STATEVAR(gl_NormalMatrix),
    STATEVAR(gl_NormalScale),
 
-   STATEVAR(gl_BumpRotMatrix0MESA),
-   STATEVAR(gl_BumpRotMatrix1MESA),
    STATEVAR(gl_FogParamsOptimizedMESA),
    STATEVAR(gl_CurrentAttribVertMESA),
    STATEVAR(gl_CurrentAttribFragMESA),
@@ -761,8 +751,6 @@ builtin_variable_generator::generate_uniforms()
       add_uniform(mat4_t, "gl_ModelViewProjectionMatrixInverseTranspose");
       add_uniform(float_t, "gl_NormalScale");
       add_uniform(type("gl_LightModelParameters"), "gl_LightModel");
-      add_uniform(vec2_t, "gl_BumpRotMatrix0MESA");
-      add_uniform(vec2_t, "gl_BumpRotMatrix1MESA");
       add_uniform(vec4_t, "gl_FogParamsOptimizedMESA");
 
       const glsl_type *const mat4_array_type =
index 0a486f0705f678404bb776f7d39951ad31fffdeb..882e66e0bbd0a5cc07550f91e164fca79b0db8d6 100644 (file)
         <size name="GetTexEnviv" mode="get"/>
         <size name="GetTexEnvfv" mode="get"/>
     </enum>
-    <function name="TexBumpParameterfvATI" offset="assign" deprecated="3.1">
+    <function name="TexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="const GLfloat *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="TexBumpParameterivATI" offset="assign" deprecated="3.1">
+    <function name="TexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="const GLint *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="GetTexBumpParameterfvATI" offset="assign" deprecated="3.1">
+    <function name="GetTexBumpParameterfvATI" offset="assign" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="GLfloat *" variable_param="pname"/>
       <glx ignore="true"/>
     </function>
-    <function name="GetTexBumpParameterivATI" offset="assign" deprecated="3.1">
+    <function name="GetTexBumpParameterivATI" offset="assign" deprecated="3.1" exec="skip">
       <param name="pname" type="GLenum"/>
       <param name="param" type="GLint *" variable_param="pname"/>
       <glx ignore="true"/>
index 89d9073a4ec8db7814a97342795fff7ef021a26b..cd03722b2f53023915a9e4ef29054bb04b647908 100644 (file)
@@ -1382,10 +1382,6 @@ const struct name_offset known_dispatch[] = {
    { "glVertexAttribs4fvNV", _O(VertexAttribs4fvNV) },
    { "glVertexAttribs4svNV", _O(VertexAttribs4svNV) },
    { "glVertexAttribs4ubvNV", _O(VertexAttribs4ubvNV) },
-   { "glGetTexBumpParameterfvATI", _O(GetTexBumpParameterfvATI) },
-   { "glGetTexBumpParameterivATI", _O(GetTexBumpParameterivATI) },
-   { "glTexBumpParameterfvATI", _O(TexBumpParameterfvATI) },
-   { "glTexBumpParameterivATI", _O(TexBumpParameterivATI) },
    { "glAlphaFragmentOp1ATI", _O(AlphaFragmentOp1ATI) },
    { "glAlphaFragmentOp2ATI", _O(AlphaFragmentOp2ATI) },
    { "glAlphaFragmentOp3ATI", _O(AlphaFragmentOp3ATI) },
index 5907dd9419a73ee19e028790ab4de9f49c53980b..780581bf29ed0f2f06d3166295c38ae4c8accef1 100644 (file)
@@ -454,7 +454,6 @@ brw_format_for_mesa_format(mesa_format mesa_format)
       [MESA_FORMAT_RGB_UINT32] = BRW_SURFACEFORMAT_R32G32B32_UINT,
       [MESA_FORMAT_RGBA_UINT32] = BRW_SURFACEFORMAT_R32G32B32A32_UINT,
 
-      [MESA_FORMAT_DUDV8] = BRW_SURFACEFORMAT_R8G8_SNORM,
       [MESA_FORMAT_R_SNORM8] = BRW_SURFACEFORMAT_R8_SNORM,
       [MESA_FORMAT_R8G8_SNORM] = BRW_SURFACEFORMAT_R8G8_SNORM,
       [MESA_FORMAT_X8B8G8R8_SNORM] = 0,
index d1df1977786d7b278764b79da6e93ee2560badfa..281d6c4b3f9315795ba35f2701dab8f8940ef7b6 100644 (file)
@@ -227,7 +227,6 @@ intelInitExtensions(struct gl_context *ctx)
    ctx->Extensions.EXT_vertex_array_bgra = true;
    ctx->Extensions.AMD_seamless_cubemap_per_texture = true;
    ctx->Extensions.APPLE_object_purgeable = true;
-   ctx->Extensions.ATI_envmap_bumpmap = true;
    ctx->Extensions.ATI_separate_stencil = true;
    ctx->Extensions.ATI_texture_env_combine3 = true;
    ctx->Extensions.MESA_pack_invert = true;
index 244e63edec6dfcbcb9798090573896d0c316221a..b08215950b8ffeff7ff8619fa51f170eabc1be6a 100644 (file)
@@ -656,9 +656,6 @@ _mesa_init_constants(struct gl_context *ctx)
    /* GL_ARB_sync */
    ctx->Const.MaxServerWaitTimeout = 0x1fff7fffffffULL;
 
-   /* GL_ATI_envmap_bumpmap */
-   ctx->Const.SupportedBumpUnits = SUPPORTED_ATI_BUMP_UNITS;
-
    /* GL_EXT_provoking_vertex */
    ctx->Const.QuadsFollowProvokingVertexConvention = GL_TRUE;
 
index 5874b99f0722bdfe04b13504f72b275da7233ac2..5c7160d0540f72be5ed14c0bcb18971078d0b747 100644 (file)
@@ -317,8 +317,6 @@ typedef enum
    /* GL_ARB_draw_buffers */
    OPCODE_DRAW_BUFFERS_ARB,
    /* GL_ATI_fragment_shader */
-   OPCODE_TEX_BUMP_PARAMETER_ATI,
-   /* GL_ATI_fragment_shader */
    OPCODE_BIND_FRAGMENT_SHADER_ATI,
    OPCODE_SET_FRAGMENT_SHADER_CONSTANTS_ATI,
    /* OpenGL 2.0 */
@@ -4976,36 +4974,6 @@ save_DrawBuffersARB(GLsizei count, const GLenum * buffers)
    }
 }
 
-static void GLAPIENTRY
-save_TexBumpParameterfvATI(GLenum pname, const GLfloat *param)
-{
-   GET_CURRENT_CONTEXT(ctx);
-   Node *n;
-
-   n = alloc_instruction(ctx, OPCODE_TEX_BUMP_PARAMETER_ATI, 5);
-   if (n) {
-      n[1].ui = pname;
-      n[2].f = param[0];
-      n[3].f = param[1];
-      n[4].f = param[2];
-      n[5].f = param[3];
-   }
-   if (ctx->ExecuteFlag) {
-      CALL_TexBumpParameterfvATI(ctx->Exec, (pname, param));
-   }
-}
-
-static void GLAPIENTRY
-save_TexBumpParameterivATI(GLenum pname, const GLint *param)
-{
-   GLfloat p[4];
-   p[0] = INT_TO_FLOAT(param[0]);
-   p[1] = INT_TO_FLOAT(param[1]);
-   p[2] = INT_TO_FLOAT(param[2]);
-   p[3] = INT_TO_FLOAT(param[3]);
-   save_TexBumpParameterfvATI(pname, p);
-}
-
 static void GLAPIENTRY
 save_BindFragmentShaderATI(GLuint id)
 {
@@ -8653,16 +8621,6 @@ execute_list(struct gl_context *ctx, GLuint list)
             CALL_ClampColor(ctx->Exec, (n[1].e, n[2].e));
             break;
 
-         case OPCODE_TEX_BUMP_PARAMETER_ATI:
-            {
-               GLfloat values[4];
-               GLuint i, pname = n[1].ui;
-
-               for (i = 0; i < 4; i++)
-                  values[i] = n[1 + i].f;
-               CALL_TexBumpParameterfvATI(ctx->Exec, (pname, values));
-            }
-            break;
          case OPCODE_BIND_FRAGMENT_SHADER_ATI:
             CALL_BindFragmentShaderATI(ctx->Exec, (n[1].i));
             break;
@@ -9488,10 +9446,6 @@ _mesa_initialize_save_table(const struct gl_context *ctx)
     */
    SET_BindProgramARB(table, save_BindProgramNV);
 
-   /* 244. GL_ATI_envmap_bumpmap */
-   SET_TexBumpParameterivATI(table, save_TexBumpParameterivATI);
-   SET_TexBumpParameterfvATI(table, save_TexBumpParameterfvATI);
-
    /* 245. GL_ATI_fragment_shader */
    SET_BindFragmentShaderATI(table, save_BindFragmentShaderATI);
    SET_SetFragmentShaderConstantATI(table, save_SetFragmentShaderConstantATI);
index 522f5adb3b9c50efc2a78ff91ee74cd981794764..6f2536170df2ed37a1f1f3d3f9c86d2b9bcba8e9 100644 (file)
@@ -329,7 +329,6 @@ static const struct extension extension_table[] = {
    { "GL_APPLE_vertex_array_object",               o(dummy_true),                              GLL,            2002 },
    { "GL_ATI_blend_equation_separate",             o(EXT_blend_equation_separate),             GL,             2003 },
    { "GL_ATI_draw_buffers",                        o(dummy_true),                              GLL,            2002 },
-   { "GL_ATI_envmap_bumpmap",                      o(ATI_envmap_bumpmap),                      GLL,            2001 },
    { "GL_ATI_fragment_shader",                     o(ATI_fragment_shader),                     GLL,            2001 },
    { "GL_ATI_separate_stencil",                    o(ATI_separate_stencil),                    GLL,            2006 },
    { "GL_ATI_texture_compression_3dc",             o(ATI_texture_compression_3dc),             GL,             2004 },
@@ -462,7 +461,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
    ctx->Extensions.ARB_vertex_shader = GL_TRUE;
    ctx->Extensions.ARB_sync = GL_TRUE;
    ctx->Extensions.APPLE_object_purgeable = GL_TRUE;
-   ctx->Extensions.ATI_envmap_bumpmap = GL_TRUE;
    ctx->Extensions.ATI_fragment_shader = GL_TRUE;
    ctx->Extensions.ATI_texture_compression_3dc = GL_TRUE;
    ctx->Extensions.ATI_texture_env_combine3 = GL_TRUE;
index 211583738c8bb69e3c0026a0db907a2f11eb092c..2c4f3d7df02d3910187fdd774717e8a034c9266d 100644 (file)
@@ -220,7 +220,6 @@ static GLuint translate_source( GLenum src )
 #define MODE_MODULATE_SUBTRACT_ATI      12  /* r = a0 * a2 - a1 */
 #define MODE_ADD_PRODUCTS               13  /* r = a0 * a1 + a2 * a3 */
 #define MODE_ADD_PRODUCTS_SIGNED        14  /* r = a0 * a1 + a2 * a3 - 0.5 */
-#define MODE_BUMP_ENVMAP_ATI            15  /* special */
 #define MODE_UNKNOWN                    16
 
 /**
@@ -250,7 +249,6 @@ static GLuint translate_mode( GLenum envMode, GLenum mode )
    case GL_MODULATE_ADD_ATI: return MODE_MODULATE_ADD_ATI;
    case GL_MODULATE_SIGNED_ADD_ATI: return MODE_MODULATE_SIGNED_ADD_ATI;
    case GL_MODULATE_SUBTRACT_ATI: return MODE_MODULATE_SUBTRACT_ATI;
-   case GL_BUMP_ENVMAP_ATI: return MODE_BUMP_ENVMAP_ATI;
    default:
       assert(0);
       return MODE_UNKNOWN;
@@ -283,7 +281,6 @@ need_saturate( GLuint mode )
    case MODE_MODULATE_SUBTRACT_ATI:
    case MODE_ADD_PRODUCTS:
    case MODE_ADD_PRODUCTS_SIGNED:
-   case MODE_BUMP_ENVMAP_ATI:
       return GL_TRUE;
    default:
       assert(0);
@@ -455,16 +452,6 @@ static GLuint make_state_key( struct gl_context *ctx,  struct state_key *key )
          key->unit[i].OptRGB[j].Source = translate_source(comb->SourceRGB[j]);
          key->unit[i].OptA[j].Source = translate_source(comb->SourceA[j]);
       }
-
-      if (key->unit[i].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
-         /* requires some special translation */
-         key->unit[i].NumArgsRGB = 2;
-         key->unit[i].ScaleShiftRGB = 0;
-         key->unit[i].OptRGB[0].Operand = OPR_SRC_COLOR;
-         key->unit[i].OptRGB[0].Source = SRC_TEXTURE;
-         key->unit[i].OptRGB[1].Operand = OPR_SRC_COLOR;
-         key->unit[i].OptRGB[1].Source = texUnit->BumpTarget - GL_TEXTURE0 + SRC_TEXTURE0;
-       }
    }
 
    /* _NEW_LIGHT | _NEW_FOG */
@@ -753,11 +740,6 @@ emit_combine(texenv_fragment_program *p,
    case MODE_ADD_PRODUCTS_SIGNED:
       return add(add(mul(src[0], src[1]), mul(src[2], src[3])),
                 new(p->mem_ctx) ir_constant(-0.5f));
-
-   case MODE_BUMP_ENVMAP_ATI:
-      /* special - not handled here */
-      assert(0);
-      return src[0];
    default: 
       assert(0);
       return src[0];
@@ -777,10 +759,6 @@ emit_texenv(texenv_fragment_program *p, GLuint unit)
    if (!key->unit[unit].enabled) {
       return get_source(p, SRC_PREVIOUS, 0);
    }
-   if (key->unit[unit].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
-      /* this isn't really a env stage delivering a color and handled elsewhere */
-      return get_source(p, SRC_PREVIOUS, 0);
-   }
    
    switch (key->unit[unit].ModeRGB) {
    case MODE_DOT3_RGB_EXT:
@@ -1074,56 +1052,6 @@ load_texunit_sources( texenv_fragment_program *p, GLuint unit )
    return GL_TRUE;
 }
 
-/**
- * Generate instructions for loading bump map textures.
- */
-static void
-load_texunit_bumpmap( texenv_fragment_program *p, GLuint unit )
-{
-   const struct state_key *key = p->state;
-   GLuint bumpedUnitNr = key->unit[unit].OptRGB[1].Source - SRC_TEXTURE0;
-   ir_rvalue *bump;
-   ir_rvalue *texcoord;
-   ir_variable *rot_mat_0, *rot_mat_1;
-
-   rot_mat_0 = p->shader->symbols->get_variable("gl_BumpRotMatrix0MESA");
-   assert(rot_mat_0);
-   rot_mat_1 = p->shader->symbols->get_variable("gl_BumpRotMatrix1MESA");
-   assert(rot_mat_1);
-
-   ir_variable *tc_array = p->shader->symbols->get_variable("gl_TexCoord");
-   assert(tc_array);
-   texcoord = new(p->mem_ctx) ir_dereference_variable(tc_array);
-   ir_rvalue *index = new(p->mem_ctx) ir_constant(bumpedUnitNr);
-   texcoord = new(p->mem_ctx) ir_dereference_array(texcoord, index);
-   tc_array->data.max_array_access = MAX2(tc_array->data.max_array_access, unit);
-
-   load_texenv_source( p, unit + SRC_TEXTURE0, unit );
-
-   /* Apply rot matrix and add coords to be available in next phase.
-    * dest = Arg1 + (Arg0.xx * rotMat0) + (Arg0.yy * rotMat1)
-    * note only 2 coords are affected the rest are left unchanged (mul by 0)
-    */
-   ir_rvalue *bump_x, *bump_y;
-
-   texcoord = smear(p, texcoord);
-
-   /* bump_texcoord = texcoord */
-   ir_variable *bumped = p->make_temp(texcoord->type, "bump_texcoord");
-   p->emit(bumped);
-   p->emit(assign(bumped, texcoord));
-
-   /* bump_texcoord.xy += arg0.x * rotmat0 + arg0.y * rotmat1 */
-   bump = get_source(p, key->unit[unit].OptRGB[0].Source, unit);
-   bump_x = mul(swizzle_x(bump), rot_mat_0);
-   bump_y = mul(swizzle_y(bump->clone(p->mem_ctx, NULL)), rot_mat_1);
-
-   p->emit(assign(bumped, add(swizzle_xy(bumped), add(bump_x, bump_y)),
-                 WRITEMASK_XY));
-
-   p->texcoord_tex[bumpedUnitNr] = bumped;
-}
-
 /**
  * Applies the fog calculations.
  *
@@ -1214,14 +1142,6 @@ emit_instructions(texenv_fragment_program *p)
    GLuint unit;
 
    if (key->enabled_units) {
-      /* Zeroth pass - bump map textures first */
-      for (unit = 0; unit < key->nr_enabled_units; unit++) {
-        if (key->unit[unit].enabled &&
-             key->unit[unit].ModeRGB == MODE_BUMP_ENVMAP_ATI) {
-           load_texunit_bumpmap(p, unit);
-        }
-      }
-
       /* First pass - to support texture_env_crossbar, first identify
        * all referenced texture sources and emit texld instructions
        * for each:
index e3cbfff7e12374f2b5fe0f0fb8d88f0424b2fb37..6b28592a62900601f06766eb3c1ff684e867af9b 100644 (file)
@@ -1403,27 +1403,6 @@ pack_float_RG_FLOAT16(const GLfloat src[4], void *dst)
 }
 
 
-/* MESA_FORMAT_DUDV8 */
-
-static void
-pack_ubyte_DUDV8(const GLubyte src[4], void *dst)
-{
-   /* XXX is this ever used? */
-   GLushort *d = ((GLushort *) dst);
-   *d = PACK_COLOR_88(src[0], src[1]);
-}
-
-static void
-pack_float_DUDV8(const GLfloat src[4], void *dst)
-{
-   GLushort *d = ((GLushort *) dst);
-   GLbyte du, dv;
-   du = FLOAT_TO_BYTE(CLAMP(src[0], 0.0F, 1.0F));
-   dv = FLOAT_TO_BYTE(CLAMP(src[1], 0.0F, 1.0F));
-   *d = PACK_COLOR_88(du, dv);
-}
-
-
 /* MESA_FORMAT_RGBA_UNORM16 */
 
 static void
@@ -2027,8 +2006,6 @@ _mesa_get_pack_ubyte_rgba_function(mesa_format format)
       table[MESA_FORMAT_RGBA_UINT16] = NULL; /* pack_ubyte_RGBA_UINT16 */
       table[MESA_FORMAT_RGBA_UINT32] = NULL; /* pack_ubyte_RGBA_UINT32 */
 
-      table[MESA_FORMAT_DUDV8] = pack_ubyte_DUDV8;
-
       table[MESA_FORMAT_RGBA_UNORM16] = pack_ubyte_RGBA_16;
 
       /* n/a */
@@ -2194,8 +2171,6 @@ _mesa_get_pack_float_rgba_function(mesa_format format)
       table[MESA_FORMAT_RGBA_UINT16] = NULL;
       table[MESA_FORMAT_RGBA_UINT32] = NULL;
 
-      table[MESA_FORMAT_DUDV8] = pack_float_DUDV8;
-
       table[MESA_FORMAT_RGBA_UNORM16] = pack_float_RGBA_16;
 
       table[MESA_FORMAT_R_SNORM8] = pack_float_R_SNORM8;
index 9cc8f4dbac81eb52888c9c82792ca5553c76c152..ad5ea4cd1d10c605b343cb0b7303dcc03fd6177a 100644 (file)
@@ -1707,19 +1707,6 @@ unpack_RGBA_UINT32(const void *src, GLfloat dst[][4], GLuint n)
    }
 }
 
-static void
-unpack_DUDV8(const void *src, GLfloat dst[][4], GLuint n)
-{
-   const GLbyte *s = (const GLbyte *) src;
-   GLuint i;
-   for (i = 0; i < n; i++) {
-      dst[i][RCOMP] = BYTE_TO_FLOAT(s[i*2+0]);
-      dst[i][GCOMP] = BYTE_TO_FLOAT(s[i*2+1]);
-      dst[i][BCOMP] = 0;
-      dst[i][ACOMP] = 0;
-   }
-}
-
 static void
 unpack_R_SNORM8(const void *src, GLfloat dst[][4], GLuint n)
 {
@@ -2486,7 +2473,6 @@ get_unpack_rgba_function(mesa_format format)
       table[MESA_FORMAT_RGB_UINT32] = unpack_RGB_UINT32;
       table[MESA_FORMAT_RGBA_UINT32] = unpack_RGBA_UINT32;
 
-      table[MESA_FORMAT_DUDV8] = unpack_DUDV8;
       table[MESA_FORMAT_R_SNORM8] = unpack_R_SNORM8;
       table[MESA_FORMAT_R8G8_SNORM] = unpack_R8G8_SNORM;
       table[MESA_FORMAT_X8B8G8R8_SNORM] = unpack_X8B8G8R8_SNORM;
index 5c670115ef7781d8acd2f191c37853348d6cfe18..1f20a9a6ad1f17c12965771b6a316949e97834c0 100644 (file)
@@ -43,7 +43,7 @@ struct gl_format_info
    /**
     * Base format is one of GL_RED, GL_RG, GL_RGB, GL_RGBA, GL_ALPHA,
     * GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_YCBCR_MESA,
-    * GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL, GL_DUDV_ATI.
+    * GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, GL_DEPTH_STENCIL.
     */
    GLenum BaseFormat;
 
@@ -414,15 +414,6 @@ static struct gl_format_info format_info[MESA_FORMAT_COUNT] =
    },
 
    /* Array unorm formats */
-   {
-      MESA_FORMAT_DUDV8,
-      "MESA_FORMAT_DUDV8",
-      GL_DUDV_ATI,
-      GL_SIGNED_NORMALIZED,
-      0, 0, 0, 0,
-      0, 0, 0, 0, 0,
-      1, 1, 2
-   },
    {
       MESA_FORMAT_A_UNORM8,        /* Name */
       "MESA_FORMAT_A_UNORM8",      /* StrName */
@@ -2576,11 +2567,6 @@ _mesa_format_to_type_and_comps(mesa_format format,
       *comps = 1;
       return;
 
-   case MESA_FORMAT_DUDV8:
-      *datatype = GL_BYTE;
-      *comps = 2;
-      return;
-
    case MESA_FORMAT_R_SNORM8:
    case MESA_FORMAT_A_SNORM8:
    case MESA_FORMAT_L_SNORM8:
@@ -3387,10 +3373,6 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format,
    case MESA_FORMAT_RGBA_UINT32:
       return format == GL_RGBA_INTEGER && type == GL_UNSIGNED_INT && !swapBytes;
 
-   case MESA_FORMAT_DUDV8:
-      return (format == GL_DU8DV8_ATI || format == GL_DUDV_ATI) &&
-             type == GL_BYTE && littleEndian && !swapBytes;
-
    case MESA_FORMAT_R_SNORM8:
       return format == GL_RED && type == GL_BYTE;
    case MESA_FORMAT_R8G8_SNORM:
index 185010e029cea0fdc8c9e270261aa27c70a364ca..dc50bc83094951f3df198a1a2d0c15f88217ebc3 100644 (file)
@@ -211,8 +211,6 @@ typedef enum
    MESA_FORMAT_YCBCR,            /*                     YYYY YYYY UorV UorV */
    MESA_FORMAT_YCBCR_REV,        /*                     UorV UorV YYYY YYYY */
 
-   MESA_FORMAT_DUDV8,            /*                     DUDU DUDU DVDV DVDV */
-
    /* Array unorm formats */
    MESA_FORMAT_A_UNORM8,      /* ubyte[i] = A */
    MESA_FORMAT_A_UNORM16,     /* ushort[i] = A */
index aee336e1222dcc2aefe907b389a939a2dc5da4d9..304d45298e5d692d0bff0cd623d95bd42faf7195 100644 (file)
@@ -189,8 +189,6 @@ _mesa_components_in_format(GLenum format)
    case GL_RG:
    case GL_YCBCR_MESA:
    case GL_DEPTH_STENCIL_EXT:
-   case GL_DUDV_ATI:
-   case GL_DU8DV8_ATI:
    case GL_RG_INTEGER:
       return 2;
 
@@ -816,22 +814,6 @@ _mesa_is_depth_or_stencil_format(GLenum format)
 }
 
 
-/**
- * Test if the given image format is a dudv format.
- */
-GLboolean
-_mesa_is_dudv_format(GLenum format)
-{
-   switch (format) {
-      case GL_DUDV_ATI:
-      case GL_DU8DV8_ATI:
-         return GL_TRUE;
-      default:
-         return GL_FALSE;
-   }
-}
-
-
 /**
  * Test if an image format is a supported compressed format.
  * \param format the internal format token provided by the user.
@@ -1446,23 +1428,6 @@ _mesa_error_check_format_and_type(const struct gl_context *ctx,
          else
             return GL_INVALID_ENUM;
 
-      case GL_DUDV_ATI:
-      case GL_DU8DV8_ATI:
-         if (!ctx->Extensions.ATI_envmap_bumpmap)
-            return GL_INVALID_ENUM;
-         switch (type) {
-            case GL_BYTE:
-            case GL_UNSIGNED_BYTE:
-            case GL_SHORT:
-            case GL_UNSIGNED_SHORT:
-            case GL_INT:
-            case GL_UNSIGNED_INT:
-            case GL_FLOAT:
-               return GL_NO_ERROR;
-            default:
-               return GL_INVALID_ENUM;
-         }
-
       /* integer-valued formats */
       case GL_RED_INTEGER_EXT:
       case GL_GREEN_INTEGER_EXT:
index ccbce2dabf96f04386229d0bf0d2e3e60b48b6c3..d64114ec9b0ba1df590225ecb96255d2cdace9aa 100644 (file)
@@ -83,9 +83,6 @@ _mesa_is_depthstencil_format(GLenum format);
 extern GLboolean
 _mesa_is_depth_or_stencil_format(GLenum format);
 
-extern GLboolean
-_mesa_is_dudv_format(GLenum format);
-
 extern GLboolean
 _mesa_is_compressed_format(struct gl_context *ctx, GLenum format);
 
index de4d7f88f2738c014415767f73eb3b31237de0ce..eaf37761013e14c863902973b0fa7410c230e203 100644 (file)
@@ -1342,8 +1342,6 @@ struct gl_texture_unit
    GLbitfield _GenFlags;       /**< Bitwise-OR of Gen[STRQ]._ModeBit */
 
    GLfloat LodBias;            /**< for biasing mipmap levels */
-   GLenum BumpTarget;
-   GLfloat RotMatrix[4]; /* 2x2 matrix */
 
    /** Current sampler object (GL_ARB_sampler_objects) */
    struct gl_sampler_object *Sampler;
@@ -3362,9 +3360,6 @@ struct gl_constants
     */
    GLuint UniformBooleanTrue;
 
-   /** Which texture units support GL_ATI_envmap_bumpmap as targets */
-   GLbitfield SupportedBumpUnits;
-
    /**
     * Maximum amount of time, measured in nanseconds, that the server can wait.
     */
@@ -3622,7 +3617,6 @@ struct gl_extensions
    GLboolean AMD_seamless_cubemap_per_texture;
    GLboolean AMD_vertex_shader_layer;
    GLboolean APPLE_object_purgeable;
-   GLboolean ATI_envmap_bumpmap;
    GLboolean ATI_texture_compression_3dc;
    GLboolean ATI_texture_mirror_once;
    GLboolean ATI_texture_env_combine3;
index 1df656832b83a9fc7d68c8a538d918e113fbed80..5ebaaf6e53cd8fe34c8b7245241f5f66217294ab 100644 (file)
@@ -420,11 +420,6 @@ get_component_indexes(GLenum format,
       *blueIndex = 1;
       *alphaIndex = 0;
       break;
-   case GL_DU8DV8_ATI:
-   case GL_DUDV_ATI:
-      *redIndex = 0;
-      *greenIndex = 1;
-      break;
    default:
       assert(0 && "bad format in get_component_indexes()");
    }
@@ -1471,13 +1466,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                                          rgba[i][BCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_UBYTE(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_UBYTE(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -1628,13 +1616,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                                         rgba[i][BCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -1785,13 +1766,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                                           rgba[i][BCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_USHORT(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_USHORT(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -1942,13 +1916,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                                          rgba[i][BCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -2099,13 +2066,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                                         rgba[i][BCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_UINT(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_UINT(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -2185,13 +2145,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                      dst[i*4+3] = FLOAT_TO_INT(rgba[i][RCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_INT(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_INT(rgba[i][GCOMP]);
-                  }
-                  break;
                case GL_RED_INTEGER_EXT:
                   for (i=0;i<n;i++) {
                      dst[i] = (GLint) rgba[i][RCOMP];
@@ -2342,13 +2295,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                      dst[i*4+3] = rgba[i][RCOMP];
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = rgba[i][RCOMP];
-                     dst[i*2+1] = rgba[i][GCOMP];
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -2428,13 +2374,6 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                      dst[i*4+3] = _mesa_float_to_half(rgba[i][RCOMP]);
                   }
                   break;
-               case GL_DUDV_ATI:
-               case GL_DU8DV8_ATI:
-                  for (i=0;i<n;i++) {
-                     dst[i*2+0] = _mesa_float_to_half(rgba[i][RCOMP]);
-                     dst[i*2+1] = _mesa_float_to_half(rgba[i][GCOMP]);
-                  }
-                  break;
                default:
                   _mesa_problem(ctx, "bad format in _mesa_pack_rgba_span\n");
             }
@@ -3095,13 +3034,6 @@ get_component_mapping(GLenum format,
       *bDst = 1;
       *aDst = 0;
       break;
-   case GL_DU8DV8_ATI:
-   case GL_DUDV_ATI:
-      *rSrc = 0;
-      *gSrc = 1;
-      *bSrc = -1;
-      *aSrc = -1;
-      break;
    default:
       _mesa_problem(NULL, "bad srcFormat %s in get_component_mapping",
                     _mesa_lookup_enum_by_nr(format));
@@ -3151,8 +3083,6 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
           srcFormat == GL_RGBA ||
           srcFormat == GL_BGRA ||
           srcFormat == GL_ABGR_EXT ||
-          srcFormat == GL_DU8DV8_ATI ||
-          srcFormat == GL_DUDV_ATI ||
           srcFormat == GL_RED_INTEGER_EXT ||
           srcFormat == GL_GREEN_INTEGER_EXT ||
           srcFormat == GL_BLUE_INTEGER_EXT ||
@@ -3768,8 +3698,6 @@ extract_uint_rgba(GLuint n, GLuint rgba[][4],
           srcFormat == GL_RGBA ||
           srcFormat == GL_BGRA ||
           srcFormat == GL_ABGR_EXT ||
-          srcFormat == GL_DU8DV8_ATI ||
-          srcFormat == GL_DUDV_ATI ||
           srcFormat == GL_RED_INTEGER_EXT ||
           srcFormat == GL_RG_INTEGER ||
           srcFormat == GL_GREEN_INTEGER_EXT ||
@@ -4846,71 +4774,6 @@ _mesa_unpack_color_span_uint(struct gl_context *ctx,
 }
 
 
-
-/**
- * Similar to _mesa_unpack_color_span_float(), but for dudv data instead of rgba,
- * directly return GLbyte data, no transfer ops apply.
- */
-void
-_mesa_unpack_dudv_span_byte( struct gl_context *ctx,
-                             GLuint n, GLenum dstFormat, GLbyte dest[],
-                             GLenum srcFormat, GLenum srcType,
-                             const GLvoid *source,
-                             const struct gl_pixelstore_attrib *srcPacking,
-                             GLbitfield transferOps )
-{
-   ASSERT(dstFormat == GL_DUDV_ATI);
-   ASSERT(srcFormat == GL_DUDV_ATI ||
-         srcFormat == GL_DU8DV8_ATI);
-
-   ASSERT(srcType == GL_UNSIGNED_BYTE ||
-          srcType == GL_BYTE ||
-          srcType == GL_UNSIGNED_SHORT ||
-          srcType == GL_SHORT ||
-          srcType == GL_UNSIGNED_INT ||
-          srcType == GL_INT ||
-          srcType == GL_HALF_FLOAT_ARB ||
-          srcType == GL_FLOAT);
-
-   /* general solution */
-   {
-      GLint dstComponents;
-      GLbyte *dst = dest;
-      GLuint i;
-      GLfloat (*rgba)[4] = malloc(4 * n * sizeof(GLfloat));
-
-      if (!rgba) {
-         _mesa_error(ctx, GL_OUT_OF_MEMORY, "pixel unpacking");
-         return;
-      }
-
-      dstComponents = _mesa_components_in_format( dstFormat );
-      /* source & dest image formats should have been error checked by now */
-      assert(dstComponents > 0);
-
-      /*
-       * Extract image data and convert to RGBA floats
-       */
-      extract_float_rgba(n, rgba, srcFormat, srcType, source,
-                         srcPacking->SwapBytes);
-
-
-      /* Now determine which color channels we need to produce.
-       * And determine the dest index (offset) within each color tuple.
-       */
-
-      /* Now pack results in the requested dstFormat */
-      for (i = 0; i < n; i++) {
-         /* not sure - need clamp[-1,1] here? */
-         dst[0] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-         dst[1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-         dst += dstComponents;
-      }
-
-      free(rgba);
-   }
-}
-
 /*
  * Unpack a row of color index data from a client buffer according to
  * the pixel unpacking parameters.
index ad357bae123df936a5709e913d23befab722dad7..2173b652e7580e93cfc3ad15154b2048a689ef17 100644 (file)
@@ -82,14 +82,6 @@ _mesa_unpack_color_span_uint(struct gl_context *ctx,
                              const GLvoid *source,
                              const struct gl_pixelstore_attrib *srcPacking);
 
-extern void
-_mesa_unpack_dudv_span_byte(struct gl_context *ctx,
-                            GLuint n, GLenum dstFormat, GLbyte dest[],
-                            GLenum srcFormat, GLenum srcType,
-                            const GLvoid *source,
-                            const struct gl_pixelstore_attrib *srcPacking,
-                            GLbitfield transferOps);
-
 extern void
 _mesa_unpack_index_span(struct gl_context *ctx, GLuint n,
                         GLenum dstType, GLvoid *dest,
index 2913668aeb005a2b18d2d7a791c2bc815cb8e5d9..7bcb758b7d3b893ad175a2f15838997c8b13560f 100644 (file)
@@ -1116,14 +1116,6 @@ const struct enum_info everything[] = {
    { 0x8758, "GL_PACK_INVERT_MESA" },
    { 0x8764, "GL_BUFFER_SIZE" },
    { 0x8765, "GL_BUFFER_USAGE" },
-   { 0x8775, "GL_BUMP_ROT_MATRIX_ATI" },
-   { 0x8776, "GL_BUMP_ROT_MATRIX_SIZE_ATI" },
-   { 0x8777, "GL_BUMP_NUM_TEX_UNITS_ATI" },
-   { 0x8778, "GL_BUMP_TEX_UNITS_ATI" },
-   { 0x8779, "GL_DUDV_ATI" },
-   { 0x877A, "GL_DU8DV8_ATI" },
-   { 0x877B, "GL_BUMP_ENVMAP_ATI" },
-   { 0x877C, "GL_BUMP_TARGET_ATI" },
    { 0x87FE, "GL_NUM_PROGRAM_BINARY_FORMATS" },
    { 0x87FF, "GL_PROGRAM_BINARY_FORMATS" },
    { 0x8800, "GL_STENCIL_BACK_FUNC" },
index 4848208f574f8a283c6d8bd581c2eda8fbf0938f..ec521e6c6e599f25a67031b77d8406e78cd9e566 100644 (file)
@@ -138,11 +138,6 @@ set_combiner_mode(struct gl_context *ctx,
       legal = (ctx->API == API_OPENGL_COMPAT &&
                ctx->Extensions.ATI_texture_env_combine3);
       break;
-   case GL_BUMP_ENVMAP_ATI:
-      legal = (ctx->API == API_OPENGL_COMPAT &&
-               ctx->Extensions.ATI_envmap_bumpmap &&
-               pname == GL_COMBINE_RGB);
-      break;
    default:
       legal = GL_FALSE;
    }
@@ -440,26 +435,6 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
       case GL_ALPHA_SCALE:
          set_combiner_scale(ctx, texUnit, pname, param[0]);
         break;
-      case GL_BUMP_TARGET_ATI:
-         if (ctx->API != API_OPENGL_COMPAT || !ctx->Extensions.ATI_envmap_bumpmap) {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexEnv(pname=0x%x)", pname );
-           return;
-        }
-        if ((iparam0 < GL_TEXTURE0) ||
-             (iparam0 > GL_TEXTURE31)) {
-           /* spec doesn't say this but it seems logical */
-           _mesa_error( ctx, GL_INVALID_ENUM, "glTexEnv(param=0x%x)", iparam0);
-           return;
-        }
-        if (!((1 << (iparam0 - GL_TEXTURE0)) & ctx->Const.SupportedBumpUnits)) {
-           _mesa_error( ctx, GL_INVALID_VALUE, "glTexEnv(param=0x%x)", iparam0);
-           return;
-        }
-        else {
-           FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-           texUnit->BumpTarget = iparam0;
-        }
-        break;
       default:
         _mesa_error( ctx, GL_INVALID_ENUM, "glTexEnv(pname)" );
         return;
@@ -641,16 +616,6 @@ get_texenvi(struct gl_context *ctx, const struct gl_texture_unit *texUnit,
       return 1 << texUnit->Combine.ScaleShiftRGB;
    case GL_ALPHA_SCALE:
       return 1 << texUnit->Combine.ScaleShiftA;
-   case GL_BUMP_TARGET_ATI:
-      /* spec doesn't say so, but I think this should be queryable */
-      if (ctx->API == API_OPENGL_COMPAT && ctx->Extensions.ATI_envmap_bumpmap) {
-         return texUnit->BumpTarget;
-      }
-      else {
-         _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexEnvfv(pname)");
-      }
-      break;
-
    default:
       _mesa_error(ctx, GL_INVALID_ENUM, "glGetTexEnvfv(pname)");
       break;
@@ -784,166 +749,3 @@ _mesa_GetTexEnviv( GLenum target, GLenum pname, GLint *params )
    }
 }
 
-
-/**
- * Why does ATI_envmap_bumpmap require new entrypoints? Should just
- * reuse TexEnv ones...
- */
-void GLAPIENTRY
-_mesa_TexBumpParameterivATI( GLenum pname, const GLint *param )
-{
-   GLfloat p[4];
-   GET_CURRENT_CONTEXT(ctx);
-
-   if (!ctx->Extensions.ATI_envmap_bumpmap) {
-      /* This isn't an "official" error case, but let's tell the user
-       * that something's wrong.
-       */
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBumpParameterivATI");
-      return;
-   }
-
-   if (pname == GL_BUMP_ROT_MATRIX_ATI) {
-      /* hope that conversion is correct here */
-      p[0] = INT_TO_FLOAT( param[0] );
-      p[1] = INT_TO_FLOAT( param[1] );
-      p[2] = INT_TO_FLOAT( param[2] );
-      p[3] = INT_TO_FLOAT( param[3] );
-   }
-   else {
-      p[0] = (GLfloat) param[0];
-      p[1] = p[2] = p[3] = 0.0F;  /* init to zero, just to be safe */
-   }
-   _mesa_TexBumpParameterfvATI( pname, p );
-}
-
-
-void GLAPIENTRY
-_mesa_TexBumpParameterfvATI( GLenum pname, const GLfloat *param )
-{
-   struct gl_texture_unit *texUnit;
-   GET_CURRENT_CONTEXT(ctx);
-
-   if (!ctx->Extensions.ATI_envmap_bumpmap) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBumpParameterfvATI");
-      return;
-   }
-
-   texUnit = _mesa_get_current_tex_unit(ctx);
-
-   if (pname == GL_BUMP_ROT_MATRIX_ATI) {
-      if (TEST_EQ_4V(param, texUnit->RotMatrix))
-         return;
-      FLUSH_VERTICES(ctx, _NEW_TEXTURE);
-      COPY_4FV(texUnit->RotMatrix, param);
-   }
-   else {
-      _mesa_error( ctx, GL_INVALID_ENUM, "glTexBumpParameter(pname)" );
-      return;
-   }
-   /* Drivers might want to know about this, instead of dedicated function
-      just shove it into TexEnv where it really belongs anyway */
-   if (ctx->Driver.TexEnv) {
-      (*ctx->Driver.TexEnv)( ctx, 0, pname, param );
-   }
-}
-
-
-void GLAPIENTRY
-_mesa_GetTexBumpParameterivATI( GLenum pname, GLint *param )
-{
-   const struct gl_texture_unit *texUnit;
-   GLuint i;
-   GET_CURRENT_CONTEXT(ctx);
-
-   if (!ctx->Extensions.ATI_envmap_bumpmap) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexBumpParameterivATI");
-      return;
-   }
-
-   texUnit = _mesa_get_current_tex_unit(ctx);
-
-   if (pname == GL_BUMP_ROT_MATRIX_SIZE_ATI) {
-      /* spec leaves open to support larger matrices.
-         Don't think anyone would ever want to use it
-         (and apps almost certainly would not understand it and
-         thus fail to submit matrices correctly) so hardcode this. */
-      *param = 4;
-   }
-   else if (pname == GL_BUMP_ROT_MATRIX_ATI) {
-      /* hope that conversion is correct here */
-      param[0] = FLOAT_TO_INT(texUnit->RotMatrix[0]);
-      param[1] = FLOAT_TO_INT(texUnit->RotMatrix[1]);
-      param[2] = FLOAT_TO_INT(texUnit->RotMatrix[2]);
-      param[3] = FLOAT_TO_INT(texUnit->RotMatrix[3]);
-   }
-   else if (pname == GL_BUMP_NUM_TEX_UNITS_ATI) {
-      GLint count = 0;
-      for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; i++) {
-         if (ctx->Const.SupportedBumpUnits & (1 << i)) {
-            count++;
-         }
-      }
-      *param = count;
-   }
-   else if (pname == GL_BUMP_TEX_UNITS_ATI) {
-      for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; i++) {
-         if (ctx->Const.SupportedBumpUnits & (1 << i)) {
-            *param++ = i + GL_TEXTURE0;
-         }
-      }
-   }
-   else {
-      _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexBumpParameter(pname)" );
-      return;
-   }
-}
-
-
-void GLAPIENTRY
-_mesa_GetTexBumpParameterfvATI( GLenum pname, GLfloat *param )
-{
-   const struct gl_texture_unit *texUnit;
-   GLuint i;
-   GET_CURRENT_CONTEXT(ctx);
-
-   if (!ctx->Extensions.ATI_envmap_bumpmap) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexBumpParameterfvATI");
-      return;
-   }
-
-   texUnit = _mesa_get_current_tex_unit(ctx);
-
-   if (pname == GL_BUMP_ROT_MATRIX_SIZE_ATI) {
-      /* spec leaves open to support larger matrices.
-         Don't think anyone would ever want to use it
-         (and apps might not understand it) so hardcode this. */
-      *param = 4.0F;
-   }
-   else if (pname == GL_BUMP_ROT_MATRIX_ATI) {
-      param[0] = texUnit->RotMatrix[0];
-      param[1] = texUnit->RotMatrix[1];
-      param[2] = texUnit->RotMatrix[2];
-      param[3] = texUnit->RotMatrix[3];
-   }
-   else if (pname == GL_BUMP_NUM_TEX_UNITS_ATI) {
-      GLint count = 0;
-      for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; i++) {
-         if (ctx->Const.SupportedBumpUnits & (1 << i)) {
-            count++;
-         }
-      }
-      *param = (GLfloat) count;
-   }
-   else if (pname == GL_BUMP_TEX_UNITS_ATI) {
-      for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; i++) {
-         if (ctx->Const.SupportedBumpUnits & (1 << i)) {
-            *param++ = (GLfloat) (i + GL_TEXTURE0);
-         }
-      }
-   }
-   else {
-      _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexBumpParameter(pname)" );
-      return;
-   }
-}
index 46a7ec4e28ec80ef0e7d4e1322404416748e7242..4aa3cb179d1334641f7a67f8276d835f7c965c9b 100644 (file)
@@ -48,16 +48,4 @@ _mesa_TexEnvi( GLenum target, GLenum pname, GLint param );
 extern void GLAPIENTRY
 _mesa_TexEnviv( GLenum target, GLenum pname, const GLint *param );
 
-extern void GLAPIENTRY
-_mesa_TexBumpParameterivATI( GLenum pname, const GLint *param );
-
-extern void GLAPIENTRY
-_mesa_TexBumpParameterfvATI( GLenum pname, const GLfloat *param );
-
-extern void GLAPIENTRY
-_mesa_GetTexBumpParameterivATI( GLenum pname, GLint *param );
-
-extern void GLAPIENTRY
-_mesa_GetTexBumpParameterfvATI( GLenum pname, GLfloat *param );
-
 #endif /* TEXENV_H */
index d43480482476110f415950b6d80860fd6656ab0d..c61a74859aac2cc3a02cb339be88d0a59a9ad6bd 100644 (file)
@@ -440,11 +440,6 @@ _mesa_choose_tex_format(struct gl_context *ctx, GLenum target,
       ASSERT(ctx->TextureFormatSupported[MESA_FORMAT_Z32_FLOAT_S8X24_UINT]);
       return MESA_FORMAT_Z32_FLOAT_S8X24_UINT;
 
-   case GL_DUDV_ATI:
-   case GL_DU8DV8_ATI:
-      RETURN_IF_SUPPORTED(MESA_FORMAT_DUDV8);
-      break;
-
    case GL_RED_SNORM:
    case GL_R8_SNORM:
       RETURN_IF_SUPPORTED(MESA_FORMAT_R_SNORM8);
index 8c0d3a18ee5a794592506285a234e0ea351092b2..f1e09c986aa63c97f8c0b1cfb90f66b897594919 100644 (file)
@@ -859,11 +859,6 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
       _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
       return GL_TRUE;
    }
-   else if (_mesa_is_dudv_format(format)
-            && !_mesa_is_dudv_format(baseFormat)) {
-      _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
-      return GL_TRUE;
-   }
    else if (_mesa_is_enum_format_integer(format) !=
             _mesa_is_format_integer(texImage->TexFormat)) {
       _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(format mismatch)");
index cab29c35d63449c40f4365fd9577150013182128..a06959463e0897f0157374831bea3455c9dad76c 100644 (file)
@@ -255,16 +255,6 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
       }
    }
 
-   if (ctx->Extensions.ATI_envmap_bumpmap) {
-      switch (internalFormat) {
-         case GL_DUDV_ATI:
-         case GL_DU8DV8_ATI:
-            return GL_DUDV_ATI;
-         default:
-            ; /* fallthrough */
-      }
-   }
-
    if (ctx->Extensions.EXT_texture_snorm) {
       switch (internalFormat) {
          case GL_RED_SNORM:
@@ -2157,8 +2147,7 @@ texture_error_check( struct gl_context *ctx,
    colorFormat = _mesa_is_color_format(format);
    if ((_mesa_is_color_format(internalFormat) && !colorFormat && !indexFormat) ||
        (is_internalFormat_depth_or_depthstencil != is_format_depth_or_depthstencil) ||
-       (_mesa_is_ycbcr_format(internalFormat) != _mesa_is_ycbcr_format(format)) ||
-       (_mesa_is_dudv_format(internalFormat) != _mesa_is_dudv_format(format))) {
+       (_mesa_is_ycbcr_format(internalFormat) != _mesa_is_ycbcr_format(format))) {
       _mesa_error(ctx, GL_INVALID_OPERATION,
                   "glTexImage%dD(incompatible internalFormat = %s, format = %s)",
                   dimensions, _mesa_lookup_enum_by_nr(internalFormat),
index 19508cf39d009768b743f79d6aeabc5df4a8c2c1..e0f085218320d543f89204410ed1546c2dc62a0b 100644 (file)
@@ -91,10 +91,6 @@ _mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst )
       /* GL_EXT_texture_env_combine */
       dst->Texture.Unit[u].Combine = src->Texture.Unit[u].Combine;
 
-      /* GL_ATI_envmap_bumpmap - need this? */
-      dst->Texture.Unit[u].BumpTarget = src->Texture.Unit[u].BumpTarget;
-      COPY_4V(dst->Texture.Unit[u].RotMatrix, src->Texture.Unit[u].RotMatrix);
-
       /*
        * XXX strictly speaking, we should compare texture names/ids and
        * bind textures in the dest context according to id.  For now, only
@@ -188,7 +184,6 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state,
    case GL_RG:
    case GL_RGB:
    case GL_YCBCR_MESA:
-   case GL_DUDV_ATI:
       state->SourceA[0] = GL_PREVIOUS;
       break;
       
@@ -230,7 +225,6 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state,
       case GL_RG:
       case GL_RGB:
       case GL_YCBCR_MESA:
-      case GL_DUDV_ATI:
         mode_rgb = GL_REPLACE;
         break;
       case GL_RGBA:
@@ -259,7 +253,6 @@ calculate_derived_texenv( struct gl_tex_env_combine_state *state,
       case GL_LUMINANCE_ALPHA:
       case GL_RGBA:
       case GL_YCBCR_MESA:
-      case GL_DUDV_ATI:
         state->SourceRGB[2] = GL_TEXTURE;
         state->SourceA[2]   = GL_TEXTURE;
         state->SourceRGB[0] = GL_CONSTANT;
@@ -443,10 +436,6 @@ update_tex_combine(struct gl_context *ctx, struct gl_texture_unit *texUnit)
    case GL_MODULATE_SUBTRACT_ATI:
       combine->_NumArgsRGB = 3;
       break;
-   case GL_BUMP_ENVMAP_ATI:
-      /* no real arguments for this case */
-      combine->_NumArgsRGB = 0;
-      break;
    default:
       combine->_NumArgsRGB = 0;
       _mesa_problem(ctx, "invalid RGB combine mode in update_texture_state");
@@ -848,7 +837,6 @@ init_texture_unit( struct gl_context *ctx, GLuint unit )
    texUnit->Combine = default_combine_state;
    texUnit->_EnvMode = default_combine_state;
    texUnit->_CurrentCombine = & texUnit->_EnvMode;
-   texUnit->BumpTarget = GL_TEXTURE0;
 
    texUnit->TexGenEnabled = 0x0;
    texUnit->GenS.Mode = GL_EYE_LINEAR;
@@ -870,9 +858,6 @@ init_texture_unit( struct gl_context *ctx, GLuint unit )
    ASSIGN_4V( texUnit->GenR.EyePlane, 0.0, 0.0, 0.0, 0.0 );
    ASSIGN_4V( texUnit->GenQ.EyePlane, 0.0, 0.0, 0.0, 0.0 );
 
-   /* no mention of this in spec, but maybe id matrix expected? */
-   ASSIGN_4V( texUnit->RotMatrix, 1.0, 0.0, 0.0, 1.0 );
-
    /* initialize current texture object ptrs to the shared default objects */
    for (tex = 0; tex < NUM_TEXTURE_TARGETS; tex++) {
       _mesa_reference_texobj(&texUnit->CurrentTex[tex],
index cb81f3fde8d164434947fac797bba89b319d7e5e..d363f9faa058efd8e3a41f4cc7dd5d1d51902aa8 100644 (file)
@@ -2061,83 +2061,6 @@ _mesa_texstore_ycbcr(TEXSTORE_PARAMS)
    return GL_TRUE;
 }
 
-static GLboolean
-_mesa_texstore_dudv8(TEXSTORE_PARAMS)
-{
-   const GLboolean littleEndian = _mesa_little_endian();
-   const GLuint texelBytes = _mesa_get_format_bytes(dstFormat);
-
-   ASSERT(dstFormat == MESA_FORMAT_DUDV8);
-   ASSERT(texelBytes == 2);
-   ASSERT(ctx->Extensions.ATI_envmap_bumpmap);
-   ASSERT((srcFormat == GL_DU8DV8_ATI) ||
-         (srcFormat == GL_DUDV_ATI));
-   ASSERT(baseInternalFormat == GL_DUDV_ATI);
-
-   if (srcType == GL_BYTE) {
-      GLubyte dstmap[4];
-
-      /* dstmap - how to swizzle from RGBA to dst format:
-       */
-      if (littleEndian) {
-        dstmap[0] = 0;
-        dstmap[1] = 3;
-      }
-      else {
-        dstmap[0] = 3;
-        dstmap[1] = 0;
-      }
-      dstmap[2] = ZERO;                /* ? */
-      dstmap[3] = ONE;         /* ? */
-      
-      _mesa_swizzle_ubyte_image(ctx, dims,
-                               GL_LUMINANCE_ALPHA, /* hack */
-                               GL_UNSIGNED_BYTE, /* hack */
-                               GL_LUMINANCE_ALPHA, /* hack */
-                               dstmap, 2,
-                               dstRowStride, dstSlices,
-                               srcWidth, srcHeight, srcDepth, srcAddr,
-                               srcPacking);      
-   }   
-   else {
-      /* general path - note this is defined for 2d textures only */
-      const GLint components = _mesa_components_in_format(baseInternalFormat);
-      const GLint srcStride = _mesa_image_row_stride(srcPacking, srcWidth,
-                                                     srcFormat, srcType);
-      GLbyte *tempImage, *dst, *src;
-      GLint row;
-
-      tempImage = malloc(srcWidth * srcHeight * srcDepth
-                                          * components * sizeof(GLbyte));
-      if (!tempImage)
-         return GL_FALSE;
-
-      src = (GLbyte *) _mesa_image_address(dims, srcPacking, srcAddr,
-                                           srcWidth, srcHeight,
-                                           srcFormat, srcType,
-                                           0, 0, 0);
-
-      dst = tempImage;
-      for (row = 0; row < srcHeight; row++) {
-         _mesa_unpack_dudv_span_byte(ctx, srcWidth, baseInternalFormat,
-                                     dst, srcFormat, srcType, src,
-                                     srcPacking, 0);
-         dst += srcWidth * components;
-         src += srcStride;
-      }
-      src = tempImage;
-      dst = (GLbyte *) dstSlices[0];
-      for (row = 0; row < srcHeight; row++) {
-         memcpy(dst, src, srcWidth * texelBytes);
-         dst += dstRowStride;
-         src += srcWidth * texelBytes;
-      }
-      free((void *) tempImage);
-   }
-   return GL_TRUE;
-}
-
 
 /**
  * Store a texture in a signed normalized 8-bit format.
@@ -3723,7 +3646,6 @@ _mesa_get_texstore_func(mesa_format format)
       table[MESA_FORMAT_R_FLOAT16] = _mesa_texstore_rgba_float16;
       table[MESA_FORMAT_RG_FLOAT32] = _mesa_texstore_rgba_float32;
       table[MESA_FORMAT_RG_FLOAT16] = _mesa_texstore_rgba_float16;
-      table[MESA_FORMAT_DUDV8] = _mesa_texstore_dudv8;
       table[MESA_FORMAT_R_SNORM8] = _mesa_texstore_snorm8;
       table[MESA_FORMAT_R8G8_SNORM] = _mesa_texstore_snorm88;
       table[MESA_FORMAT_X8B8G8R8_SNORM] = _mesa_texstore_signed_rgbx8888;
index 5dda8e28d65d4a68f66d820e54efa8cc97c697e6..be5ddb106b0cde7a90ccb8e3955d5c2e5daa783c 100644 (file)
@@ -593,28 +593,6 @@ _mesa_fetch_state(struct gl_context *ctx, const gl_state_index state[],
          }
          return;
 
-      case STATE_ROT_MATRIX_0:
-         {
-            const int unit = (int) state[2];
-            GLfloat *rotMat22 = ctx->Texture.Unit[unit].RotMatrix;
-            value[0] = rotMat22[0]; 
-            value[1] = rotMat22[2];
-            value[2] = 0.0;
-            value[3] = 0.0;
-         }
-         return;
-
-      case STATE_ROT_MATRIX_1:
-         {
-            const int unit = (int) state[2];
-            GLfloat *rotMat22 = ctx->Texture.Unit[unit].RotMatrix;
-            value[0] = rotMat22[1];
-            value[1] = rotMat22[3];
-            value[2] = 0.0;
-            value[3] = 0.0;
-         }
-         return;
-
       /* XXX: make sure new tokens added here are also handled in the 
        * _mesa_program_state_flags() switch, below.
        */
@@ -706,8 +684,6 @@ _mesa_program_state_flags(const gl_state_index state[STATE_LENGTH])
          return _NEW_MODELVIEW;
 
       case STATE_TEXRECT_SCALE:
-      case STATE_ROT_MATRIX_0:
-      case STATE_ROT_MATRIX_1:
         return _NEW_TEXTURE;
       case STATE_FOG_PARAMS_OPTIMIZED:
         return _NEW_FOG;
@@ -933,12 +909,6 @@ append_token(char *dst, gl_state_index k)
    case STATE_FB_WPOS_Y_TRANSFORM:
       append(dst, "FbWposYTransform");
       break;
-   case STATE_ROT_MATRIX_0:
-      append(dst, "rotMatrixRow0");
-      break;
-   case STATE_ROT_MATRIX_1:
-      append(dst, "rotMatrixRow1");
-      break;
    default:
       /* probably STATE_INTERNAL_DRIVER+i (driver private state) */
       append(dst, "driverState");
index 23a9f48c32f5337cdc0e2a08a4c3d9a9a13e789e..6333e6328164ae12da871978e88154084c1ae8b1 100644 (file)
@@ -128,8 +128,6 @@ typedef enum gl_state_index_ {
    STATE_PT_BIAS,               /**< Pixel transfer RGBA bias */
    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 */
-   STATE_ROT_MATRIX_1,          /**< ATI_envmap_bumpmap, rot matrix row 1 */
    STATE_INTERNAL_DRIVER       /* first available state index for drivers (must be last) */
 } gl_state_index;
 
index c1a152aa83fae78949f2758cbc374c564ddd0a7d..def5eb19e00bc0a2f291dc93149b8d65efe10121 100644 (file)
@@ -429,16 +429,6 @@ texture_combine( struct gl_context *ctx, GLuint unit,
                               arg1[i][BCOMP]) * scaleRGB;
         }
          break;
-      case GL_BUMP_ENVMAP_ATI:
-         /* this produces a fixed rgba color, and the coord calc is done elsewhere */
-         for (i = 0; i < n; i++) {
-            /* rgba result is 0,0,0,1 */
-            rgba[i][RCOMP] = 0.0;
-            rgba[i][GCOMP] = 0.0;
-            rgba[i][BCOMP] = 0.0;
-            rgba[i][ACOMP] = 1.0;
-        }
-         goto end; /* no alpha processing */
       default:
          _mesa_problem(ctx, "invalid combine mode");
       }
@@ -653,78 +643,13 @@ _swrast_texture_span( struct gl_context *ctx, SWspan *span )
       }
    }
 
-   /* First must sample all bump maps */
-   for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) {
-      const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
-
-      if (texUnit->_Current &&
-         texUnit->_CurrentCombine->ModeRGB == GL_BUMP_ENVMAP_ATI) {
-         const GLfloat (*texcoords)[4] = (const GLfloat (*)[4])
-            span->array->attribs[VARYING_SLOT_TEX0 + unit];
-         float4_array targetcoords =
-            span->array->attribs[VARYING_SLOT_TEX0 +
-               ctx->Texture.Unit[unit].BumpTarget - GL_TEXTURE0];
-
-         const struct gl_sampler_object *samp = _mesa_get_samplerobj(ctx, unit);
-         GLfloat *lambda = span->array->lambda[unit];
-         float4_array texels = get_texel_array(swrast, unit);
-         GLuint i;
-         GLfloat rotMatrix00 = ctx->Texture.Unit[unit].RotMatrix[0];
-         GLfloat rotMatrix01 = ctx->Texture.Unit[unit].RotMatrix[1];
-         GLfloat rotMatrix10 = ctx->Texture.Unit[unit].RotMatrix[2];
-         GLfloat rotMatrix11 = ctx->Texture.Unit[unit].RotMatrix[3];
-
-         /* adjust texture lod (lambda) */
-         if (span->arrayMask & SPAN_LAMBDA) {
-            if (texUnit->LodBias + samp->LodBias != 0.0F) {
-               /* apply LOD bias, but don't clamp yet */
-               const GLfloat bias = CLAMP(texUnit->LodBias + samp->LodBias,
-                                          -ctx->Const.MaxTextureLodBias,
-                                          ctx->Const.MaxTextureLodBias);
-               GLuint i;
-               for (i = 0; i < span->end; i++) {
-                  lambda[i] += bias;
-               }
-            }
-
-            if (samp->MinLod != -1000.0 ||
-                samp->MaxLod != 1000.0) {
-               /* apply LOD clamping to lambda */
-               const GLfloat min = samp->MinLod;
-               const GLfloat max = samp->MaxLod;
-               GLuint i;
-               for (i = 0; i < span->end; i++) {
-                  GLfloat l = lambda[i];
-                  lambda[i] = CLAMP(l, min, max);
-               }
-            }
-         }
-
-         /* Sample the texture (span->end = number of fragments) */
-         swrast->TextureSample[unit]( ctx, samp,
-                                      ctx->Texture.Unit[unit]._Current,
-                                      span->end, texcoords, lambda, texels );
-
-         /* manipulate the span values of the bump target
-            not sure this can work correctly even ignoring
-            the problem that channel is unsigned */
-         for (i = 0; i < span->end; i++) {
-            targetcoords[i][0] += (texels[i][0] * rotMatrix00 + texels[i][1] *
-                                  rotMatrix01) / targetcoords[i][3];
-            targetcoords[i][1] += (texels[i][0] * rotMatrix10 + texels[i][1] *
-                                  rotMatrix11) / targetcoords[i][3];
-         }
-      }
-   }
-
    /*
     * Must do all texture sampling before combining in order to
     * accomodate GL_ARB_texture_env_crossbar.
     */
    for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) {
       const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
-      if (texUnit->_Current &&
-          texUnit->_CurrentCombine->ModeRGB != GL_BUMP_ENVMAP_ATI) {
+      if (texUnit->_Current) {
          const GLfloat (*texcoords)[4] = (const GLfloat (*)[4])
             span->array->attribs[VARYING_SLOT_TEX0 + unit];
          const struct gl_texture_object *curObj = texUnit->_Current;
index 90a514c168fcdf251d71297cfccd3da96eeb8d12..e508368c8dc006f5ba08efb0cf2f60fd0a3308b0 100644 (file)
@@ -210,7 +210,6 @@ texfetch_funcs[] =
    },
    FETCH_FUNCS(YCBCR),
    FETCH_FUNCS(YCBCR_REV),
-   FETCH_FUNCS(DUDV8),
 
    /* Array unorm formats */
    FETCH_FUNCS(A_UNORM8),
index d48e39bfd428b4e349b786a8b2aaadb9a86944e8..deda59246c0c42035ff13a34c7e2a60fecd01ab1 100644 (file)
@@ -888,22 +888,6 @@ FETCH(RGBA_UINT32)(const struct swrast_texture_image *texImage,
 }
 
 
-/**
- * This format by definition produces 0,0,0,1 as rgba values,
- * however we'll return the dudv values as rg and fix up elsewhere.
- */
-static void
-FETCH(DUDV8)(const struct swrast_texture_image *texImage,
-             GLint i, GLint j, GLint k, GLfloat *texel)
-{
-   const GLbyte *src = TEXEL_ADDR(GLbyte, texImage, i, j, k, 2);
-   texel[RCOMP] = BYTE_TO_FLOAT(src[0]);
-   texel[GCOMP] = BYTE_TO_FLOAT(src[1]);
-   texel[BCOMP] = 0;
-   texel[ACOMP] = 0;
-}
-
-
 static void
 FETCH(R_SNORM8)(const struct swrast_texture_image *texImage,
                 GLint i, GLint j, GLint k, GLfloat *texel)