diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index abdf53d121..3a7b6eef9c 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -40,7 +40,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)} { AcquireNewChunk(); @@ -296,7 +297,9 @@ void Scheduler::EndRenderPass() } query_cache->CounterEnable(VideoCommon::QueryType::ZPassPixelCount64, false); - query_cache->CounterEnable(VideoCommon::QueryType::StreamingByteCount, 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 5216a436c8..12a8d75b54 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -235,6 +235,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 0c969a13b8..caddec002c 100644 --- a/src/video_core/surface.h +++ b/src/video_core/surface.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2025 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