commit QMPlay2 for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package QMPlay2 for openSUSE:Factory checked in at 2021-11-29 17:28:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/QMPlay2 (Old) and /work/SRC/openSUSE:Factory/.QMPlay2.new.31177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "QMPlay2" Mon Nov 29 17:28:37 2021 rev:59 rq:934526 version:21.06.07 Changes: -------- --- /work/SRC/openSUSE:Factory/QMPlay2/QMPlay2.changes 2021-10-13 18:11:19.959767988 +0200 +++ /work/SRC/openSUSE:Factory/.QMPlay2.new.31177/QMPlay2.changes 2021-12-02 02:09:41.863679468 +0100 @@ -1,0 +2,5 @@ +Mon Nov 29 10:08:48 UTC 2021 - Simon Vogl <simon.vogl@gmx.net> + +- Added 0001-fix-vulkan-instance-initialization.patch to prevent an initialization error of QMPlay2's submodule QmVk when Tumbleweed updates vulkan to version 1.2.199 or higher + +------------------------------------------------------------------- New: ---- 0001-fix-vulkan-instance-initialization.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ QMPlay2.spec ++++++ --- /var/tmp/diff_new_pack.Ujms0G/_old 2021-12-02 02:09:42.303678126 +0100 +++ /var/tmp/diff_new_pack.Ujms0G/_new 2021-12-02 02:09:42.307678114 +0100 @@ -30,6 +30,8 @@ Patch1: 0001-add-opensuse-customizations.patch # PATCH-FIX-UPSTREAM Patch2: 0001-switch-to-yt-dlp.patch +# PATCH-FIX-UPSTREAM +Patch3: 0001-fix-vulkan-instance-initialization.patch BuildRequires: cmake >= 3.16 BuildRequires: gcc-c++ # Use gcc 10 for openSUSE Leap 15.3+ and SLE15SP3+ ++++++ 0001-fix-vulkan-instance-initialization.patch ++++++ From d9fee9a8f6541ecd30e1a3411b2d88856f912c93 Mon 29 11 10:08:48 2021 From: Simon Vogl <simon.vogl@gmx.net> Date: Mon, 29 Nov 2021 10:08:48 UTC Subject: [PATCH] Fix QmVk instance initialization This patch is required to fix an initialization error in QMPlay2's submodule QmVk with vulkan versions >= 1.2.199. --- a/src/qmvk/AbstractInstance.cpp +++ b/src/qmvk/AbstractInstance.cpp @@ -23,30 +23,34 @@ vk::DispatchLoaderDynamic vk::defaultDispatchLoaderDynamic; namespace QmVk { -static unique_ptr<vk::DynamicLoader> g_dyld; - void AbstractInstance::init(PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr) { - if (vkGetInstanceProcAddr) - { - vk::defaultDispatchLoaderDynamic.init(*this, vkGetInstanceProcAddr); - return; - } - - try - { - g_dyld = make_unique<vk::DynamicLoader>(); - } - catch (const runtime_error &e) + if (!vkGetInstanceProcAddr) { - throw vk::InitializationFailedError(e.what()); + static unique_ptr<vk::DynamicLoader> dyld; + static mutex dyldMutex; + + lock_guard<mutex> locker(dyldMutex); + if (!dyld) + { + try + { + dyld = make_unique<vk::DynamicLoader>(); + } + catch (const runtime_error &e) + { + throw vk::InitializationFailedError(e.what()); + } + } + + vkGetInstanceProcAddr = dyld->getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr"); + if (!vkGetInstanceProcAddr) + throw vk::InitializationFailedError("Unable to get \"vkGetInstanceProcAddr\""); } - - vkGetInstanceProcAddr = g_dyld->getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr"); - if (!vkGetInstanceProcAddr) - throw vk::InitializationFailedError("Unable to get \"vkGetInstanceProcAddr\""); - - vk::defaultDispatchLoaderDynamic.init(vkGetInstanceProcAddr); + if (*this) + vk::defaultDispatchLoaderDynamic.init(*this, vkGetInstanceProcAddr); + else + vk::defaultDispatchLoaderDynamic.init(vkGetInstanceProcAddr); } vector<shared_ptr<PhysicalDevice>> AbstractInstance::enumeratePhysicalDevices(bool compatibleOnly)
participants (1)
-
Source-Sync