diff options
author | Eric Anholt <[email protected]> | 2014-04-23 17:14:26 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2014-04-30 14:33:20 -0700 |
commit | ff9c3e8e5a22597c83505479e918981377f8fdf4 (patch) | |
tree | dd21df42cde090b65d94cda00de32d4db6c18d89 /src/mesa/drivers/dri | |
parent | 62d46332d8ed7a6270bc4e0520cf52668efd33b5 (diff) |
mesa: Replace use of _ReallyEnabled as a boolean with use of _Current.
I'm probably not the only person that has tried to kill _ReallyEnabled.
This does the mechanical part of the work, and cleans _ReallyEnabled from
i965.
I think that using _Current makes texture management clearer: You can't
have multiple targets in use in the same texture image unit at the same
time, because there's just that one pointer.
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
20 files changed, 32 insertions, 43 deletions
diff --git a/src/mesa/drivers/dri/i915/i830_texblend.c b/src/mesa/drivers/dri/i915/i830_texblend.c index e5542afa440..6e991c45774 100644 --- a/src/mesa/drivers/dri/i915/i830_texblend.c +++ b/src/mesa/drivers/dri/i915/i830_texblend.c @@ -446,7 +446,7 @@ i830EmitTextureBlend(struct i830_context *i830) if (ctx->Texture._MaxEnabledTexImageUnit != -1) { for (unit = 0; unit < ctx->Texture._MaxEnabledTexImageUnit; unit++) - if (ctx->Texture.Unit[unit]._ReallyEnabled) + if (ctx->Texture.Unit[unit]._Current) emit_texblend(i830, unit, blendunit++, unit == ctx->Texture._MaxEnabledTexImageUnit); } else { diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 34afc26ccbd..671a5941889 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -317,7 +317,7 @@ brw_predraw_resolve_buffers(struct brw_context *brw) /* Resolve depth buffer and render cache of each enabled texture. */ int maxEnabledUnit = ctx->Texture._MaxEnabledTexImageUnit; for (int i = 0; i <= maxEnabledUnit; i++) { - if (!ctx->Texture.Unit[i]._ReallyEnabled) + if (!ctx->Texture.Unit[i]._Current) continue; tex_obj = intel_texture_object(ctx->Texture.Unit[i]._Current); if (!tex_obj || !tex_obj->mt) diff --git a/src/mesa/drivers/dri/i965/brw_tex.c b/src/mesa/drivers/dri/i965/brw_tex.c index 305d83d09da..13578b83e30 100644 --- a/src/mesa/drivers/dri/i965/brw_tex.c +++ b/src/mesa/drivers/dri/i965/brw_tex.c @@ -51,7 +51,7 @@ void brw_validate_textures( struct brw_context *brw ) for (i = 0; i <= maxEnabledUnit; i++) { struct gl_texture_unit *texUnit = &ctx->Texture.Unit[i]; - if (texUnit->_ReallyEnabled) { + if (texUnit->_Current) { intel_finalize_mipmap_tree(brw, i); } } diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 663b47e5ce7..8530f4fd454 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -337,7 +337,7 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx, int unit_id = prog->SamplerUnits[s]; const struct gl_texture_unit *unit = &ctx->Texture.Unit[unit_id]; - if (unit->_ReallyEnabled && unit->_Current->Target != GL_TEXTURE_BUFFER) { + if (unit->_Current && unit->_Current->Target != GL_TEXTURE_BUFFER) { const struct gl_texture_object *t = unit->_Current; const struct gl_texture_image *img = t->Image[0][t->BaseLevel]; struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit_id); diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index e8701e0dea4..afe952a01ad 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -395,7 +395,7 @@ brw_upload_sampler_state_table(struct brw_context *brw, for (unsigned s = 0; s < sampler_count; s++) { if (SamplersUsed & (1 << s)) { const unsigned unit = prog->SamplerUnits[s]; - if (ctx->Texture.Unit[unit]._ReallyEnabled) + if (ctx->Texture.Unit[unit]._Current) brw_update_sampler_state(brw, unit, s, &samplers[s], *sst_offset, &sdc_offset[s]); } diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index 443820b4b88..e93a33ea336 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -778,7 +778,7 @@ update_stage_texture_surfaces(struct brw_context *brw, const unsigned unit = prog->SamplerUnits[s]; /* _NEW_TEXTURE */ - if (ctx->Texture.Unit[unit]._ReallyEnabled) { + if (ctx->Texture.Unit[unit]._Current) { brw->vtbl.update_texture_surface(ctx, unit, surf_offset + s, for_gather); } } diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c index 709a783f141..94091d8cecf 100644 --- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c @@ -202,7 +202,7 @@ gen7_upload_sampler_state_table(struct brw_context *brw, for (unsigned s = 0; s < sampler_count; s++) { if (SamplersUsed & (1 << s)) { const unsigned unit = prog->SamplerUnits[s]; - if (ctx->Texture.Unit[unit]._ReallyEnabled) + if (ctx->Texture.Unit[unit]._Current) gen7_update_sampler_state(brw, unit, s, &samplers[s], &sdc_offset[s]); } diff --git a/src/mesa/drivers/dri/nouveau/nv04_context.c b/src/mesa/drivers/dri/nouveau/nv04_context.c index cd6e876f3d6..3cc219beab4 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_context.c +++ b/src/mesa/drivers/dri/nouveau/nv04_context.c @@ -53,9 +53,9 @@ nv04_context_engine(struct gl_context *ctx) struct nouveau_pushbuf *push = context_push(ctx); struct nouveau_object *fahrenheit; - if ((ctx->Texture.Unit[0]._ReallyEnabled && + if ((ctx->Texture.Unit[0]._Current && texunit_needs_combiners(&ctx->Texture.Unit[0])) || - ctx->Texture.Unit[1]._ReallyEnabled || + ctx->Texture.Unit[1]._Current || ctx->Stencil.Enabled || !(ctx->Color.ColorMask[0][RCOMP] && ctx->Color.ColorMask[0][GCOMP] && diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c index c48a0b0d566..248a7d2b522 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c @@ -257,7 +257,7 @@ nv04_emit_tex_env(struct gl_context *ctx, int emit) struct combiner_state rc_a = {}, rc_c = {}; /* Compute the new combiner state. */ - if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (ctx->Texture.Unit[i]._Current) { INIT_COMBINER(A, ctx, &rc_a, i); setup_combiner(&rc_a); diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c index ff60b338648..15eaa71531b 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c @@ -65,7 +65,7 @@ nv04_emit_tex_obj(struct gl_context *ctx, int emit) struct nouveau_surface *s; uint32_t format = 0xa0, filter = 0x1010; - if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (ctx->Texture.Unit[i]._Current) { struct gl_texture_object *t = ctx->Texture.Unit[i]._Current; struct gl_texture_image *ti = t->Image[0][t->BaseLevel]; const struct gl_sampler_object *sa = _mesa_get_samplerobj(ctx, i); diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c index aa7e703842a..c007c6c6bc2 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c @@ -304,7 +304,7 @@ nv10_get_general_combiner(struct gl_context *ctx, int i, { struct combiner_state rc_a, rc_c; - if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (ctx->Texture.Unit[i]._Current) { INIT_COMBINER(RGB, ctx, &rc_c, i); if (rc_c.mode == GL_DOT3_RGBA) diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c index 22c7a42ec1c..d85adfa9cf7 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c @@ -165,7 +165,7 @@ nv10_emit_tex_obj(struct gl_context *ctx, int emit) PUSH_RESET(push, BUFCTX_TEX(i)); - if (!ctx->Texture.Unit[i]._ReallyEnabled) { + if (!ctx->Texture.Unit[i]._Current) { BEGIN_NV04(push, NV10_3D(TEX_ENABLE(i)), 1); PUSH_DATA (push, 0); return; diff --git a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c index 69984068604..b0a4c9fb097 100644 --- a/src/mesa/drivers/dri/nouveau/nv20_state_tex.c +++ b/src/mesa/drivers/dri/nouveau/nv20_state_tex.c @@ -169,7 +169,7 @@ nv20_emit_tex_obj(struct gl_context *ctx, int emit) PUSH_RESET(push, BUFCTX_TEX(i)); - if (!ctx->Texture.Unit[i]._ReallyEnabled) { + if (!ctx->Texture.Unit[i]._Current) { BEGIN_NV04(push, NV20_3D(TEX_ENABLE(i)), 1); PUSH_DATA (push, 0); @@ -263,7 +263,7 @@ nv20_emit_tex_shader(struct gl_context *ctx, int emit) int i; for (i = 0; i < NV20_TEXTURE_UNITS; i++) { - if (!ctx->Texture.Unit[i]._ReallyEnabled) + if (!ctx->Texture.Unit[i]._Current) continue; tx_shader_op |= NV20_3D_TEX_SHADER_OP_TX0_TEXTURE_2D << 5 * i; diff --git a/src/mesa/drivers/dri/r200/r200_state.c b/src/mesa/drivers/dri/r200/r200_state.c index 7c46d11e0c9..2c7b652952a 100644 --- a/src/mesa/drivers/dri/r200/r200_state.c +++ b/src/mesa/drivers/dri/r200/r200_state.c @@ -2167,7 +2167,7 @@ static void update_texturematrix( struct gl_context *ctx ) rmesa->TexMatCompSel = 0; for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++) { - if (!ctx->Texture.Unit[unit]._ReallyEnabled) + if (!ctx->Texture.Unit[unit]._Current) continue; if (ctx->TextureMatrixStack[unit].Top->type != MATRIX_IDENTITY) { @@ -2239,7 +2239,7 @@ static GLboolean r200ValidateBuffers(struct gl_context *ctx) for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; ++i) { radeonTexObj *t; - if (!ctx->Texture.Unit[i]._ReallyEnabled) + if (!ctx->Texture.Unit[i]._Current) continue; t = radeon_tex_obj(ctx->Texture.Unit[i]._Current); diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c index 5a724141da0..ccc8f429033 100644 --- a/src/mesa/drivers/dri/r200/r200_tcl.c +++ b/src/mesa/drivers/dri/r200/r200_tcl.c @@ -412,7 +412,7 @@ static GLboolean r200_run_tcl_render( struct gl_context *ctx, } for (i = 0 ; i < ctx->Const.MaxTextureUnits; i++) { - if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (ctx->Texture.Unit[i]._Current) { if (rmesa->TexGenNeedNormals[i]) { map_rev_fixed[2] = VERT_ATTRIB_NORMAL; } diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c b/src/mesa/drivers/dri/r200/r200_texstate.c index c3c92cbca25..9ec12078a47 100644 --- a/src/mesa/drivers/dri/r200/r200_texstate.c +++ b/src/mesa/drivers/dri/r200/r200_texstate.c @@ -296,12 +296,6 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo ~(R200_TXA_DOT_ALPHA | R200_TXA_SCALE_MASK | R200_TXA_OUTPUT_REG_MASK | R200_TXA_TFACTOR_SEL_MASK | R200_TXA_TFACTOR1_SEL_MASK); - /* texUnit->_Current can be NULL if and only if the texture unit is - * not actually enabled. - */ - assert( (texUnit->_ReallyEnabled == 0) - || (texUnit->_Current != NULL) ); - if ( R200_DEBUG & RADEON_TEXTURE ) { fprintf( stderr, "%s( %p, %d )\n", __FUNCTION__, (void *)ctx, unit ); } @@ -320,7 +314,7 @@ static GLboolean r200UpdateTextureEnv( struct gl_context *ctx, int unit, int slo (unit << R200_TXA_TFACTOR_SEL_SHIFT) | (replaceargs << R200_TXA_TFACTOR1_SEL_SHIFT); - if ( !texUnit->_ReallyEnabled ) { + if ( !texUnit->_Current ) { assert( unit == 0); color_combine = R200_TXC_ARG_A_ZERO | R200_TXC_ARG_B_ZERO | R200_TXC_ARG_C_DIFFUSE_COLOR | R200_TXC_OP_MADD; @@ -840,7 +834,7 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) /* find highest used unit */ for ( j = 0; j < R200_MAX_TEXTURE_UNITS; j++) { - if (ctx->Texture.Unit[j]._ReallyEnabled) { + if (ctx->Texture.Unit[j]._Current) { maxunitused = j; } } @@ -869,7 +863,7 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) nextunit[j] = currentnext; - if (!texUnit->_ReallyEnabled) { + if (!texUnit->_Current) { /* the not enabled stages are referenced "indirectly", must not cut off the lower stages */ stageref[j] = REF_COLOR | REF_ALPHA; @@ -953,7 +947,7 @@ static GLboolean r200UpdateAllTexEnv( struct gl_context *ctx ) i = 0; while ((i <= maxunitused) && (i >= 0)) { /* only output instruction if the results are referenced */ - if (ctx->Texture.Unit[i]._ReallyEnabled && stageref[i+1]) { + if (ctx->Texture.Unit[i]._Current && stageref[i+1]) { GLuint replaceunit = i; /* try to optimize GL_REPLACE away (only one level deep though) */ if ( (ctx->Texture.Unit[i]._CurrentCombine->ModeRGB == GL_REPLACE) && diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index 4a19db4bf24..414946bc39a 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -1935,7 +1935,7 @@ static void update_texturematrix( struct gl_context *ctx ) rmesa->TexMatColSwap = 0; for (unit = 0 ; unit < ctx->Const.MaxTextureUnits; unit++) { - if (ctx->Texture.Unit[unit]._ReallyEnabled) { + if (ctx->Texture.Unit[unit]._Current) { GLboolean needMatrix = GL_FALSE; if (ctx->TextureMatrixStack[unit].Top->type != MATRIX_IDENTITY) { needMatrix = GL_TRUE; @@ -2016,7 +2016,7 @@ static GLboolean r100ValidateBuffers(struct gl_context *ctx) for (i = 0; i < ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; ++i) { radeonTexObj *t; - if (!ctx->Texture.Unit[i]._ReallyEnabled) + if (!ctx->Texture.Unit[i]._Current) continue; t = rmesa->state.texture.unit[i].texobj; diff --git a/src/mesa/drivers/dri/radeon/radeon_state_init.c b/src/mesa/drivers/dri/radeon/radeon_state_init.c index f44dff09eae..c14407ffd58 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state_init.c +++ b/src/mesa/drivers/dri/radeon/radeon_state_init.c @@ -211,9 +211,9 @@ CHECK( cube1_mm, (ctx->Texture.Unit[1]._ReallyEnabled & TEXTURE_CUBE_BIT), 2 + 4 CHECK( cube2_mm, (ctx->Texture.Unit[2]._ReallyEnabled & TEXTURE_CUBE_BIT), 2 + 4*5 - CUBE_STATE_SIZE ) CHECK( fog_add4, ctx->Fog.Enabled, 4 ) TCL_CHECK( tcl_add4, GL_TRUE, 4 ) -TCL_CHECK( tcl_tex0_add4, ctx->Texture.Unit[0]._ReallyEnabled, 4 ) -TCL_CHECK( tcl_tex1_add4, ctx->Texture.Unit[1]._ReallyEnabled, 4 ) -TCL_CHECK( tcl_tex2_add4, ctx->Texture.Unit[2]._ReallyEnabled, 4 ) +TCL_CHECK( tcl_tex0_add4, ctx->Texture.Unit[0]._Current, 4 ) +TCL_CHECK( tcl_tex1_add4, ctx->Texture.Unit[1]._Current, 4 ) +TCL_CHECK( tcl_tex2_add4, ctx->Texture.Unit[2]._Current, 4 ) TCL_CHECK( tcl_lighting, ctx->Light.Enabled, 0 ) TCL_CHECK( tcl_lighting_add4, ctx->Light.Enabled, 4 ) TCL_CHECK( tcl_eyespace_or_lighting_add4, ctx->_NeedEyeCoords || ctx->Light.Enabled, 4 ) diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c index 21d54fb9acc..271d5f91346 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tcl.c +++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c @@ -386,7 +386,7 @@ static GLboolean radeon_run_tcl_render( struct gl_context *ctx, } for (i = 0 ; i < ctx->Const.MaxTextureUnits; i++) { - if (ctx->Texture.Unit[i]._ReallyEnabled) { + if (ctx->Texture.Unit[i]._Current) { /* TODO: probably should not emit texture coords when texgen is enabled */ if (rmesa->TexGenNeedNormals[i]) { inputs |= VERT_BIT_NORMAL; diff --git a/src/mesa/drivers/dri/radeon/radeon_texstate.c b/src/mesa/drivers/dri/radeon/radeon_texstate.c index dac8aedddec..4600d34ce82 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texstate.c +++ b/src/mesa/drivers/dri/radeon/radeon_texstate.c @@ -257,12 +257,6 @@ static GLboolean radeonUpdateTextureEnv( struct gl_context *ctx, int unit ) | RADEON_SCALE_1X | RADEON_CLAMP_TX; - /* texUnit->_Current can be NULL if and only if the texture unit is - * not actually enabled. - */ - assert( (texUnit->_ReallyEnabled == 0) - || (texUnit->_Current != NULL) ); - if ( RADEON_DEBUG & RADEON_TEXTURE ) { fprintf( stderr, "%s( %p, %d )\n", __FUNCTION__, (void *)ctx, unit ); } @@ -279,7 +273,7 @@ static GLboolean radeonUpdateTextureEnv( struct gl_context *ctx, int unit ) rmesa->state.texture.unit[unit].format = 0; rmesa->state.texture.unit[unit].envMode = 0; - if ( !texUnit->_ReallyEnabled ) { + if ( !texUnit->_Current ) { color_combine = color_combine0; alpha_combine = alpha_combine0; } @@ -1082,13 +1076,14 @@ static GLboolean radeonUpdateTextureUnit( struct gl_context *ctx, int unit ) { r100ContextPtr rmesa = R100_CONTEXT(ctx); - if (ctx->Texture.Unit[unit]._ReallyEnabled & TEXTURE_3D_BIT) { + if (ctx->Texture.Unit[unit]._Current && + ctx->Texture.Unit[unit]._Current->Target == GL_TEXTURE_3D) { disable_tex_obj_state(rmesa, unit); rmesa->state.texture.unit[unit].texobj = NULL; return GL_FALSE; } - if (!ctx->Texture.Unit[unit]._ReallyEnabled) { + if (!ctx->Texture.Unit[unit]._Current) { /* disable the unit */ disable_tex_obj_state(rmesa, unit); rmesa->state.texture.unit[unit].texobj = NULL; |