diff options
author | german77 <juangerman-13@hotmail.com> | 2022-06-26 06:38:44 +0200 |
---|---|---|
committer | german77 <juangerman-13@hotmail.com> | 2022-06-27 03:21:45 +0200 |
commit | a5e419535fba0073a5ae973c8a684fb2e3178436 (patch) | |
tree | eab65c6c50bb40d85b2db70c25986ed988b922e1 /src/video_core/renderer_vulkan | |
parent | video_core: Replace VKScheduler with Scheduler (diff) | |
download | yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar.gz yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar.bz2 yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar.lz yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar.xz yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.tar.zst yuzu-a5e419535fba0073a5ae973c8a684fb2e3178436.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_fence_manager.cpp | 2 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_fence_manager.h | 7 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_query_cache.cpp | 14 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_query_cache.h | 24 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 2 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_scheduler.h | 6 |
6 files changed, 27 insertions, 28 deletions
diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.cpp b/src/video_core/renderer_vulkan/vk_fence_manager.cpp index 354341923..c249b34d4 100644 --- a/src/video_core/renderer_vulkan/vk_fence_manager.cpp +++ b/src/video_core/renderer_vulkan/vk_fence_manager.cpp @@ -44,7 +44,7 @@ void InnerFence::Wait() { FenceManager::FenceManager(VideoCore::RasterizerInterface& rasterizer_, Tegra::GPU& gpu_, TextureCache& texture_cache_, BufferCache& buffer_cache_, - VKQueryCache& query_cache_, const Device& device_, Scheduler& scheduler_) + QueryCache& query_cache_, const Device& device_, Scheduler& scheduler_) : GenericFenceManager{rasterizer_, gpu_, texture_cache_, buffer_cache_, query_cache_}, scheduler{scheduler_} {} diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.h b/src/video_core/renderer_vulkan/vk_fence_manager.h index 01f69cbcc..7c0bbd80a 100644 --- a/src/video_core/renderer_vulkan/vk_fence_manager.h +++ b/src/video_core/renderer_vulkan/vk_fence_manager.h @@ -20,7 +20,7 @@ class RasterizerInterface; namespace Vulkan { class Device; -class VKQueryCache; +class QueryCache; class Scheduler; class InnerFence : public VideoCommon::FenceBase { @@ -41,14 +41,13 @@ private: }; using Fence = std::shared_ptr<InnerFence>; -using GenericFenceManager = - VideoCommon::FenceManager<Fence, TextureCache, BufferCache, VKQueryCache>; +using GenericFenceManager = VideoCommon::FenceManager<Fence, TextureCache, BufferCache, QueryCache>; class FenceManager final : public GenericFenceManager { public: explicit FenceManager(VideoCore::RasterizerInterface& rasterizer, Tegra::GPU& gpu, TextureCache& texture_cache, BufferCache& buffer_cache, - VKQueryCache& query_cache, const Device& device, Scheduler& scheduler); + QueryCache& query_cache, const Device& device, Scheduler& scheduler); protected: Fence CreateFence(u32 value, bool is_stubbed) override; diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp index c0410aebd..2b859c6b8 100644 --- a/src/video_core/renderer_vulkan/vk_query_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp @@ -65,15 +65,15 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) { usage[pool_index * GROW_STEP + static_cast<std::ptrdiff_t>(query.second)] = false; } -VKQueryCache::VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, - Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, - const Device& device_, Scheduler& scheduler_) +QueryCache::QueryCache(VideoCore::RasterizerInterface& rasterizer_, + Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, + const Device& device_, Scheduler& scheduler_) : QueryCacheBase{rasterizer_, maxwell3d_, gpu_memory_}, device{device_}, scheduler{scheduler_}, query_pools{ QueryPool{device_, scheduler_, QueryType::SamplesPassed}, } {} -VKQueryCache::~VKQueryCache() { +QueryCache::~QueryCache() { // TODO(Rodrigo): This is a hack to destroy all HostCounter instances before the base class // destructor is called. The query cache should be redesigned to have a proper ownership model // instead of using shared pointers. @@ -84,15 +84,15 @@ VKQueryCache::~VKQueryCache() { } } -std::pair<VkQueryPool, u32> VKQueryCache::AllocateQuery(QueryType type) { +std::pair<VkQueryPool, u32> QueryCache::AllocateQuery(QueryType type) { return query_pools[static_cast<std::size_t>(type)].Commit(); } -void VKQueryCache::Reserve(QueryType type, std::pair<VkQueryPool, u32> query) { +void QueryCache::Reserve(QueryType type, std::pair<VkQueryPool, u32> query) { query_pools[static_cast<std::size_t>(type)].Reserve(query); } -HostCounter::HostCounter(VKQueryCache& cache_, std::shared_ptr<HostCounter> dependency_, +HostCounter::HostCounter(QueryCache& cache_, std::shared_ptr<HostCounter> dependency_, QueryType type_) : HostCounterBase{std::move(dependency_)}, cache{cache_}, type{type_}, query{cache_.AllocateQuery(type_)}, tick{cache_.GetScheduler().CurrentTick()} { diff --git a/src/video_core/renderer_vulkan/vk_query_cache.h b/src/video_core/renderer_vulkan/vk_query_cache.h index 171a9c65f..b0d86c4f8 100644 --- a/src/video_core/renderer_vulkan/vk_query_cache.h +++ b/src/video_core/renderer_vulkan/vk_query_cache.h @@ -22,10 +22,10 @@ namespace Vulkan { class CachedQuery; class Device; class HostCounter; -class VKQueryCache; +class QueryCache; class Scheduler; -using CounterStream = VideoCommon::CounterStreamBase<VKQueryCache, HostCounter>; +using CounterStream = VideoCommon::CounterStreamBase<QueryCache, HostCounter>; class QueryPool final : public ResourcePool { public: @@ -49,13 +49,13 @@ private: std::vector<bool> usage; }; -class VKQueryCache final - : public VideoCommon::QueryCacheBase<VKQueryCache, CachedQuery, CounterStream, HostCounter> { +class QueryCache final + : public VideoCommon::QueryCacheBase<QueryCache, CachedQuery, CounterStream, HostCounter> { public: - explicit VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, - Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, - const Device& device_, Scheduler& scheduler_); - ~VKQueryCache(); + explicit QueryCache(VideoCore::RasterizerInterface& rasterizer_, + Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, + const Device& device_, Scheduler& scheduler_); + ~QueryCache(); std::pair<VkQueryPool, u32> AllocateQuery(VideoCore::QueryType type); @@ -75,9 +75,9 @@ private: std::array<QueryPool, VideoCore::NumQueryTypes> query_pools; }; -class HostCounter final : public VideoCommon::HostCounterBase<VKQueryCache, HostCounter> { +class HostCounter final : public VideoCommon::HostCounterBase<QueryCache, HostCounter> { public: - explicit HostCounter(VKQueryCache& cache_, std::shared_ptr<HostCounter> dependency_, + explicit HostCounter(QueryCache& cache_, std::shared_ptr<HostCounter> dependency_, VideoCore::QueryType type_); ~HostCounter(); @@ -86,7 +86,7 @@ public: private: u64 BlockingQuery() const override; - VKQueryCache& cache; + QueryCache& cache; const VideoCore::QueryType type; const std::pair<VkQueryPool, u32> query; const u64 tick; @@ -94,7 +94,7 @@ private: class CachedQuery : public VideoCommon::CachedQueryBase<HostCounter> { public: - explicit CachedQuery(VKQueryCache&, VideoCore::QueryType, VAddr cpu_addr_, u8* host_ptr_) + explicit CachedQuery(QueryCache&, VideoCore::QueryType, VAddr cpu_addr_, u8* host_ptr_) : CachedQueryBase{cpu_addr_, host_ptr_} {} }; diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index b1c09606e..29faaac50 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h @@ -156,7 +156,7 @@ private: BufferCacheRuntime buffer_cache_runtime; BufferCache buffer_cache; PipelineCache pipeline_cache; - VKQueryCache query_cache; + QueryCache query_cache; AccelerateDMA accelerate_dma; FenceManager fence_manager; diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index 49e2b33d3..c04aad08f 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -22,7 +22,7 @@ class Device; class Framebuffer; class GraphicsPipeline; class StateTracker; -class VKQueryCache; +class QueryCache; /// The scheduler abstracts command buffer and fence management with an interface that's able to do /// OpenGL-like operations on Vulkan command buffers. @@ -61,7 +61,7 @@ public: void InvalidateState(); /// Assigns the query cache. - void SetQueryCache(VKQueryCache& query_cache_) { + void SetQueryCache(QueryCache& query_cache_) { query_cache = &query_cache_; } @@ -212,7 +212,7 @@ private: std::unique_ptr<MasterSemaphore> master_semaphore; std::unique_ptr<CommandPool> command_pool; - VKQueryCache* query_cache = nullptr; + QueryCache* query_cache = nullptr; vk::CommandBuffer current_cmdbuf; |