summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-01-06 05:18:37 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2021-01-15 20:19:40 +0100
commit301e2b5b7a130730f42de2bb6615c0cacd78c7de (patch)
tree1d1ac74ac0f0f9be667c961f1e7a225454b384ec /src/video_core/vulkan_common
parentvk_texture_cache: Use Download memory types for texture flushes (diff)
downloadyuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar.gz
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar.bz2
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar.lz
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar.xz
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.tar.zst
yuzu-301e2b5b7a130730f42de2bb6615c0cacd78c7de.zip
Diffstat (limited to 'src/video_core/vulkan_common')
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.cpp20
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.h10
2 files changed, 15 insertions, 15 deletions
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
index f15061d0c..d6eb3af31 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
@@ -71,7 +71,7 @@ public:
.end = *alloc + size,
};
commits.insert(std::ranges::upper_bound(commits, *alloc, {}, &Range::begin), range);
- return std::make_optional<MemoryCommit>(device, this, *memory, *alloc, *alloc + size);
+ return std::make_optional<MemoryCommit>(this, *memory, *alloc, *alloc + size);
}
void Free(u64 begin) {
@@ -127,9 +127,9 @@ private:
std::span<u8> memory_mapped_span; ///< Memory mapped span. Empty if not queried before.
};
-MemoryCommit::MemoryCommit(const Device& device_, MemoryAllocation* allocation_,
- VkDeviceMemory memory_, u64 begin, u64 end) noexcept
- : device{&device_}, allocation{allocation_}, memory{memory_}, interval{begin, end} {}
+MemoryCommit::MemoryCommit(MemoryAllocation* allocation_, VkDeviceMemory memory_, u64 begin_,
+ u64 end_) noexcept
+ : allocation{allocation_}, memory{memory_}, begin{begin_}, end{end_} {}
MemoryCommit::~MemoryCommit() {
Release();
@@ -137,28 +137,28 @@ MemoryCommit::~MemoryCommit() {
MemoryCommit& MemoryCommit::operator=(MemoryCommit&& rhs) noexcept {
Release();
- device = rhs.device;
allocation = std::exchange(rhs.allocation, nullptr);
memory = rhs.memory;
- interval = rhs.interval;
+ begin = rhs.begin;
+ end = rhs.end;
span = std::exchange(rhs.span, std::span<u8>{});
return *this;
}
MemoryCommit::MemoryCommit(MemoryCommit&& rhs) noexcept
- : device{rhs.device}, allocation{std::exchange(rhs.allocation, nullptr)}, memory{rhs.memory},
- interval{rhs.interval}, span{std::exchange(rhs.span, std::span<u8>{})} {}
+ : allocation{std::exchange(rhs.allocation, nullptr)}, memory{rhs.memory}, begin{rhs.begin},
+ end{rhs.end}, span{std::exchange(rhs.span, std::span<u8>{})} {}
std::span<u8> MemoryCommit::Map() {
if (span.empty()) {
- span = allocation->Map().subspan(interval.first, interval.second - interval.first);
+ span = allocation->Map().subspan(begin, end - begin);
}
return span;
}
void MemoryCommit::Release() {
if (allocation) {
- allocation->Free(interval.first);
+ allocation->Free(begin);
}
}
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.h b/src/video_core/vulkan_common/vulkan_memory_allocator.h
index d4e34c843..53b3b275a 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.h
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.h
@@ -29,8 +29,8 @@ enum class MemoryUsage {
class MemoryCommit {
public:
explicit MemoryCommit() noexcept = default;
- explicit MemoryCommit(const Device& device_, MemoryAllocation* allocation_,
- VkDeviceMemory memory_, u64 begin, u64 end) noexcept;
+ explicit MemoryCommit(MemoryAllocation* allocation_, VkDeviceMemory memory_, u64 begin_,
+ u64 end_) noexcept;
~MemoryCommit();
MemoryCommit& operator=(MemoryCommit&&) noexcept;
@@ -50,16 +50,16 @@ public:
/// Returns the start position of the commit relative to the allocation.
VkDeviceSize Offset() const {
- return static_cast<VkDeviceSize>(interval.first);
+ return static_cast<VkDeviceSize>(begin);
}
private:
void Release();
- const Device* device{}; ///< Vulkan device.
MemoryAllocation* allocation{}; ///< Pointer to the large memory allocation.
VkDeviceMemory memory{}; ///< Vulkan device memory handler.
- std::pair<u64, u64> interval{}; ///< Interval where the commit exists.
+ u64 begin{}; ///< Beginning offset in bytes to where the commit exists.
+ u64 end{}; ///< Offset in bytes where the commit ends.
std::span<u8> span; ///< Host visible memory span. Empty if not queried before.
};