[Mesa-dev] [PATCH] isl: round format alignment to nearest power of 2

Lionel Landwerlin lionel.g.landwerlin at intel.com
Mon Aug 22 17:46:37 UTC 2016


The one I actually wanted to Cc you on :)

On 20/08/16 00:44, Lionel Landwerlin wrote:
> A few inline asserts in anv assume alignments are power of 2, but with
> formats like R8G8B8 we have odd alignments.
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>   src/intel/isl/isl.c      | 1 +
>   src/intel/isl/isl_priv.h | 6 ++++++
>   2 files changed, 7 insertions(+)
>
> diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
> index 18e95e2..dfe0fc1 100644
> --- a/src/intel/isl/isl.c
> +++ b/src/intel/isl/isl.c
> @@ -1182,6 +1182,7 @@ isl_surf_init_s(const struct isl_device *dev,
>               base_alignment = MAX(base_alignment, fmtl->bpb / 8);
>            }
>         }
> +      base_alignment = isl_round_to_power_of_two(base_alignment);
>      } else {
>         assert(phys_slice0_sa.w % fmtl->bw == 0);
>         const uint32_t total_w_el = phys_slice0_sa.width / fmtl->bw;
> diff --git a/src/intel/isl/isl_priv.h b/src/intel/isl/isl_priv.h
> index 3a7af1a..cc9991c 100644
> --- a/src/intel/isl/isl_priv.h
> +++ b/src/intel/isl/isl_priv.h
> @@ -99,6 +99,12 @@ isl_log2u(uint32_t n)
>   }
>   
>   static inline uint32_t
> +isl_round_to_power_of_two(uint32_t value)
> +{
> +   return 1 << isl_log2u(value);
> +}
> +
> +static inline uint32_t
>   isl_minify(uint32_t n, uint32_t levels)
>   {
>      if (unlikely(n == 0))




More information about the mesa-dev mailing list