From 56ffe03fe6e527233c98037f8f7b43289dac98a7 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 25 Apr 2018 11:22:17 +0200 Subject: radv: set ac_surf_info::num_channels correctly num_channels has been introduced since "ac/surface: don't set the display flag for obviously unsupported cases". Based on RadeonSI. Fixes: e29facff315 ("ac/surface: don't set the display flag for obviously unsupported cases (v2)") Cc: 18.1 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen (cherry picked from commit d7ffe3b384f4d1c15a9364768cf405d416522e60) --- src/amd/vulkan/radv_image.c | 2 +- src/amd/vulkan/vk_format.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 793f861f4f..a6f3628c8f 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -968,7 +968,7 @@ radv_image_create(VkDevice _device, image->info.samples = pCreateInfo->samples; image->info.array_size = pCreateInfo->arrayLayers; image->info.levels = pCreateInfo->mipLevels; - image->info.num_channels = 4; /* TODO: set this correctly */ + image->info.num_channels = vk_format_get_nr_components(pCreateInfo->format); image->vk_format = pCreateInfo->format; image->tiling = pCreateInfo->tiling; diff --git a/src/amd/vulkan/vk_format.h b/src/amd/vulkan/vk_format.h index 43265ed3d9..b8cb4f4ed3 100644 --- a/src/amd/vulkan/vk_format.h +++ b/src/amd/vulkan/vk_format.h @@ -488,4 +488,11 @@ vk_to_non_srgb_format(VkFormat format) } } +static inline unsigned +vk_format_get_nr_components(VkFormat format) +{ + const struct vk_format_description *desc = vk_format_description(format); + return desc->nr_channels; +} + #endif /* VK_FORMAT_H */ -- cgit v1.2.3