diff --git a/src/vulkan/swapchain.c b/src/vulkan/swapchain.c index e44f3a32cf382cd5b2ed6f981ea2c77d30d82f24..431a8cf5090bbb3370696b1ed8ff39123c6ea83f 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