summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
diff options
context:
space:
mode:
authorspholz <44805808+spholz@users.noreply.github.com>2021-08-12 22:27:17 +0200
committerGitHub <noreply@github.com>2021-08-12 22:27:17 +0200
commit78a82495931e8c6b2161f79d2ac00ea88baea4f2 (patch)
tree94480efdcd09a71e676782434a44d124002f835a /src/video_core/vulkan_common/vulkan_memory_allocator.cpp
parentnetwork: correct formatting in network.cpp and network_interface.cpp (diff)
parentMerge pull request #6838 from ameerj/sws-align (diff)
downloadyuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar.gz
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar.bz2
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar.lz
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar.xz
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.tar.zst
yuzu-78a82495931e8c6b2161f79d2ac00ea88baea4f2.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
index aa173d19e..300a61205 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
@@ -228,7 +228,9 @@ void MemoryCommit::Release() {
MemoryAllocator::MemoryAllocator(const Device& device_, bool export_allocations_)
: device{device_}, properties{device_.GetPhysical().GetMemoryProperties()},
- export_allocations{export_allocations_} {}
+ export_allocations{export_allocations_},
+ buffer_image_granularity{
+ device_.GetPhysical().GetProperties().limits.bufferImageGranularity} {}
MemoryAllocator::~MemoryAllocator() = default;
@@ -258,7 +260,9 @@ MemoryCommit MemoryAllocator::Commit(const vk::Buffer& buffer, MemoryUsage usage
}
MemoryCommit MemoryAllocator::Commit(const vk::Image& image, MemoryUsage usage) {
- auto commit = Commit(device.GetLogical().GetImageMemoryRequirements(*image), usage);
+ VkMemoryRequirements requirements = device.GetLogical().GetImageMemoryRequirements(*image);
+ requirements.size = Common::AlignUp(requirements.size, buffer_image_granularity);
+ auto commit = Commit(requirements, usage);
image.BindMemory(commit.Memory(), commit.Offset());
return commit;
}