From 72efc678d1a4082b88a72cde9e4df2d42be734ab Mon Sep 17 00:00:00 2001 From: SimoneN64 Date: Tue, 24 Sep 2024 21:24:51 +0200 Subject: [PATCH] Squashed 'external/parallel-rdp/parallel-rdp-standalone/' changes from 3f59f61f2c1..a215fe7ec7e a215fe7ec7e Only set instanceFactory if not null 4f2c14a9266 Merge branch 'Themaister:master' into master d1cc912c5c4 Update to 1f69c762be68feb9fcd5276d75acc6e5a6160a19 git-subtree-dir: external/parallel-rdp/parallel-rdp-standalone git-subtree-split: a215fe7ec7ef472187cc182dae71c798452ad155 --- COMMIT | 2 +- parallel-rdp/rdp_renderer.cpp | 5 +++++ vulkan/device.cpp | 6 ++++++ vulkan/wsi.cpp | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/COMMIT b/COMMIT index aaa32033..fe91121b 100644 --- a/COMMIT +++ b/COMMIT @@ -1 +1 @@ -fe5becd13638873db90d46e7ba7d48255971f82a +1f69c762be68feb9fcd5276d75acc6e5a6160a19 diff --git a/parallel-rdp/rdp_renderer.cpp b/parallel-rdp/rdp_renderer.cpp index 961e2e13..ec822b55 100644 --- a/parallel-rdp/rdp_renderer.cpp +++ b/parallel-rdp/rdp_renderer.cpp @@ -201,6 +201,11 @@ bool Renderer::init_caps() LOGW("Current proprietary Intel Windows driver is tested to perform much better without 8/16-bit integer support.\n"); allow_small_types = false; } + else if (features.driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR) + { + LOGW("Current proprietary Qcom driver is known to be buggy with 8/16-bit integer arithmetic, disabling support for time being.\n"); + allow_small_types = false; + } // Intel ANV *must* use small integer arithmetic, or it doesn't pass test suite. } diff --git a/vulkan/device.cpp b/vulkan/device.cpp index 9199b273..6623a9dd 100644 --- a/vulkan/device.cpp +++ b/vulkan/device.cpp @@ -889,6 +889,12 @@ void Device::init_workarounds() LOGW("Disabling pipeline cache control.\n"); workarounds.broken_pipeline_cache_control = true; } + else if (ext.driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR) + { + // Seems broken on this driver too. Compilation stutter galore ... + LOGW("Disabling pipeline cache control.\n"); + workarounds.broken_pipeline_cache_control = true; + } if (sync2_workarounds) { diff --git a/vulkan/wsi.cpp b/vulkan/wsi.cpp index ad00a8b3..1252cc1d 100644 --- a/vulkan/wsi.cpp +++ b/vulkan/wsi.cpp @@ -357,7 +357,8 @@ bool WSI::init_context_from_platform(InstanceFactory* instanceFactory, unsigned new_context->set_application_info(platform->get_application_info()); new_context->set_num_thread_indices(num_thread_indices); new_context->set_system_handles(system_handles); - new_context->set_instance_factory(instanceFactory); + if(instanceFactory) + new_context->set_instance_factory(instanceFactory); if (!new_context->init_instance( instance_ext.data(), instance_ext.size(),