From 42a6f7a42e537a71c219b7dc1bfbda06e69580df Mon Sep 17 00:00:00 2001 From: GPUCode Date: Fri, 10 Feb 2023 21:53:13 +0200 Subject: [PATCH] vk_renderpass_cache: Flush on qcom as well --- src/video_core/renderer_vulkan/vk_instance.h | 7 ++++--- src/video_core/renderer_vulkan/vk_renderpass_cache.cpp | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_instance.h b/src/video_core/renderer_vulkan/vk_instance.h index 6acf2f7ec..de481b362 100644 --- a/src/video_core/renderer_vulkan/vk_instance.h +++ b/src/video_core/renderer_vulkan/vk_instance.h @@ -258,9 +258,10 @@ public: return min_vertex_stride_alignment; } - /// Returns true if the physical device is a Mali gpu - bool IsMaliGpu() const { - return driver_id == vk::DriverIdKHR::eArmProprietary; + /// Returns true if commands should be flushed at the end of each major renderpass + bool ShouldFlush() const { + return driver_id == vk::DriverIdKHR::eArmProprietary || + driver_id == vk::DriverIdKHR::eQualcommProprietary; } private: diff --git a/src/video_core/renderer_vulkan/vk_renderpass_cache.cpp b/src/video_core/renderer_vulkan/vk_renderpass_cache.cpp index e3f5f8436..6cfabf3d1 100644 --- a/src/video_core/renderer_vulkan/vk_renderpass_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_renderpass_cache.cpp @@ -194,7 +194,7 @@ void RenderpassCache::ExitRenderpass() { // The Mali guide recommends flushing at the end of each major renderpass // Testing has shown this has a significant effect on rendering performance - if (cmd_count > 20 && instance.IsMaliGpu()) { + if (cmd_count > 20 && instance.ShouldFlush()) { scheduler.Flush(); cmd_count = 0; }