[Mesa-dev] [PATCH] radv: Clamp gfx9 image view extents to the allocated image extents.

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Nov 27 08:37:01 UTC 2018


cc stable?

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 11/24/18 11:31 PM, Bas Nieuwenhuizen wrote:
> Mirrors AMDVLK. Looks like if we go over the alignment of height
> we actually start to change the addressing. Seems like the extra
> miplevels actually work with this.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108245
> Fixes: f6cc15dccd5 "radv/gfx9: fix block compression texture views. (v2)"
> ---
>   src/amd/vulkan/radv_image.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
> index 7492bf48b51..ba8e28f0e23 100644
> --- a/src/amd/vulkan/radv_image.c
> +++ b/src/amd/vulkan/radv_image.c
> @@ -1175,8 +1175,6 @@ radv_image_view_init(struct radv_image_view *iview,
>   		 if (device->physical_device->rad_info.chip_class >= GFX9 &&
>   		     vk_format_is_compressed(image->vk_format) &&
>   		     !vk_format_is_compressed(iview->vk_format)) {
> -			 unsigned rounded_img_w = util_next_power_of_two(iview->extent.width);
> -			 unsigned rounded_img_h = util_next_power_of_two(iview->extent.height);
>   			 unsigned lvl_width  = radv_minify(image->info.width , range->baseMipLevel);
>   			 unsigned lvl_height = radv_minify(image->info.height, range->baseMipLevel);
>   
> @@ -1186,8 +1184,8 @@ radv_image_view_init(struct radv_image_view *iview,
>   			 lvl_width <<= range->baseMipLevel;
>   			 lvl_height <<= range->baseMipLevel;
>   
> -			 iview->extent.width = CLAMP(lvl_width, iview->extent.width, rounded_img_w);
> -			 iview->extent.height = CLAMP(lvl_height, iview->extent.height, rounded_img_h);
> +			 iview->extent.width = CLAMP(lvl_width, iview->extent.width, iview->image->surface.u.gfx9.surf_pitch);
> +			 iview->extent.height = CLAMP(lvl_height, iview->extent.height, iview->image->surface.u.gfx9.surf_height);
>   		 }
>   	}
>   
> 


More information about the mesa-dev mailing list