From: Bas Nieuwenhuizen Date: Fri, 18 May 2018 23:03:57 +0000 (+0200) Subject: ac/surface: Only align linear power of two fmt textures. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a1c87235a9d077b32094725ad7ea3b9919743c9f;p=mesa.git ac/surface: Only align linear power of two fmt textures. We're not sharing 32_32_32 formats between different GPUs, so we do not have to align for vega on pre-vega cards. Fixes: e361970ed73 "radv: Add support for IMG_DATA_FORMAT_32_32_32." Reviewed-by: Marek Olšák --- diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 9e742dc8a45..d7da9950256 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -301,10 +301,10 @@ static int gfx6_compute_level(ADDR_HANDLE addrlib, */ if (config->info.levels == 1 && AddrSurfInfoIn->tileMode == ADDR_TM_LINEAR_ALIGNED && - AddrSurfInfoIn->bpp) { + AddrSurfInfoIn->bpp && + util_is_power_of_two_or_zero(AddrSurfInfoIn->bpp)) { unsigned alignment = 256 / (AddrSurfInfoIn->bpp / 8); - assert(util_is_power_of_two_or_zero(AddrSurfInfoIn->bpp)); AddrSurfInfoIn->width = align(AddrSurfInfoIn->width, alignment); }