summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_scheduler.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-05-07 11:26:12 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:30 +0200
commit36f158626726f940d9dba22a2b03ebbb5aa41c5e (patch)
tree8323e280f214fdf8c0b4d47303b47bd3d0a3fb0a /src/video_core/renderer_vulkan/vk_scheduler.h
parentvk_query_cache: Wait before reading queries (diff)
downloadyuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar.gz
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar.bz2
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar.lz
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar.xz
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.tar.zst
yuzu-36f158626726f940d9dba22a2b03ebbb5aa41c5e.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h
index 40215c4c5..6600fb142 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.h
+++ b/src/video_core/renderer_vulkan/vk_scheduler.h
@@ -6,14 +6,14 @@
#include <atomic>
#include <condition_variable>
+#include <queue>
#include <cstddef>
#include <memory>
-#include <stack>
#include <thread>
#include <utility>
+
#include "common/alignment.h"
#include "common/common_types.h"
-#include "common/threadsafe_queue.h"
#include "video_core/renderer_vulkan/vk_master_semaphore.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
@@ -220,11 +220,13 @@ private:
std::array<VkImage, 9> renderpass_images{};
std::array<VkImageSubresourceRange, 9> renderpass_image_ranges{};
- Common::SPSCQueue<std::unique_ptr<CommandChunk>> chunk_queue;
- Common::SPSCQueue<std::unique_ptr<CommandChunk>> chunk_reserve;
- std::mutex mutex;
- std::condition_variable cv;
- bool quit = false;
+ std::queue<std::unique_ptr<CommandChunk>> work_queue;
+ std::vector<std::unique_ptr<CommandChunk>> chunk_reserve;
+ std::mutex reserve_mutex;
+ std::mutex work_mutex;
+ std::condition_variable work_cv;
+ std::condition_variable wait_cv;
+ std::atomic_bool quit{};
};
} // namespace Vulkan