summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-08-22 12:47:09 +1000
committerDave Airlie <[email protected]>2017-09-06 03:06:08 +0100
commitd118ff876559e468d2d243470947eee53171fe57 (patch)
tree7adac2bfa3d54bfc165c7a799633859bfa2429ae
parentb880cd3b597ea0ce514bdf88091e4cc5ec6c3785 (diff)
radv: disable 1d/2d linear optimisation on gfx9.
This causes hangs in some of the CTS tests with a 2d 1536x2 texture. This fixes hangs with: dEQP-VK.pipeline.image.suballocation.sampling_type.combined.iew_type.1d_aray.format.r4g4b4a4_unorm_pack16.count_1.size.512x1_array_of_3 if we reenable it, make sure these don't regress. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Cc: "17.2" <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r--src/amd/vulkan/radv_image.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index c9e8bb3d430..06b9c2f9d37 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -35,7 +35,7 @@
#include "util/debug.h"
#include "util/u_atomic.h"
static unsigned
-radv_choose_tiling(struct radv_device *Device,
+radv_choose_tiling(struct radv_device *device,
const struct radv_image_create_info *create_info)
{
const VkImageCreateInfo *pCreateInfo = create_info->vk_info;
@@ -46,14 +46,15 @@ radv_choose_tiling(struct radv_device *Device,
}
if (!vk_format_is_compressed(pCreateInfo->format) &&
- !vk_format_is_depth_or_stencil(pCreateInfo->format)) {
+ !vk_format_is_depth_or_stencil(pCreateInfo->format)
+ && device->physical_device->rad_info.chip_class <= VI) {
+ /* this causes hangs in some VK CTS tests on GFX9. */
/* Textures with a very small height are recommended to be linear. */
if (pCreateInfo->imageType == VK_IMAGE_TYPE_1D ||
/* Only very thin and long 2D textures should benefit from
* linear_aligned. */
(pCreateInfo->extent.width > 8 && pCreateInfo->extent.height <= 2))
return RADEON_SURF_MODE_LINEAR_ALIGNED;
-
}
/* MSAA resources must be 2D tiled. */