From fb90291dd5a734de3eb2ab59d883df3d2f9db0c7 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 26 Jul 2016 11:33:45 -0700 Subject: [PATCH] anv/formats: Don't use an RGBX format if it isn't renderable The whole point of using RGBX is so that we can render to it so if it isn't renderable, that kind-of defeats the purpose. Some formats (one example is R32G32B32X32_SFLOAT) exist in the format table but aren't actually renderable. Eventually, we'd like to get away from RGBX entirely, but this fixes hangs on BDW today. Signed-off-by: Jason Ekstrand --- src/intel/vulkan/anv_formats.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index b06e29baaf8..bbfb2925d77 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -278,7 +278,8 @@ anv_get_format(const struct brw_device_info *devinfo, VkFormat vk_format, * hood. */ enum isl_format rgbx = isl_format_rgb_to_rgbx(format.isl_format); - if (rgbx != ISL_FORMAT_UNSUPPORTED) { + if (rgbx != ISL_FORMAT_UNSUPPORTED && + isl_format_supports_rendering(devinfo, rgbx)) { format.isl_format = rgbx; } else { format.isl_format = isl_format_rgb_to_rgba(format.isl_format); -- 2.30.2