[Mesa-dev] [PATCH 12/16] st/nine: Fix computation of const_used_size

Ilia Mirkin imirkin at alum.mit.edu
Fri Apr 24 14:40:31 PDT 2015


On Fri, Apr 24, 2015 at 4:09 PM, Axel Davy <axel.davy at ens.fr> wrote:
> From: Xavier Bouchoux <xavierb at gmail.com>
>
> Was sometimes too large for PS.
>
> Reviewed-by: Axel Davy <axel.davy at ens.fr>
> Signed-off-by: Xavier Bouchoux <xavierb at gmail.com>
> ---
>  src/gallium/state_trackers/nine/nine_shader.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c
> index 1f1f7c8..7beb1ab 100644
> --- a/src/gallium/state_trackers/nine/nine_shader.c
> +++ b/src/gallium/state_trackers/nine/nine_shader.c
> @@ -3082,6 +3082,7 @@ nine_translate_shader(struct NineDevice9 *device, struct nine_shader_info *info)
>      HRESULT hr = D3D_OK;
>      const unsigned processor = tgsi_processor_from_type(info->type);
>      unsigned s, slot_max;
> +    unsigned max_const_f;
>
>      user_assert(processor != ~0, D3DERR_INVALIDCALL);
>
> @@ -3221,11 +3222,12 @@ nine_translate_shader(struct NineDevice9 *device, struct nine_shader_info *info)
>      if (tx->indirect_const_access) /* vs only */
>          info->const_float_slots = device->max_vs_const_f;
>
> +    max_const_f = IS_VS ? device->max_vs_const_f : device->max_ps_const_f;
>      slot_max = info->const_bool_slots > 0 ?
> -                   device->max_vs_const_f + NINE_MAX_CONST_I
> -                   + info->const_bool_slots :
> +                   max_const_f + NINE_MAX_CONST_I
> +                   + (info->const_bool_slots+3)/4 :

aka DIV_ROUND_UP(info->const_bool_slots, 4) ?

With that fixed up,

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

>                         info->const_int_slots > 0 ?
> -                           device->max_vs_const_f + info->const_int_slots :
> +                           max_const_f + info->const_int_slots :
>                                 info->const_float_slots;
>      info->const_used_size = sizeof(float[4]) * slot_max; /* slots start from 1 */
>
> --
> 2.1.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list