rhi: vulkan: Fix swapchain format check
Fix the treatment of the sRGB flag. That is independent from the value of format(), and should be checked regardless of wanting a HDR swapchain or not. On Android for instance Display P3 with RGBA8 or RGBA8_SRGB is one of the formats offered. While we do not support this right now, it is an example of a "HDR" format that still uses a color buffer format where a dedicated sRGB format is available and must be chosen according to the specified swapchain flags. Pick-to: 6.6 Change-Id: I2d97689fa5af7c08486702ae690f2230d06db469 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
dc341ea284
commit
526744ba65
@ -7543,11 +7543,9 @@ bool QVkSwapChain::ensureSurface()
|
||||
const bool srgbRequested = m_flags.testFlag(sRGB);
|
||||
for (int i = 0; i < int(formatCount); ++i) {
|
||||
if (formats[i].format != VK_FORMAT_UNDEFINED) {
|
||||
bool ok = false;
|
||||
if (m_format == SDR)
|
||||
ok = srgbRequested == isSrgbFormat(formats[i].format);
|
||||
else
|
||||
ok = hdrFormatMatchesVkSurfaceFormat(m_format, formats[i]);
|
||||
bool ok = srgbRequested == isSrgbFormat(formats[i].format);
|
||||
if (m_format != SDR)
|
||||
ok &= hdrFormatMatchesVkSurfaceFormat(m_format, formats[i]);
|
||||
if (ok) {
|
||||
colorFormat = formats[i].format;
|
||||
colorSpace = formats[i].colorSpace;
|
||||
|
Loading…
Reference in New Issue
Block a user