diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2022-08-02 12:16:45 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-08-04 22:38:00 +0000 |
commit | 9258a78b223255b3f778ec356bce88cd1615818c (patch) | |
tree | 5bf1a82f8e84b2408c554c79933e9364510c207e /src/gui/painting/shaders/backingstorecompose.frag.qsb | |
parent | f01fd007a6a9656b5dd009969751a1ab551a316e (diff) |
Skip potentially costly features in QVulkanWindow
QVulkanWindow has recently been updated both in 5.15 and 6.x to start
enabling at least the 1.0 core features, because modern validation
layers are likely to complain if a feature is used without the
corresponding flag enabled upon device creation, even if the driver does
not actually care.
There is a catch here however, namely that some features may be true
opt-in flags, e.g. robustBufferAccess, and when enabled, they may incur
a performance penalty. So we will keep that one feature disabled even
when it is reported as supported.
It is unfortunate that VkPhysicalDeviceFeatures mixes together flags
that are most likely used only to query if some feature is supported by
the implementation while not serving as a real toggle (because opting
in/out is meaningless for the implementations in practice), and flags
that have significant effects when the feature is enabled, for example
when it comes to performance.
As QVulkanWindow only cares about 1.0, and 1.1+ features are to be
handled by the application via the features-modifier callback, we can
get away by just disabling robustBufferAccess and passing in everything
else supported as-is for vkCreateDevice.
Task-number: QTBUG-105158
Change-Id: I963402ab50f6e5d3fa6824680f69cff8568b669a
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit f6dc0b4b20765175eb26aedb8c83920fc16276a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/gui/painting/shaders/backingstorecompose.frag.qsb')
0 files changed, 0 insertions, 0 deletions