[Mesa-dev] [PATCH 1/2] mesa: Track max enabled tex image unit
Ian Romanick
idr at freedesktop.org
Fri Apr 18 17:14:19 PDT 2014
Series is
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
On 04/12/2014 05:37 PM, Chris Forbes wrote:
> This gives us a better bound for some hot loops in the drivers than
> MAX_COMBINED_TEXTURE_IMAGE_UNITS, which is ridiculously large on modern
> hardware, and only getting worse as more shader stages are added.
>
> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
> ---
> src/mesa/main/mtypes.h | 3 +++
> src/mesa/main/texstate.c | 2 ++
> 2 files changed, 5 insertions(+)
>
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 4d014d1..6694383 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -1402,6 +1402,9 @@ struct gl_texture_attrib
>
> /** Bitwise-OR of all Texture.Unit[i]._GenFlags */
> GLbitfield _GenFlags;
> +
> + /** Upper bound on _ReallyEnabled texunits. */
> + GLint _MaxEnabledTexImageUnit;
> };
>
>
> diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
> index fcae878..b68920c 100644
> --- a/src/mesa/main/texstate.c
> +++ b/src/mesa/main/texstate.c
> @@ -550,6 +550,7 @@ update_texture_state( struct gl_context *ctx )
> ctx->Texture._GenFlags = 0x0;
> ctx->Texture._TexMatEnabled = 0x0;
> ctx->Texture._TexGenEnabled = 0x0;
> + ctx->Texture._MaxEnabledTexImageUnit = -1;
>
> /*
> * Update texture unit state.
> @@ -636,6 +637,7 @@ update_texture_state( struct gl_context *ctx )
> /* if we get here, we know this texture unit is enabled */
>
> ctx->Texture._EnabledUnits |= (1 << unit);
> + ctx->Texture._MaxEnabledTexImageUnit = unit;
>
> if (enabledTargetsByStage[MESA_SHADER_FRAGMENT])
> enabledFragUnits |= (1 << unit);
>
More information about the mesa-dev
mailing list