[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