From 325ecffc62c311dba37ae6b86b7f2bf13ab8763e Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Wed, 5 Jul 2017 12:15:24 -0700 Subject: [PATCH] anv/image: Disable CCS if the image doesn't support rendering Signed-off-by: Nanley Chery Reviewed-by: Jason Ekstrand --- src/intel/vulkan/anv_image.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 4f0057c9527..f33a445d1d0 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -214,6 +214,21 @@ make_surface(const struct anv_device *dev, ok = isl_surf_get_ccs_surf(&dev->isl_dev, &anv_surf->isl, &image->aux_surface.isl, 0); if (ok) { + + /* Disable CCS when it is not useful (i.e., when you can't render + * to the image with CCS enabled). + */ + if (!isl_format_supports_rendering(&dev->info, format)) { + /* While it may be technically possible to enable CCS for this + * image, we currently don't have things hooked up to get it + * working. + */ + anv_perf_warn("This image format doesn't support rendering. " + "Not allocating an CCS buffer."); + image->aux_surface.isl.size = 0; + return VK_SUCCESS; + } + add_surface(image, &image->aux_surface); /* For images created without MUTABLE_FORMAT_BIT set, we know that -- 2.30.2