From 55fde14a80141ad41b8d19f5a23f322c84a64ee6 Mon Sep 17 00:00:00 2001 From: Niklas Haas <git@haasn.xyz> Date: Wed, 27 May 2020 21:19:55 +0200 Subject: [PATCH] vulkan: only accept 10-bit for non-linear colorspaces The code as written allows 10-bit+linear, which is a bad combination. So explicitly ban it. --- src/vulkan/swapchain.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/vulkan/swapchain.c b/src/vulkan/swapchain.c index e44f3a32c..431a8cf50 100644 --- a/src/vulkan/swapchain.c +++ b/src/vulkan/swapchain.c @@ -206,9 +206,14 @@ static bool pick_surf_format(const struct pl_gpu *gpu, const struct vk_ctx *vk, break; // accept continue; - // Accept 10/16 bit formats universally + // Only accept 10 bit formats for non-linear curves case VK_FORMAT_A2R10G10B10_UNORM_PACK32: case VK_FORMAT_A2B10G10R10_UNORM_PACK32: + if (space->transfer != PL_COLOR_TRC_LINEAR) + break; // accept + continue; + + // Accept 16-bit formats for everything case VK_FORMAT_R16G16B16_UNORM: case VK_FORMAT_R16G16B16A16_UNORM: break; // accept -- GitLab