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

Jason Ekstrand jason at jlekstrand.net
Wed Aug 24 00:37:51 UTC 2016


This seems perfectly reasonable.  I don't think rounding up to a power of
two can hurt.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

On Mon, Aug 22, 2016 at 10:46 AM, Lionel Landwerlin <
lionel.g.landwerlin at intel.com> wrote:

> 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))
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160823/fbb540bf/attachment.html>


More information about the mesa-dev mailing list