[Mesa-dev] [PATCH] mesa: change MAX_PROGRAM_ADDRESS_REGS to 1, clamp to it in state tracker

Jose Fonseca jfonseca at vmware.com
Tue Jun 4 12:03:09 PDT 2013



----- Original Message -----
> We've never properly supported more than one address register.  There
> isn't even a field in prog_src_register or prog_dst_Register to indicate
> which address register to use if RelAddr!=0.
> 
> In the state tracker, clamp MaxAddressRegs against MAX_PROGRAM_ADDRESS_REGS
> since many gallium drivers do support more.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65226
> ---
>  src/mesa/main/config.h                 |    2 +-
>  src/mesa/state_tracker/st_extensions.c |    3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
> index 4a4fdc9..4855cc0 100644
> --- a/src/mesa/main/config.h
> +++ b/src/mesa/main/config.h
> @@ -187,7 +187,7 @@
>  #define MAX_PROGRAM_MATRIX_STACK_DEPTH 4
>  #define MAX_PROGRAM_CALL_DEPTH         8
>  #define MAX_PROGRAM_TEMPS              256
> -#define MAX_PROGRAM_ADDRESS_REGS       2
> +#define MAX_PROGRAM_ADDRESS_REGS       1
>  #define MAX_VARYING                    32    /**< number of float[4] vectors
>  */
>  #define MAX_SAMPLERS                   MAX_TEXTURE_IMAGE_UNITS
>  #define MAX_PROGRAM_INPUTS             32
> diff --git a/src/mesa/state_tracker/st_extensions.c
> b/src/mesa/state_tracker/st_extensions.c
> index 46acc87..ddae956 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -187,7 +187,8 @@ void st_init_limits(struct st_context *st)
>        pc->MaxTemps           = pc->MaxNativeTemps           =
>           screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEMPS);
>        pc->MaxAddressRegs     = pc->MaxNativeAddressRegs     =
> -         screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS);
> +         _min(screen->get_shader_param(screen, sh,
> PIPE_SHADER_CAP_MAX_ADDRS),
> +              MAX_PROGRAM_ADDRESS_REGS);
>        pc->MaxParameters      = pc->MaxNativeParameters      =
>           screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_CONSTS);
>  
> --
> 1.7.10.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 

 
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


More information about the mesa-dev mailing list