From df4c20a8634a79ec081fa6a9fd9fe6de52e7d8e8 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Tue, 26 Apr 2022 14:40:35 +0600 Subject: [PATCH 1/3] vulkan: Add HiDPI support --- src/qt/qt_vulkanrenderer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/qt/qt_vulkanrenderer.cpp b/src/qt/qt_vulkanrenderer.cpp index e820e3a11..c62154669 100644 --- a/src/qt/qt_vulkanrenderer.cpp +++ b/src/qt/qt_vulkanrenderer.cpp @@ -964,10 +964,10 @@ void VulkanRenderer2::startNextFrame() m_devFuncs->vkCmdBindVertexBuffers(cb, 0, 1, &m_buf, &vbOffset); VkViewport viewport; - viewport.x = destination.x(); - viewport.y = destination.y(); - viewport.width = destination.width(); - viewport.height = destination.height(); + viewport.x = destination.x() * m_window->devicePixelRatio(); + viewport.y = destination.y() * m_window->devicePixelRatio(); + viewport.width = destination.width() * m_window->devicePixelRatio(); + viewport.height = destination.height() * m_window->devicePixelRatio(); viewport.minDepth = 0; viewport.maxDepth = 1; m_devFuncs->vkCmdSetViewport(cb, 0, 1, &viewport); From 1ad7d6518703b234bdb94ff39dcb94f474b59e7c Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Tue, 26 Apr 2022 14:41:13 +0600 Subject: [PATCH 2/3] vulkan: Don't select sRGB formats for swapchain --- src/qt/qt_vulkanwindowrenderer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/qt_vulkanwindowrenderer.cpp b/src/qt/qt_vulkanwindowrenderer.cpp index 4563bd349..2904ae5a3 100644 --- a/src/qt/qt_vulkanwindowrenderer.cpp +++ b/src/qt/qt_vulkanwindowrenderer.cpp @@ -808,6 +808,7 @@ VulkanWindowRenderer::VulkanWindowRenderer(QWidget* parent) qDebug() << instance.layers(); setVulkanInstance(&instance); setPhysicalDeviceIndex(0); + setPreferredColorFormats({VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_A8B8G8R8_UNORM_PACK32}); setFlags(Flag::PersistentResources); buf_usage = std::vector(1); buf_usage[0].clear(); From a3880c24dfb2d1010174cef2349a8edf8091aba6 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Tue, 26 Apr 2022 14:45:24 +0600 Subject: [PATCH 3/3] vulkan: Explicitly select Vulkan version --- src/qt/qt_vulkanwindowrenderer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qt/qt_vulkanwindowrenderer.cpp b/src/qt/qt_vulkanwindowrenderer.cpp index 2904ae5a3..bd9f9d66f 100644 --- a/src/qt/qt_vulkanwindowrenderer.cpp +++ b/src/qt/qt_vulkanwindowrenderer.cpp @@ -797,6 +797,7 @@ VulkanWindowRenderer::VulkanWindowRenderer(QWidget* parent) parentWidget = parent; instance.setLayers(QByteArrayList() << "VK_LAYER_KHRONOS_validation"); instance.setExtensions(QByteArrayList() << "VK_EXT_debug_report"); + instance.setApiVersion(QVersionNumber(1, 0)); if (!instance.create()) { throw std::runtime_error("Could not create Vulkan instance"); }