From 22c807982994d6aab7b1c7d9ac33c5fa033cc5f8 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 4 Aug 2020 10:30:41 +0200 Subject: [PATCH] radv: do not honor a user-specified pitch on GFX 10.3 According to RadeonSI, it breaks mipmapping. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_image.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 3d29e1c..4644393 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -833,27 +833,11 @@ gfx10_make_texture_descriptor(struct radv_device *device, last_level) | S_00A00C_BC_SWIZZLE(gfx9_border_color_swizzle(swizzle)) | S_00A00C_TYPE(type); - - if (type == V_008F1C_SQ_RSRC_IMG_1D || - type == V_008F1C_SQ_RSRC_IMG_2D || - type == V_008F1C_SQ_RSRC_IMG_2D_MSAA) { - /* 1D, 2D, and 2D_MSAA can set a custom pitch for shader - * resources starting with gfx10.3 (ignored if pitch <= - * width). Other texture targets can't. CB and DB can't set a - * custom pitch for any target. - * */ - if (device->physical_device->rad_info.chip_class >= GFX10_3) - state[4] = S_00A010_DEPTH(image->planes[0].surface.u.gfx9.surf_pitch - 1); - else - state[4] = 0; - } else { - /* Depth is the the last accessible layer on gfx9+. The hw doesn't need - * to know the total number of layers. - */ - state[4] = S_00A010_DEPTH(type == V_008F1C_SQ_RSRC_IMG_3D ? depth - 1 : last_layer) | - S_00A010_BASE_ARRAY(first_layer); - } - + /* Depth is the the last accessible layer on gfx9+. The hw doesn't need + * to know the total number of layers. + */ + state[4] = S_00A010_DEPTH(type == V_008F1C_SQ_RSRC_IMG_3D ? depth - 1 : last_layer) | + S_00A010_BASE_ARRAY(first_layer); state[5] = S_00A014_ARRAY_PITCH(0) | S_00A014_MAX_MIP(image->info.samples > 1 ? util_logbase2(image->info.samples) : -- 2.7.4