|
|
|
@ -84,7 +84,7 @@ vk::Buffer CreateBuffer(const Device& device, const MemoryAllocator& memory_allo |
|
|
|
} // Anonymous namespace
|
|
|
|
|
|
|
|
Buffer::Buffer(BufferCacheRuntime& runtime, VideoCommon::NullBufferParams null_params) |
|
|
|
: VideoCommon::BufferBase(null_params), tracker{4096} { |
|
|
|
: VideoCommon::BufferBase(null_params), scheduler{&runtime.scheduler}, tracker{4096} { |
|
|
|
if (runtime.device.HasNullDescriptor()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
@ -95,6 +95,7 @@ Buffer::Buffer(BufferCacheRuntime& runtime, VideoCommon::NullBufferParams null_p |
|
|
|
|
|
|
|
Buffer::Buffer(BufferCacheRuntime& runtime, DAddr cpu_addr_, u64 size_bytes_) |
|
|
|
: VideoCommon::BufferBase(cpu_addr_, size_bytes_), device{&runtime.device}, |
|
|
|
scheduler{&runtime.scheduler}, |
|
|
|
buffer{CreateBuffer(*device, runtime.memory_allocator, SizeBytes())}, tracker{SizeBytes()} { |
|
|
|
if (runtime.device.HasDebuggingToolAttached()) { |
|
|
|
buffer.SetObjectNameEXT(fmt::format("Buffer 0x{:x}", CpuAddr()).c_str()); |
|
|
|
@ -384,7 +385,9 @@ u32 BufferCacheRuntime::GetStorageBufferAlignment() const { |
|
|
|
|
|
|
|
void BufferCacheRuntime::TickFrame(Common::SlotVector<Buffer>& slot_buffers) noexcept { |
|
|
|
for (auto it = slot_buffers.begin(); it != slot_buffers.end(); it++) { |
|
|
|
it->ResetUsageTracking(); |
|
|
|
if (scheduler.IsFree(it->LastUsageTick())) { |
|
|
|
it->ResetUsageTracking(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|