mesa: Drop _EnabledUnits.

The field wasn't really valid, since we've got more than 32 units now.  It
turns out it was mostly just used for checking != 0, or checking for fixed
function coordinates, though.

v2: Fix mis-conversion in xm_line.c (caught by Ken).

Reviewed-by: Matt Turner <mattst88@gmail.com> (v1)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Eric Anholt 2014-04-23 15:30:27 -07:00
parent 3dfe56c53b
commit c703658b39
17 changed files with 31 additions and 43 deletions

View file

@ -2328,7 +2328,7 @@ _mesa_meta_Bitmap(struct gl_context *ctx,
if (ctx->_ImageTransferState || if (ctx->_ImageTransferState ||
ctx->FragmentProgram._Enabled || ctx->FragmentProgram._Enabled ||
ctx->Fog.Enabled || ctx->Fog.Enabled ||
ctx->Texture._EnabledUnits || ctx->Texture._MaxEnabledTexImageUnit != -1 ||
width > tex->MaxSize || width > tex->MaxSize ||
height > tex->MaxSize) { height > tex->MaxSize) {
_swrast_Bitmap(ctx, x, y, width, height, unpack, bitmap1); _swrast_Bitmap(ctx, x, y, width, height, unpack, bitmap1);

View file

@ -77,7 +77,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one)
return false; return false;
} }
if (ctx->Texture._EnabledUnits) { if (ctx->Texture._MaxEnabledTexImageUnit != -1) {
DBG("fallback due to texturing\n"); DBG("fallback due to texturing\n");
return false; return false;
} }

View file

@ -117,7 +117,7 @@ do_blit_copypixels(struct gl_context * ctx,
} }
if (ctx->Fog.Enabled || if (ctx->Fog.Enabled ||
ctx->Texture._EnabledUnits || ctx->Texture._MaxEnabledTexImageUnit != -1 ||
ctx->FragmentProgram._Enabled) { ctx->FragmentProgram._Enabled) {
perf_debug("glCopyPixels(): Unsupported fragment shader state\n"); perf_debug("glCopyPixels(): Unsupported fragment shader state\n");
return false; return false;

View file

@ -77,7 +77,7 @@ intel_check_blit_fragment_ops(struct gl_context * ctx, bool src_alpha_is_one)
return false; return false;
} }
if (ctx->Texture._EnabledUnits) { if (ctx->Texture._MaxEnabledTexImageUnit != -1) {
DBG("fallback due to texturing\n"); DBG("fallback due to texturing\n");
return false; return false;
} }

View file

@ -125,7 +125,7 @@ do_blit_copypixels(struct gl_context * ctx,
} }
if (ctx->Fog.Enabled || if (ctx->Fog.Enabled ||
ctx->Texture._EnabledUnits || ctx->Texture._MaxEnabledTexImageUnit != -1 ||
ctx->FragmentProgram._Enabled) { ctx->FragmentProgram._Enabled) {
perf_debug("glCopyPixels(): Unsupported fragment shader state\n"); perf_debug("glCopyPixels(): Unsupported fragment shader state\n");
return false; return false;

View file

@ -286,7 +286,7 @@ nv04_emit_tex_env(struct gl_context *ctx, int emit)
/* calculate non-multitex state */ /* calculate non-multitex state */
nv04->blend &= ~NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP__MASK; nv04->blend &= ~NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP__MASK;
if (ctx->Texture._EnabledUnits) if (ctx->Texture._MaxEnabledTexImageUnit != -1)
nv04->blend |= get_texenv_mode(ctx->Texture.Unit[0].EnvMode); nv04->blend |= get_texenv_mode(ctx->Texture.Unit[0].EnvMode);
else else
nv04->blend |= get_texenv_mode(GL_MODULATE); nv04->blend |= get_texenv_mode(GL_MODULATE);

View file

@ -353,7 +353,7 @@ nv10_get_final_combiner(struct gl_context *ctx, uint64_t *in, int *n)
INPUT_ONE(&rc, E, 0); INPUT_ONE(&rc, E, 0);
} }
if (ctx->Texture._EnabledUnits) { if (ctx->Texture._MaxEnabledTexImageUnit != -1) {
INPUT_SRC(&rc, B, SPARE0, RGB); INPUT_SRC(&rc, B, SPARE0, RGB);
INPUT_SRC(&rc, G, SPARE0, ALPHA); INPUT_SRC(&rc, G, SPARE0, ALPHA);
} else { } else {
@ -362,7 +362,7 @@ nv10_get_final_combiner(struct gl_context *ctx, uint64_t *in, int *n)
} }
*in = rc.in; *in = rc.in;
*n = log2i(ctx->Texture._EnabledUnits) + 1; *n = ctx->Texture._MaxEnabledTexImageUnit + 1;
} }
void void

View file

@ -251,8 +251,8 @@ static int check_##NM( struct gl_context *ctx, struct radeon_state_atom *atom )
CHECK( always, GL_TRUE, 0 ) CHECK( always, GL_TRUE, 0 )
CHECK( always_add4, GL_TRUE, 4 ) CHECK( always_add4, GL_TRUE, 4 )
CHECK( never, GL_FALSE, 0 ) CHECK( never, GL_FALSE, 0 )
CHECK( tex_any, ctx->Texture._EnabledUnits, 0 ) CHECK( tex_any, ctx->Texture._MaxEnabledTexImageUnit != -1, 0 )
CHECK( tf, (ctx->Texture._EnabledUnits && !ctx->ATIFragmentShader._Enabled), 0 ); CHECK( tf, (ctx->Texture._MaxEnabledTexImageUnit != -1 && !ctx->ATIFragmentShader._Enabled), 0 );
CHECK( pix_zero, !ctx->ATIFragmentShader._Enabled, 0 ) CHECK( pix_zero, !ctx->ATIFragmentShader._Enabled, 0 )
CHECK( texenv, (rmesa->state.envneeded & (1 << (atom->idx)) && !ctx->ATIFragmentShader._Enabled), 0 ) CHECK( texenv, (rmesa->state.envneeded & (1 << (atom->idx)) && !ctx->ATIFragmentShader._Enabled), 0 )
CHECK( afs_pass1, (ctx->ATIFragmentShader._Enabled && (ctx->ATIFragmentShader.Current->NumPasses > 1)), 0 ) CHECK( afs_pass1, (ctx->ATIFragmentShader._Enabled && (ctx->ATIFragmentShader.Current->NumPasses > 1)), 0 )

View file

@ -207,7 +207,7 @@ osmesa_choose_line_function( struct gl_context *ctx )
if (ctx->RenderMode != GL_RENDER || if (ctx->RenderMode != GL_RENDER ||
ctx->Line.SmoothFlag || ctx->Line.SmoothFlag ||
ctx->Texture._EnabledUnits || ctx->Texture.MaxEnabledTexImageUnit == -1 ||
ctx->Light.ShadeModel != GL_FLAT || ctx->Light.ShadeModel != GL_FLAT ||
ctx->Line.Width != 1.0F || ctx->Line.Width != 1.0F ||
ctx->Line.StippleFlag || ctx->Line.StippleFlag ||
@ -322,7 +322,7 @@ osmesa_choose_triangle_function( struct gl_context *ctx )
if (ctx->RenderMode != GL_RENDER || if (ctx->RenderMode != GL_RENDER ||
ctx->Polygon.SmoothFlag || ctx->Polygon.SmoothFlag ||
ctx->Polygon.StippleFlag || ctx->Polygon.StippleFlag ||
ctx->Texture._EnabledUnits) { ctx->Texture._MaxEnabledTexImageUnit != -1) {
return NULL; return NULL;
} }

View file

@ -97,7 +97,7 @@ void xmesa_choose_point( struct gl_context *ctx )
if (ctx->RenderMode == GL_RENDER if (ctx->RenderMode == GL_RENDER
&& ctx->Point.Size == 1.0F && !ctx->Point.SmoothFlag && ctx->Point.Size == 1.0F && !ctx->Point.SmoothFlag
&& swrast->_RasterMask == 0 && swrast->_RasterMask == 0
&& !ctx->Texture._EnabledUnits && ctx->Texture._MaxEnabledTexImageUnit == -1
&& xmesa->xm_buffer->buffer != XIMAGE) { && xmesa->xm_buffer->buffer != XIMAGE) {
swrast->Point = draw_points_ANY_pixmap; swrast->Point = draw_points_ANY_pixmap;
} }
@ -456,7 +456,7 @@ get_line_func(struct gl_context *ctx)
return (swrast_line_func) NULL; return (swrast_line_func) NULL;
if (ctx->RenderMode != GL_RENDER) return (swrast_line_func) NULL; if (ctx->RenderMode != GL_RENDER) return (swrast_line_func) NULL;
if (ctx->Line.SmoothFlag) return (swrast_line_func) NULL; if (ctx->Line.SmoothFlag) return (swrast_line_func) NULL;
if (ctx->Texture._EnabledUnits) return (swrast_line_func) NULL; if (ctx->Texture._MaxEnabledTexImageUnit != -1) return (swrast_line_func) NULL;
if (ctx->Light.ShadeModel != GL_FLAT) return (swrast_line_func) NULL; if (ctx->Light.ShadeModel != GL_FLAT) return (swrast_line_func) NULL;
if (ctx->Line.StippleFlag) return (swrast_line_func) NULL; if (ctx->Line.StippleFlag) return (swrast_line_func) NULL;
if (swrast->_RasterMask & MULTI_DRAW_BIT) return (swrast_line_func) NULL; if (swrast->_RasterMask & MULTI_DRAW_BIT) return (swrast_line_func) NULL;

View file

@ -1015,7 +1015,7 @@ get_triangle_func(struct gl_context *ctx)
return (swrast_tri_func) NULL; return (swrast_tri_func) NULL;
if (ctx->Polygon.SmoothFlag) if (ctx->Polygon.SmoothFlag)
return (swrast_tri_func) NULL; return (swrast_tri_func) NULL;
if (ctx->Texture._EnabledUnits) if (ctx->Texture._MaxEnabledTexImageUnit != -1)
return (swrast_tri_func) NULL; return (swrast_tri_func) NULL;
if (swrast->_RasterMask & MULTI_DRAW_BIT) if (swrast->_RasterMask & MULTI_DRAW_BIT)
return (swrast_tri_func) NULL; return (swrast_tri_func) NULL;

View file

@ -233,7 +233,7 @@ static void make_state_key( struct gl_context *ctx, struct state_key *key )
if (ctx->Texture._TexGenEnabled || if (ctx->Texture._TexGenEnabled ||
ctx->Texture._TexMatEnabled || ctx->Texture._TexMatEnabled ||
ctx->Texture._EnabledUnits) ctx->Texture._MaxEnabledTexImageUnit != -1)
key->texture_enabled_global = 1; key->texture_enabled_global = 1;
for (i = 0; i < MAX_TEXTURE_COORD_UNITS; i++) { for (i = 0; i < MAX_TEXTURE_COORD_UNITS; i++) {

View file

@ -1389,9 +1389,6 @@ struct gl_texture_attrib
/** GL_ARB_seamless_cubemap */ /** GL_ARB_seamless_cubemap */
GLboolean CubeMapSeamless; GLboolean CubeMapSeamless;
/** Texture units/samplers used by vertex or fragment texturing */
GLbitfield _EnabledUnits;
/** Texture coord units/sets used for fragment texturing */ /** Texture coord units/sets used for fragment texturing */
GLbitfield _EnabledCoordUnits; GLbitfield _EnabledCoordUnits;

View file

@ -546,7 +546,6 @@ update_texture_state( struct gl_context *ctx )
/* TODO: only set this if there are actual changes */ /* TODO: only set this if there are actual changes */
ctx->NewState |= _NEW_TEXTURE; ctx->NewState |= _NEW_TEXTURE;
ctx->Texture._EnabledUnits = 0x0;
ctx->Texture._GenFlags = 0x0; ctx->Texture._GenFlags = 0x0;
ctx->Texture._TexMatEnabled = 0x0; ctx->Texture._TexMatEnabled = 0x0;
ctx->Texture._TexGenEnabled = 0x0; ctx->Texture._TexGenEnabled = 0x0;
@ -635,8 +634,6 @@ update_texture_state( struct gl_context *ctx )
} }
/* if we get here, we know this texture unit is enabled */ /* if we get here, we know this texture unit is enabled */
ctx->Texture._EnabledUnits |= (1 << unit);
ctx->Texture._MaxEnabledTexImageUnit = unit; ctx->Texture._MaxEnabledTexImageUnit = unit;
if (enabledTargetsByStage[MESA_SHADER_FRAGMENT]) if (enabledTargetsByStage[MESA_SHADER_FRAGMENT])
@ -796,7 +793,6 @@ _mesa_init_texture(struct gl_context *ctx)
/* Texture group */ /* Texture group */
ctx->Texture.CurrentUnit = 0; /* multitexture */ ctx->Texture.CurrentUnit = 0; /* multitexture */
ctx->Texture._EnabledUnits = 0x0;
/* Appendix F.2 of the OpenGL ES 3.0 spec says: /* Appendix F.2 of the OpenGL ES 3.0 spec says:
* *

View file

@ -73,7 +73,7 @@ _swrast_update_rasterflags( struct gl_context *ctx )
} }
} }
if (ctx->Color.ColorLogicOpEnabled) rasterMask |= LOGIC_OP_BIT; if (ctx->Color.ColorLogicOpEnabled) rasterMask |= LOGIC_OP_BIT;
if (ctx->Texture._EnabledUnits) rasterMask |= TEXTURE_BIT; if (ctx->Texture._MaxEnabledTexImageUnit >= 0) rasterMask |= TEXTURE_BIT;
if ( ctx->ViewportArray[0].X < 0 if ( ctx->ViewportArray[0].X < 0
|| ctx->ViewportArray[0].X + ctx->ViewportArray[0].Width > (GLfloat) ctx->DrawBuffer->Width || ctx->ViewportArray[0].X + ctx->ViewportArray[0].Width > (GLfloat) ctx->DrawBuffer->Width
|| ctx->ViewportArray[0].Y < 0 || ctx->ViewportArray[0].Y < 0
@ -286,7 +286,7 @@ _swrast_update_specular_vertex_add(struct gl_context *ctx)
ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR); ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR);
swrast->SpecularVertexAdd = (separateSpecular swrast->SpecularVertexAdd = (separateSpecular
&& ctx->Texture._EnabledUnits == 0x0 && ctx->Texture._MaxEnabledTexImageUnit == -1
&& !_swrast_use_fragment_program(ctx) && !_swrast_use_fragment_program(ctx)
&& !ctx->ATIFragmentShader._Enabled); && !ctx->ATIFragmentShader._Enabled);
} }

View file

@ -359,16 +359,14 @@ _swrast_unmap_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
void void
_swrast_map_textures(struct gl_context *ctx) _swrast_map_textures(struct gl_context *ctx)
{ {
GLbitfield enabledUnits = ctx->Texture._EnabledUnits; int unit;
/* loop over enabled texture units */ for (unit = 0; unit <= ctx->Texture._MaxEnabledTexImageUnit; unit++) {
while (enabledUnits) { if (ctx->Texture.Unit[unit]._ReallyEnabled) {
GLuint unit = ffs(enabledUnits) - 1; struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
_swrast_map_texture(ctx, texObj);
enabledUnits &= ~(1 << unit); _swrast_map_texture(ctx, texObj);
}
} }
} }
@ -379,15 +377,12 @@ _swrast_map_textures(struct gl_context *ctx)
void void
_swrast_unmap_textures(struct gl_context *ctx) _swrast_unmap_textures(struct gl_context *ctx)
{ {
GLbitfield enabledUnits = ctx->Texture._EnabledUnits; int unit;
for (unit = 0; unit <= ctx->Texture._MaxEnabledTexImageUnit; unit++) {
if (ctx->Texture.Unit[unit]._ReallyEnabled) {
struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
/* loop over enabled texture units */ _swrast_unmap_texture(ctx, texObj);
while (enabledUnits) { }
GLuint unit = ffs(enabledUnits) - 1;
struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current;
_swrast_unmap_texture(ctx, texObj);
enabledUnits &= ~(1 << unit);
} }
} }

View file

@ -1071,7 +1071,7 @@ _swrast_choose_triangle( struct gl_context *ctx )
if (ctx->Texture._EnabledCoordUnits == 0x1 if (ctx->Texture._EnabledCoordUnits == 0x1
&& !_swrast_use_fragment_program(ctx) && !_swrast_use_fragment_program(ctx)
&& !ctx->ATIFragmentShader._Enabled && !ctx->ATIFragmentShader._Enabled
&& ctx->Texture._EnabledUnits == 0x1 && ctx->Texture._MaxEnabledTexImageUnit == 0
&& ctx->Texture.Unit[0]._ReallyEnabled == TEXTURE_2D_BIT && ctx->Texture.Unit[0]._ReallyEnabled == TEXTURE_2D_BIT
&& samp->WrapS == GL_REPEAT && samp->WrapS == GL_REPEAT
&& samp->WrapT == GL_REPEAT && samp->WrapT == GL_REPEAT