diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index fdaf9baacc..3bddf4b122 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -44,7 +44,8 @@ void Scheduler::CommandChunk::ExecuteAll(vk::CommandBuffer cmdbuf, } Scheduler::Scheduler(const Device& device_, StateTracker& state_tracker_) - : device{device_}, state_tracker{state_tracker_}, + : device{device_}, supports_transform_feedback{device_.IsExtTransformFeedbackSupported()}, + state_tracker{state_tracker_}, master_semaphore{std::make_unique(device)}, command_pool{std::make_unique(*master_semaphore, device)} { @@ -333,6 +334,9 @@ void Scheduler::EndRenderPass() } query_cache->CounterEnable(VideoCommon::QueryType::ZPassPixelCount64, false); + if (supports_transform_feedback) { + query_cache->CounterEnable(VideoCommon::QueryType::StreamingByteCount, false); + } query_cache->NotifySegment(false); Record([num_images = num_renderpass_images, diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index 0709c3a370..a3ba35e2e9 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -266,6 +266,7 @@ private: void AcquireNewChunk(); const Device& device; + const bool supports_transform_feedback; StateTracker& state_tracker; std::unique_ptr master_semaphore; diff --git a/src/video_core/surface.h b/src/video_core/surface.h index cc97d7df35..cb599fb9f2 100644 --- a/src/video_core/surface.h +++ b/src/video_core/surface.h @@ -1,5 +1,6 @@ // SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: 2014 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later