From b3e8d8d11fbb91480715a9cbe1fe788235ca8829 Mon Sep 17 00:00:00 2001 From: Samuliak Date: Sun, 7 Apr 2024 09:06:15 +0200 Subject: [PATCH] metal: create buffer cache on startup --- src/video_core/renderer_metal/mtl_rasterizer.cpp | 6 +++--- src/video_core/renderer_metal/mtl_rasterizer.h | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/video_core/renderer_metal/mtl_rasterizer.cpp b/src/video_core/renderer_metal/mtl_rasterizer.cpp index b8995138ca..5856fee735 100644 --- a/src/video_core/renderer_metal/mtl_rasterizer.cpp +++ b/src/video_core/renderer_metal/mtl_rasterizer.cpp @@ -14,8 +14,6 @@ #include "video_core/renderer_metal/mtl_rasterizer.h" #include "video_core/texture_cache/texture_cache_base.h" -#include - namespace Metal { AccelerateDMA::AccelerateDMA() = default; @@ -34,6 +32,8 @@ RasterizerMetal::RasterizerMetal(Tegra::GPU& gpu_, : gpu{gpu_}, device_memory{device_memory_}, device{device_}, command_recorder{command_recorder_}, swap_chain{swap_chain_}, staging_buffer_pool(device, command_recorder), + buffer_cache_runtime(device, command_recorder, staging_buffer_pool), + buffer_cache(device_memory, buffer_cache_runtime), texture_cache_runtime(device, command_recorder, staging_buffer_pool), texture_cache(texture_cache_runtime, device_memory) {} RasterizerMetal::~RasterizerMetal() = default; @@ -255,4 +255,4 @@ void RasterizerMetal::ReleaseChannel(s32 channel_id) { texture_cache.EraseChannel(channel_id); } -} // namespace Metal \ No newline at end of file +} // namespace Metal diff --git a/src/video_core/renderer_metal/mtl_rasterizer.h b/src/video_core/renderer_metal/mtl_rasterizer.h index a65abca026..f5d5f04dc0 100644 --- a/src/video_core/renderer_metal/mtl_rasterizer.h +++ b/src/video_core/renderer_metal/mtl_rasterizer.h @@ -4,10 +4,11 @@ #pragma once #include "common/common_types.h" -#include "mtl_texture_cache.h" +#include "mtl_buffer_cache.h" #include "video_core/control/channel_state_cache.h" #include "video_core/engines/maxwell_dma.h" #include "video_core/rasterizer_interface.h" +#include "video_core/renderer_metal/mtl_buffer_cache.h" #include "video_core/renderer_metal/mtl_texture_cache.h" namespace Core { @@ -102,6 +103,8 @@ private: const SwapChain& swap_chain; StagingBufferPool staging_buffer_pool; + BufferCacheRuntime buffer_cache_runtime; + BufferCache buffer_cache; TextureCacheRuntime texture_cache_runtime; TextureCache texture_cache; };