diff options
Diffstat (limited to 'src')
15 files changed, 52 insertions, 54 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index d7437e185..657de69a5 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp | |||
| @@ -137,7 +137,7 @@ bool RendererVulkan::Init() try { | |||
| 137 | InitializeDevice(); | 137 | InitializeDevice(); |
| 138 | Report(); | 138 | Report(); |
| 139 | 139 | ||
| 140 | memory_manager = std::make_unique<VKMemoryManager>(*device); | 140 | memory_allocator = std::make_unique<MemoryAllocator>(*device); |
| 141 | 141 | ||
| 142 | state_tracker = std::make_unique<StateTracker>(gpu); | 142 | state_tracker = std::make_unique<StateTracker>(gpu); |
| 143 | 143 | ||
| @@ -149,11 +149,11 @@ bool RendererVulkan::Init() try { | |||
| 149 | 149 | ||
| 150 | rasterizer = std::make_unique<RasterizerVulkan>(render_window, gpu, gpu.MemoryManager(), | 150 | rasterizer = std::make_unique<RasterizerVulkan>(render_window, gpu, gpu.MemoryManager(), |
| 151 | cpu_memory, screen_info, *device, | 151 | cpu_memory, screen_info, *device, |
| 152 | *memory_manager, *state_tracker, *scheduler); | 152 | *memory_allocator, *state_tracker, *scheduler); |
| 153 | 153 | ||
| 154 | blit_screen = | 154 | blit_screen = |
| 155 | std::make_unique<VKBlitScreen>(cpu_memory, render_window, *rasterizer, *device, | 155 | std::make_unique<VKBlitScreen>(cpu_memory, render_window, *rasterizer, *device, |
| 156 | *memory_manager, *swapchain, *scheduler, screen_info); | 156 | *memory_allocator, *swapchain, *scheduler, screen_info); |
| 157 | return true; | 157 | return true; |
| 158 | 158 | ||
| 159 | } catch (const vk::Exception& exception) { | 159 | } catch (const vk::Exception& exception) { |
| @@ -172,7 +172,7 @@ void RendererVulkan::ShutDown() { | |||
| 172 | blit_screen.reset(); | 172 | blit_screen.reset(); |
| 173 | scheduler.reset(); | 173 | scheduler.reset(); |
| 174 | swapchain.reset(); | 174 | swapchain.reset(); |
| 175 | memory_manager.reset(); | 175 | memory_allocator.reset(); |
| 176 | device.reset(); | 176 | device.reset(); |
| 177 | } | 177 | } |
| 178 | 178 | ||
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h index 5575ffc54..daf55b9b4 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.h +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h | |||
| @@ -29,8 +29,8 @@ namespace Vulkan { | |||
| 29 | 29 | ||
| 30 | class Device; | 30 | class Device; |
| 31 | class StateTracker; | 31 | class StateTracker; |
| 32 | class MemoryAllocator; | ||
| 32 | class VKBlitScreen; | 33 | class VKBlitScreen; |
| 33 | class VKMemoryManager; | ||
| 34 | class VKSwapchain; | 34 | class VKSwapchain; |
| 35 | class VKScheduler; | 35 | class VKScheduler; |
| 36 | 36 | ||
| @@ -75,7 +75,7 @@ private: | |||
| 75 | 75 | ||
| 76 | vk::DebugUtilsMessenger debug_callback; | 76 | vk::DebugUtilsMessenger debug_callback; |
| 77 | std::unique_ptr<Device> device; | 77 | std::unique_ptr<Device> device; |
| 78 | std::unique_ptr<VKMemoryManager> memory_manager; | 78 | std::unique_ptr<MemoryAllocator> memory_allocator; |
| 79 | std::unique_ptr<StateTracker> state_tracker; | 79 | std::unique_ptr<StateTracker> state_tracker; |
| 80 | std::unique_ptr<VKScheduler> scheduler; | 80 | std::unique_ptr<VKScheduler> scheduler; |
| 81 | std::unique_ptr<VKSwapchain> swapchain; | 81 | std::unique_ptr<VKSwapchain> swapchain; |
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp index d8261526a..79d8ef71a 100644 --- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp +++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp | |||
| @@ -115,10 +115,10 @@ struct VKBlitScreen::BufferData { | |||
| 115 | VKBlitScreen::VKBlitScreen(Core::Memory::Memory& cpu_memory_, | 115 | VKBlitScreen::VKBlitScreen(Core::Memory::Memory& cpu_memory_, |
| 116 | Core::Frontend::EmuWindow& render_window_, | 116 | Core::Frontend::EmuWindow& render_window_, |
| 117 | VideoCore::RasterizerInterface& rasterizer_, const Device& device_, | 117 | VideoCore::RasterizerInterface& rasterizer_, const Device& device_, |
| 118 | VKMemoryManager& memory_manager_, VKSwapchain& swapchain_, | 118 | MemoryAllocator& memory_allocator_, VKSwapchain& swapchain_, |
| 119 | VKScheduler& scheduler_, const VKScreenInfo& screen_info_) | 119 | VKScheduler& scheduler_, const VKScreenInfo& screen_info_) |
| 120 | : cpu_memory{cpu_memory_}, render_window{render_window_}, rasterizer{rasterizer_}, | 120 | : cpu_memory{cpu_memory_}, render_window{render_window_}, rasterizer{rasterizer_}, |
| 121 | device{device_}, memory_manager{memory_manager_}, swapchain{swapchain_}, | 121 | device{device_}, memory_allocator{memory_allocator_}, swapchain{swapchain_}, |
| 122 | scheduler{scheduler_}, image_count{swapchain.GetImageCount()}, screen_info{screen_info_} { | 122 | scheduler{scheduler_}, image_count{swapchain.GetImageCount()}, screen_info{screen_info_} { |
| 123 | resource_ticks.resize(image_count); | 123 | resource_ticks.resize(image_count); |
| 124 | 124 | ||
| @@ -657,7 +657,7 @@ void VKBlitScreen::CreateStagingBuffer(const Tegra::FramebufferConfig& framebuff | |||
| 657 | }; | 657 | }; |
| 658 | 658 | ||
| 659 | buffer = device.GetLogical().CreateBuffer(ci); | 659 | buffer = device.GetLogical().CreateBuffer(ci); |
| 660 | buffer_commit = memory_manager.Commit(buffer, true); | 660 | buffer_commit = memory_allocator.Commit(buffer, true); |
| 661 | } | 661 | } |
| 662 | 662 | ||
| 663 | void VKBlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) { | 663 | void VKBlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) { |
| @@ -688,7 +688,7 @@ void VKBlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) | |||
| 688 | .pQueueFamilyIndices = nullptr, | 688 | .pQueueFamilyIndices = nullptr, |
| 689 | .initialLayout = VK_IMAGE_LAYOUT_UNDEFINED, | 689 | .initialLayout = VK_IMAGE_LAYOUT_UNDEFINED, |
| 690 | }); | 690 | }); |
| 691 | raw_buffer_commits[i] = memory_manager.Commit(raw_images[i], false); | 691 | raw_buffer_commits[i] = memory_allocator.Commit(raw_images[i], false); |
| 692 | raw_image_views[i] = device.GetLogical().CreateImageView(VkImageViewCreateInfo{ | 692 | raw_image_views[i] = device.GetLogical().CreateImageView(VkImageViewCreateInfo{ |
| 693 | .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, | 693 | .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, |
| 694 | .pNext = nullptr, | 694 | .pNext = nullptr, |
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.h b/src/video_core/renderer_vulkan/vk_blit_screen.h index 1aa8e3182..e52d9885e 100644 --- a/src/video_core/renderer_vulkan/vk_blit_screen.h +++ b/src/video_core/renderer_vulkan/vk_blit_screen.h | |||
| @@ -43,7 +43,7 @@ public: | |||
| 43 | explicit VKBlitScreen(Core::Memory::Memory& cpu_memory, | 43 | explicit VKBlitScreen(Core::Memory::Memory& cpu_memory, |
| 44 | Core::Frontend::EmuWindow& render_window, | 44 | Core::Frontend::EmuWindow& render_window, |
| 45 | VideoCore::RasterizerInterface& rasterizer, const Device& device, | 45 | VideoCore::RasterizerInterface& rasterizer, const Device& device, |
| 46 | VKMemoryManager& memory_manager, VKSwapchain& swapchain, | 46 | MemoryAllocator& memory_allocator, VKSwapchain& swapchain, |
| 47 | VKScheduler& scheduler, const VKScreenInfo& screen_info); | 47 | VKScheduler& scheduler, const VKScreenInfo& screen_info); |
| 48 | ~VKBlitScreen(); | 48 | ~VKBlitScreen(); |
| 49 | 49 | ||
| @@ -86,7 +86,7 @@ private: | |||
| 86 | Core::Frontend::EmuWindow& render_window; | 86 | Core::Frontend::EmuWindow& render_window; |
| 87 | VideoCore::RasterizerInterface& rasterizer; | 87 | VideoCore::RasterizerInterface& rasterizer; |
| 88 | const Device& device; | 88 | const Device& device; |
| 89 | VKMemoryManager& memory_manager; | 89 | MemoryAllocator& memory_allocator; |
| 90 | VKSwapchain& swapchain; | 90 | VKSwapchain& swapchain; |
| 91 | VKScheduler& scheduler; | 91 | VKScheduler& scheduler; |
| 92 | const std::size_t image_count; | 92 | const std::size_t image_count; |
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp index 94c2e101b..94d3a9134 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp | |||
| @@ -36,7 +36,7 @@ constexpr VkAccessFlags TRANSFORM_FEEDBACK_WRITE_ACCESS = | |||
| 36 | 36 | ||
| 37 | } // Anonymous namespace | 37 | } // Anonymous namespace |
| 38 | 38 | ||
| 39 | Buffer::Buffer(const Device& device_, VKMemoryManager& memory_manager, VKScheduler& scheduler_, | 39 | Buffer::Buffer(const Device& device_, MemoryAllocator& memory_allocator, VKScheduler& scheduler_, |
| 40 | StagingBufferPool& staging_pool_, VAddr cpu_addr_, std::size_t size_) | 40 | StagingBufferPool& staging_pool_, VAddr cpu_addr_, std::size_t size_) |
| 41 | : BufferBlock{cpu_addr_, size_}, device{device_}, scheduler{scheduler_}, staging_pool{ | 41 | : BufferBlock{cpu_addr_, size_}, device{device_}, scheduler{scheduler_}, staging_pool{ |
| 42 | staging_pool_} { | 42 | staging_pool_} { |
| @@ -50,7 +50,7 @@ Buffer::Buffer(const Device& device_, VKMemoryManager& memory_manager, VKSchedul | |||
| 50 | .queueFamilyIndexCount = 0, | 50 | .queueFamilyIndexCount = 0, |
| 51 | .pQueueFamilyIndices = nullptr, | 51 | .pQueueFamilyIndices = nullptr, |
| 52 | }); | 52 | }); |
| 53 | commit = memory_manager.Commit(buffer, false); | 53 | commit = memory_allocator.Commit(buffer, false); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | Buffer::~Buffer() = default; | 56 | Buffer::~Buffer() = default; |
| @@ -162,18 +162,18 @@ void Buffer::CopyFrom(const Buffer& src, std::size_t src_offset, std::size_t dst | |||
| 162 | 162 | ||
| 163 | VKBufferCache::VKBufferCache(VideoCore::RasterizerInterface& rasterizer_, | 163 | VKBufferCache::VKBufferCache(VideoCore::RasterizerInterface& rasterizer_, |
| 164 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, | 164 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, |
| 165 | const Device& device_, VKMemoryManager& memory_manager_, | 165 | const Device& device_, MemoryAllocator& memory_allocator_, |
| 166 | VKScheduler& scheduler_, VKStreamBuffer& stream_buffer_, | 166 | VKScheduler& scheduler_, VKStreamBuffer& stream_buffer_, |
| 167 | StagingBufferPool& staging_pool_) | 167 | StagingBufferPool& staging_pool_) |
| 168 | : VideoCommon::BufferCache<Buffer, VkBuffer, VKStreamBuffer>{rasterizer_, gpu_memory_, | 168 | : VideoCommon::BufferCache<Buffer, VkBuffer, VKStreamBuffer>{rasterizer_, gpu_memory_, |
| 169 | cpu_memory_, stream_buffer_}, | 169 | cpu_memory_, stream_buffer_}, |
| 170 | device{device_}, memory_manager{memory_manager_}, scheduler{scheduler_}, staging_pool{ | 170 | device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_}, |
| 171 | staging_pool_} {} | 171 | staging_pool{staging_pool_} {} |
| 172 | 172 | ||
| 173 | VKBufferCache::~VKBufferCache() = default; | 173 | VKBufferCache::~VKBufferCache() = default; |
| 174 | 174 | ||
| 175 | std::shared_ptr<Buffer> VKBufferCache::CreateBlock(VAddr cpu_addr, std::size_t size) { | 175 | std::shared_ptr<Buffer> VKBufferCache::CreateBlock(VAddr cpu_addr, std::size_t size) { |
| 176 | return std::make_shared<Buffer>(device, memory_manager, scheduler, staging_pool, cpu_addr, | 176 | return std::make_shared<Buffer>(device, memory_allocator, scheduler, staging_pool, cpu_addr, |
| 177 | size); | 177 | size); |
| 178 | } | 178 | } |
| 179 | 179 | ||
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h index e54c107f2..4db5259ef 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.h +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | #include "video_core/buffer_cache/buffer_cache.h" | 10 | #include "video_core/buffer_cache/buffer_cache.h" |
| 11 | #include "video_core/renderer_vulkan/vk_memory_manager.h" | 11 | #include "video_core/renderer_vulkan/vk_memory_manager.h" |
| 12 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" | 12 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" |
| 13 | #include "video_core/renderer_vulkan/vk_memory_manager.h" | ||
| 14 | #include "video_core/renderer_vulkan/vk_stream_buffer.h" | 13 | #include "video_core/renderer_vulkan/vk_stream_buffer.h" |
| 15 | #include "video_core/vulkan_common/vulkan_wrapper.h" | 14 | #include "video_core/vulkan_common/vulkan_wrapper.h" |
| 16 | 15 | ||
| @@ -21,7 +20,7 @@ class VKScheduler; | |||
| 21 | 20 | ||
| 22 | class Buffer final : public VideoCommon::BufferBlock { | 21 | class Buffer final : public VideoCommon::BufferBlock { |
| 23 | public: | 22 | public: |
| 24 | explicit Buffer(const Device& device, VKMemoryManager& memory_manager, VKScheduler& scheduler, | 23 | explicit Buffer(const Device& device, MemoryAllocator& memory_allocator, VKScheduler& scheduler, |
| 25 | StagingBufferPool& staging_pool, VAddr cpu_addr_, std::size_t size_); | 24 | StagingBufferPool& staging_pool, VAddr cpu_addr_, std::size_t size_); |
| 26 | ~Buffer(); | 25 | ~Buffer(); |
| 27 | 26 | ||
| @@ -53,7 +52,7 @@ class VKBufferCache final : public VideoCommon::BufferCache<Buffer, VkBuffer, VK | |||
| 53 | public: | 52 | public: |
| 54 | explicit VKBufferCache(VideoCore::RasterizerInterface& rasterizer, | 53 | explicit VKBufferCache(VideoCore::RasterizerInterface& rasterizer, |
| 55 | Tegra::MemoryManager& gpu_memory, Core::Memory::Memory& cpu_memory, | 54 | Tegra::MemoryManager& gpu_memory, Core::Memory::Memory& cpu_memory, |
| 56 | const Device& device, VKMemoryManager& memory_manager, | 55 | const Device& device, MemoryAllocator& memory_allocator, |
| 57 | VKScheduler& scheduler, VKStreamBuffer& stream_buffer, | 56 | VKScheduler& scheduler, VKStreamBuffer& stream_buffer, |
| 58 | StagingBufferPool& staging_pool); | 57 | StagingBufferPool& staging_pool); |
| 59 | ~VKBufferCache(); | 58 | ~VKBufferCache(); |
| @@ -65,7 +64,7 @@ protected: | |||
| 65 | 64 | ||
| 66 | private: | 65 | private: |
| 67 | const Device& device; | 66 | const Device& device; |
| 68 | VKMemoryManager& memory_manager; | 67 | MemoryAllocator& memory_allocator; |
| 69 | VKScheduler& scheduler; | 68 | VKScheduler& scheduler; |
| 70 | StagingBufferPool& staging_pool; | 69 | StagingBufferPool& staging_pool; |
| 71 | }; | 70 | }; |
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.h b/src/video_core/renderer_vulkan/vk_compute_pass.h index f4e4432a7..f5c6f5f17 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.h +++ b/src/video_core/renderer_vulkan/vk_compute_pass.h | |||
| @@ -60,8 +60,7 @@ private: | |||
| 60 | class Uint8Pass final : public VKComputePass { | 60 | class Uint8Pass final : public VKComputePass { |
| 61 | public: | 61 | public: |
| 62 | explicit Uint8Pass(const Device& device_, VKScheduler& scheduler_, | 62 | explicit Uint8Pass(const Device& device_, VKScheduler& scheduler_, |
| 63 | VKDescriptorPool& descriptor_pool_, | 63 | VKDescriptorPool& descriptor_pool_, StagingBufferPool& staging_buffer_pool_, |
| 64 | StagingBufferPool& staging_buffer_pool_, | ||
| 65 | VKUpdateDescriptorQueue& update_descriptor_queue_); | 64 | VKUpdateDescriptorQueue& update_descriptor_queue_); |
| 66 | ~Uint8Pass(); | 65 | ~Uint8Pass(); |
| 67 | 66 | ||
diff --git a/src/video_core/renderer_vulkan/vk_memory_manager.cpp b/src/video_core/renderer_vulkan/vk_memory_manager.cpp index 102987240..cabf0b6ca 100644 --- a/src/video_core/renderer_vulkan/vk_memory_manager.cpp +++ b/src/video_core/renderer_vulkan/vk_memory_manager.cpp | |||
| @@ -151,12 +151,12 @@ void MemoryCommit::Release() { | |||
| 151 | } | 151 | } |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | VKMemoryManager::VKMemoryManager(const Device& device_) | 154 | MemoryAllocator::MemoryAllocator(const Device& device_) |
| 155 | : device{device_}, properties{device_.GetPhysical().GetMemoryProperties()} {} | 155 | : device{device_}, properties{device_.GetPhysical().GetMemoryProperties()} {} |
| 156 | 156 | ||
| 157 | VKMemoryManager::~VKMemoryManager() = default; | 157 | MemoryAllocator::~MemoryAllocator() = default; |
| 158 | 158 | ||
| 159 | MemoryCommit VKMemoryManager::Commit(const VkMemoryRequirements& requirements, bool host_visible) { | 159 | MemoryCommit MemoryAllocator::Commit(const VkMemoryRequirements& requirements, bool host_visible) { |
| 160 | const u64 chunk_size = GetAllocationChunkSize(requirements.size); | 160 | const u64 chunk_size = GetAllocationChunkSize(requirements.size); |
| 161 | 161 | ||
| 162 | // When a host visible commit is asked, search for host visible and coherent, otherwise search | 162 | // When a host visible commit is asked, search for host visible and coherent, otherwise search |
| @@ -176,19 +176,19 @@ MemoryCommit VKMemoryManager::Commit(const VkMemoryRequirements& requirements, b | |||
| 176 | return TryAllocCommit(requirements, wanted_properties).value(); | 176 | return TryAllocCommit(requirements, wanted_properties).value(); |
| 177 | } | 177 | } |
| 178 | 178 | ||
| 179 | MemoryCommit VKMemoryManager::Commit(const vk::Buffer& buffer, bool host_visible) { | 179 | MemoryCommit MemoryAllocator::Commit(const vk::Buffer& buffer, bool host_visible) { |
| 180 | auto commit = Commit(device.GetLogical().GetBufferMemoryRequirements(*buffer), host_visible); | 180 | auto commit = Commit(device.GetLogical().GetBufferMemoryRequirements(*buffer), host_visible); |
| 181 | buffer.BindMemory(commit.Memory(), commit.Offset()); | 181 | buffer.BindMemory(commit.Memory(), commit.Offset()); |
| 182 | return commit; | 182 | return commit; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | MemoryCommit VKMemoryManager::Commit(const vk::Image& image, bool host_visible) { | 185 | MemoryCommit MemoryAllocator::Commit(const vk::Image& image, bool host_visible) { |
| 186 | auto commit = Commit(device.GetLogical().GetImageMemoryRequirements(*image), host_visible); | 186 | auto commit = Commit(device.GetLogical().GetImageMemoryRequirements(*image), host_visible); |
| 187 | image.BindMemory(commit.Memory(), commit.Offset()); | 187 | image.BindMemory(commit.Memory(), commit.Offset()); |
| 188 | return commit; | 188 | return commit; |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | void VKMemoryManager::AllocMemory(VkMemoryPropertyFlags wanted_properties, u32 type_mask, | 191 | void MemoryAllocator::AllocMemory(VkMemoryPropertyFlags wanted_properties, u32 type_mask, |
| 192 | u64 size) { | 192 | u64 size) { |
| 193 | const u32 type = [&] { | 193 | const u32 type = [&] { |
| 194 | for (u32 type_index = 0; type_index < properties.memoryTypeCount; ++type_index) { | 194 | for (u32 type_index = 0; type_index < properties.memoryTypeCount; ++type_index) { |
| @@ -211,7 +211,7 @@ void VKMemoryManager::AllocMemory(VkMemoryPropertyFlags wanted_properties, u32 t | |||
| 211 | wanted_properties, size, type)); | 211 | wanted_properties, size, type)); |
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | std::optional<MemoryCommit> VKMemoryManager::TryAllocCommit( | 214 | std::optional<MemoryCommit> MemoryAllocator::TryAllocCommit( |
| 215 | const VkMemoryRequirements& requirements, VkMemoryPropertyFlags wanted_properties) { | 215 | const VkMemoryRequirements& requirements, VkMemoryPropertyFlags wanted_properties) { |
| 216 | for (auto& allocation : allocations) { | 216 | for (auto& allocation : allocations) { |
| 217 | if (!allocation->IsCompatible(wanted_properties, requirements.memoryTypeBits)) { | 217 | if (!allocation->IsCompatible(wanted_properties, requirements.memoryTypeBits)) { |
diff --git a/src/video_core/renderer_vulkan/vk_memory_manager.h b/src/video_core/renderer_vulkan/vk_memory_manager.h index 2f7b836e1..69a6341e1 100644 --- a/src/video_core/renderer_vulkan/vk_memory_manager.h +++ b/src/video_core/renderer_vulkan/vk_memory_manager.h | |||
| @@ -54,13 +54,13 @@ private: | |||
| 54 | std::span<u8> span; ///< Host visible memory span. Empty if not queried before. | 54 | std::span<u8> span; ///< Host visible memory span. Empty if not queried before. |
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | class VKMemoryManager final { | 57 | class MemoryAllocator final { |
| 58 | public: | 58 | public: |
| 59 | explicit VKMemoryManager(const Device& device_); | 59 | explicit MemoryAllocator(const Device& device_); |
| 60 | ~VKMemoryManager(); | 60 | ~MemoryAllocator(); |
| 61 | 61 | ||
| 62 | VKMemoryManager& operator=(const VKMemoryManager&) = delete; | 62 | MemoryAllocator& operator=(const MemoryAllocator&) = delete; |
| 63 | VKMemoryManager(const VKMemoryManager&) = delete; | 63 | MemoryAllocator(const MemoryAllocator&) = delete; |
| 64 | 64 | ||
| 65 | /** | 65 | /** |
| 66 | * Commits a memory with the specified requeriments. | 66 | * Commits a memory with the specified requeriments. |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index ce3db49bd..f38ead9c2 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -409,24 +409,24 @@ void RasterizerVulkan::DrawParameters::Draw(vk::CommandBuffer cmdbuf) const { | |||
| 409 | RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, | 409 | RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, |
| 410 | Tegra::MemoryManager& gpu_memory_, | 410 | Tegra::MemoryManager& gpu_memory_, |
| 411 | Core::Memory::Memory& cpu_memory_, VKScreenInfo& screen_info_, | 411 | Core::Memory::Memory& cpu_memory_, VKScreenInfo& screen_info_, |
| 412 | const Device& device_, VKMemoryManager& memory_manager_, | 412 | const Device& device_, MemoryAllocator& memory_allocator_, |
| 413 | StateTracker& state_tracker_, VKScheduler& scheduler_) | 413 | StateTracker& state_tracker_, VKScheduler& scheduler_) |
| 414 | : RasterizerAccelerated{cpu_memory_}, gpu{gpu_}, | 414 | : RasterizerAccelerated{cpu_memory_}, gpu{gpu_}, |
| 415 | gpu_memory{gpu_memory_}, maxwell3d{gpu.Maxwell3D()}, kepler_compute{gpu.KeplerCompute()}, | 415 | gpu_memory{gpu_memory_}, maxwell3d{gpu.Maxwell3D()}, kepler_compute{gpu.KeplerCompute()}, |
| 416 | screen_info{screen_info_}, device{device_}, memory_manager{memory_manager_}, | 416 | screen_info{screen_info_}, device{device_}, memory_allocator{memory_allocator_}, |
| 417 | state_tracker{state_tracker_}, scheduler{scheduler_}, stream_buffer(device, scheduler), | 417 | state_tracker{state_tracker_}, scheduler{scheduler_}, stream_buffer(device, scheduler), |
| 418 | staging_pool(device, memory_manager, scheduler), descriptor_pool(device, scheduler), | 418 | staging_pool(device, memory_allocator, scheduler), descriptor_pool(device, scheduler), |
| 419 | update_descriptor_queue(device, scheduler), | 419 | update_descriptor_queue(device, scheduler), |
| 420 | blit_image(device, scheduler, state_tracker, descriptor_pool), | 420 | blit_image(device, scheduler, state_tracker, descriptor_pool), |
| 421 | quad_array_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), | 421 | quad_array_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), |
| 422 | quad_indexed_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), | 422 | quad_indexed_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), |
| 423 | uint8_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), | 423 | uint8_pass(device, scheduler, descriptor_pool, staging_pool, update_descriptor_queue), |
| 424 | texture_cache_runtime{device, scheduler, memory_manager, staging_pool, blit_image}, | 424 | texture_cache_runtime{device, scheduler, memory_allocator, staging_pool, blit_image}, |
| 425 | texture_cache(texture_cache_runtime, *this, maxwell3d, kepler_compute, gpu_memory), | 425 | texture_cache(texture_cache_runtime, *this, maxwell3d, kepler_compute, gpu_memory), |
| 426 | pipeline_cache(*this, gpu, maxwell3d, kepler_compute, gpu_memory, device, scheduler, | 426 | pipeline_cache(*this, gpu, maxwell3d, kepler_compute, gpu_memory, device, scheduler, |
| 427 | descriptor_pool, update_descriptor_queue), | 427 | descriptor_pool, update_descriptor_queue), |
| 428 | buffer_cache(*this, gpu_memory, cpu_memory_, device, memory_manager, scheduler, stream_buffer, | 428 | buffer_cache(*this, gpu_memory, cpu_memory_, device, memory_allocator, scheduler, |
| 429 | staging_pool), | 429 | stream_buffer, staging_pool), |
| 430 | query_cache{*this, maxwell3d, gpu_memory, device, scheduler}, | 430 | query_cache{*this, maxwell3d, gpu_memory, device, scheduler}, |
| 431 | fence_manager(*this, gpu, gpu_memory, texture_cache, buffer_cache, query_cache, scheduler), | 431 | fence_manager(*this, gpu, gpu_memory, texture_cache, buffer_cache, query_cache, scheduler), |
| 432 | wfi_event(device.GetLogical().CreateEvent()), async_shaders(emu_window_) { | 432 | wfi_event(device.GetLogical().CreateEvent()), async_shaders(emu_window_) { |
| @@ -1445,7 +1445,7 @@ VkBuffer RasterizerVulkan::DefaultBuffer() { | |||
| 1445 | .queueFamilyIndexCount = 0, | 1445 | .queueFamilyIndexCount = 0, |
| 1446 | .pQueueFamilyIndices = nullptr, | 1446 | .pQueueFamilyIndices = nullptr, |
| 1447 | }); | 1447 | }); |
| 1448 | default_buffer_commit = memory_manager.Commit(default_buffer, false); | 1448 | default_buffer_commit = memory_allocator.Commit(default_buffer, false); |
| 1449 | 1449 | ||
| 1450 | scheduler.RequestOutsideRenderPassOperationContext(); | 1450 | scheduler.RequestOutsideRenderPassOperationContext(); |
| 1451 | scheduler.Record([buffer = *default_buffer](vk::CommandBuffer cmdbuf) { | 1451 | scheduler.Record([buffer = *default_buffer](vk::CommandBuffer cmdbuf) { |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index c3316742f..72e679ffd 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -56,7 +56,7 @@ public: | |||
| 56 | explicit RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, | 56 | explicit RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, |
| 57 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, | 57 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, |
| 58 | VKScreenInfo& screen_info_, const Device& device_, | 58 | VKScreenInfo& screen_info_, const Device& device_, |
| 59 | VKMemoryManager& memory_manager_, StateTracker& state_tracker_, | 59 | MemoryAllocator& memory_allocator_, StateTracker& state_tracker_, |
| 60 | VKScheduler& scheduler_); | 60 | VKScheduler& scheduler_); |
| 61 | ~RasterizerVulkan() override; | 61 | ~RasterizerVulkan() override; |
| 62 | 62 | ||
| @@ -213,7 +213,7 @@ private: | |||
| 213 | 213 | ||
| 214 | VKScreenInfo& screen_info; | 214 | VKScreenInfo& screen_info; |
| 215 | const Device& device; | 215 | const Device& device; |
| 216 | VKMemoryManager& memory_manager; | 216 | MemoryAllocator& memory_allocator; |
| 217 | StateTracker& state_tracker; | 217 | StateTracker& state_tracker; |
| 218 | VKScheduler& scheduler; | 218 | VKScheduler& scheduler; |
| 219 | 219 | ||
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp index b085dcc1c..44d332ed2 100644 --- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp +++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp | |||
| @@ -12,14 +12,14 @@ | |||
| 12 | #include "common/common_types.h" | 12 | #include "common/common_types.h" |
| 13 | #include "video_core/renderer_vulkan/vk_scheduler.h" | 13 | #include "video_core/renderer_vulkan/vk_scheduler.h" |
| 14 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" | 14 | #include "video_core/renderer_vulkan/vk_staging_buffer_pool.h" |
| 15 | #include "video_core/vulkan_common/vulkan_wrapper.h" | ||
| 16 | #include "video_core/vulkan_common/vulkan_device.h" | 15 | #include "video_core/vulkan_common/vulkan_device.h" |
| 16 | #include "video_core/vulkan_common/vulkan_wrapper.h" | ||
| 17 | 17 | ||
| 18 | namespace Vulkan { | 18 | namespace Vulkan { |
| 19 | 19 | ||
| 20 | StagingBufferPool::StagingBufferPool(const Device& device_, VKMemoryManager& memory_manager_, | 20 | StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_, |
| 21 | VKScheduler& scheduler_) | 21 | VKScheduler& scheduler_) |
| 22 | : device{device_}, memory_manager{memory_manager_}, scheduler{scheduler_} {} | 22 | : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_} {} |
| 23 | 23 | ||
| 24 | StagingBufferPool::~StagingBufferPool() = default; | 24 | StagingBufferPool::~StagingBufferPool() = default; |
| 25 | 25 | ||
| @@ -76,7 +76,7 @@ StagingBufferRef StagingBufferPool::CreateStagingBuffer(size_t size, bool host_v | |||
| 76 | ++buffer_index; | 76 | ++buffer_index; |
| 77 | buffer.SetObjectNameEXT(fmt::format("Staging Buffer {}", buffer_index).c_str()); | 77 | buffer.SetObjectNameEXT(fmt::format("Staging Buffer {}", buffer_index).c_str()); |
| 78 | } | 78 | } |
| 79 | MemoryCommit commit = memory_manager.Commit(buffer, host_visible); | 79 | MemoryCommit commit = memory_allocator.Commit(buffer, host_visible); |
| 80 | const std::span<u8> mapped_span = host_visible ? commit.Map() : std::span<u8>{}; | 80 | const std::span<u8> mapped_span = host_visible ? commit.Map() : std::span<u8>{}; |
| 81 | 81 | ||
| 82 | StagingBuffer& entry = GetCache(host_visible)[log2].entries.emplace_back(StagingBuffer{ | 82 | StagingBuffer& entry = GetCache(host_visible)[log2].entries.emplace_back(StagingBuffer{ |
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h index 5234a95fa..05697e47c 100644 --- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h +++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h | |||
| @@ -24,7 +24,7 @@ struct StagingBufferRef { | |||
| 24 | 24 | ||
| 25 | class StagingBufferPool { | 25 | class StagingBufferPool { |
| 26 | public: | 26 | public: |
| 27 | explicit StagingBufferPool(const Device& device, VKMemoryManager& memory_manager, | 27 | explicit StagingBufferPool(const Device& device, MemoryAllocator& memory_allocator, |
| 28 | VKScheduler& scheduler); | 28 | VKScheduler& scheduler); |
| 29 | ~StagingBufferPool(); | 29 | ~StagingBufferPool(); |
| 30 | 30 | ||
| @@ -67,7 +67,7 @@ private: | |||
| 67 | void ReleaseLevel(StagingBuffersCache& cache, size_t log2); | 67 | void ReleaseLevel(StagingBuffersCache& cache, size_t log2); |
| 68 | 68 | ||
| 69 | const Device& device; | 69 | const Device& device; |
| 70 | VKMemoryManager& memory_manager; | 70 | MemoryAllocator& memory_allocator; |
| 71 | VKScheduler& scheduler; | 71 | VKScheduler& scheduler; |
| 72 | 72 | ||
| 73 | StagingBuffersCache host_staging_buffers; | 73 | StagingBuffersCache host_staging_buffers; |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 5acbcad76..a0a9b9559 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -788,9 +788,9 @@ Image::Image(TextureCacheRuntime& runtime, const ImageInfo& info_, GPUVAddr gpu_ | |||
| 788 | image(MakeImage(runtime.device, info)), buffer(MakeBuffer(runtime.device, info)), | 788 | image(MakeImage(runtime.device, info)), buffer(MakeBuffer(runtime.device, info)), |
| 789 | aspect_mask(ImageAspectMask(info.format)) { | 789 | aspect_mask(ImageAspectMask(info.format)) { |
| 790 | if (image) { | 790 | if (image) { |
| 791 | commit = runtime.memory_manager.Commit(image, false); | 791 | commit = runtime.memory_allocator.Commit(image, false); |
| 792 | } else { | 792 | } else { |
| 793 | commit = runtime.memory_manager.Commit(buffer, false); | 793 | commit = runtime.memory_allocator.Commit(buffer, false); |
| 794 | } | 794 | } |
| 795 | if (IsPixelFormatASTC(info.format) && !runtime.device.IsOptimalAstcSupported()) { | 795 | if (IsPixelFormatASTC(info.format) && !runtime.device.IsOptimalAstcSupported()) { |
| 796 | flags |= VideoCommon::ImageFlagBits::Converted; | 796 | flags |= VideoCommon::ImageFlagBits::Converted; |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 134465fd4..6a276d578 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h | |||
| @@ -69,7 +69,7 @@ struct ImageBufferMap { | |||
| 69 | struct TextureCacheRuntime { | 69 | struct TextureCacheRuntime { |
| 70 | const Device& device; | 70 | const Device& device; |
| 71 | VKScheduler& scheduler; | 71 | VKScheduler& scheduler; |
| 72 | VKMemoryManager& memory_manager; | 72 | MemoryAllocator& memory_allocator; |
| 73 | StagingBufferPool& staging_buffer_pool; | 73 | StagingBufferPool& staging_buffer_pool; |
| 74 | BlitImageHelper& blit_image_helper; | 74 | BlitImageHelper& blit_image_helper; |
| 75 | std::unordered_map<RenderPassKey, vk::RenderPass> renderpass_cache; | 75 | std::unordered_map<RenderPassKey, vk::RenderPass> renderpass_cache; |