|
|
|
@ -100,7 +100,6 @@ void VKStagingBufferPool::ReleaseCache(bool host_visible) { |
|
|
|
} |
|
|
|
|
|
|
|
u64 VKStagingBufferPool::ReleaseLevel(StagingBuffersCache& cache, std::size_t log2) { |
|
|
|
static constexpr u64 epochs_to_destroy = 180; |
|
|
|
static constexpr std::size_t deletions_per_tick = 16; |
|
|
|
|
|
|
|
auto& staging = cache[log2]; |
|
|
|
@ -108,6 +107,7 @@ u64 VKStagingBufferPool::ReleaseLevel(StagingBuffersCache& cache, std::size_t lo |
|
|
|
const std::size_t old_size = entries.size(); |
|
|
|
|
|
|
|
const auto is_deleteable = [this](const auto& entry) { |
|
|
|
static constexpr u64 epochs_to_destroy = 180; |
|
|
|
return entry.last_epoch + epochs_to_destroy < epoch && !entry.watch.IsUsed(); |
|
|
|
}; |
|
|
|
const std::size_t begin_offset = staging.delete_index; |
|
|
|
|