From d70e2eafa3c04947a3a5aa81f59641c3ec1336e2 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sun, 30 Nov 2025 18:06:05 -0400 Subject: [PATCH] [vk] Extending TF handling --- src/video_core/renderer_vulkan/vk_scheduler.cpp | 6 +++++- src/video_core/renderer_vulkan/vk_scheduler.h | 1 + src/video_core/surface.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index 04684b5246..3f94d8c20a 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,6 +297,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 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 f5a9ae8a75..2c36d6c918 100644 --- a/src/video_core/surface.h +++ b/src/video_core/surface.h @@ -1,5 +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