This seems perfectly reasonable. I don't think rounding up to a power of two can hurt.
Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> On Mon, Aug 22, 2016 at 10:46 AM, Lionel Landwerlin < lionel.g.landwer...@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.landwer...@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)) >> > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev