aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan/vk_scheduler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_scheduler.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index aa8511a5cb..e1e989c79f 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -55,6 +55,9 @@ Scheduler::Scheduler(const Device& device_, StateTracker& state_tracker_)
Scheduler::~Scheduler() = default;
u64 Scheduler::Flush(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) {
+ if (VideoCommon::GpuSplit::check_owner) [[unlikely]] {
+ VideoCommon::GpuSplit::CheckOwner("Scheduler::Flush");
+ }
// When flushing, we only send data to the worker thread; no waiting is necessary.
const u64 signal_value = SubmitExecution(signal_semaphore, wait_semaphore);
AllocateNewContext();
@@ -62,6 +65,9 @@ u64 Scheduler::Flush(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) {
}
void Scheduler::Finish(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) {
+ if (VideoCommon::GpuSplit::check_owner) [[unlikely]] {
+ VideoCommon::GpuSplit::CheckOwner("Scheduler::Finish");
+ }
// When finishing, we need to wait for the submission to have executed on the device.
const u64 presubmit_tick = CurrentTick();
SubmitExecution(signal_semaphore, wait_semaphore);
@@ -83,6 +89,9 @@ void Scheduler::WaitWorker() {
}
void Scheduler::DispatchWork() {
+ if (VideoCommon::GpuSplit::check_owner) [[unlikely]] {
+ VideoCommon::GpuSplit::CheckOwner("Scheduler::DispatchWork");
+ }
if (chunk && !chunk->Empty()) {
// Waking the worker is a system call (~2% of the GPU thread at one dispatch per 8
// draws): skip it while the worker is still busy, it pops the queue before waiting.