diff options
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 11 | 
1 files changed, 4 insertions, 7 deletions
| diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 502b4d90a..a8bd5585b 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -20,6 +20,7 @@  #include "common/lru_cache.h"  #include "common/microprofile.h"  #include "common/polyfill_ranges.h" +#include "common/scratch_buffer.h"  #include "common/settings.h"  #include "core/memory.h"  #include "video_core/buffer_cache/buffer_base.h" @@ -422,8 +423,7 @@ private:      IntervalSet common_ranges;      std::deque<IntervalSet> committed_ranges; -    size_t immediate_buffer_capacity = 0; -    std::unique_ptr<u8[]> immediate_buffer_alloc; +    Common::ScratchBuffer<u8> immediate_buffer_alloc;      struct LRUItemParams {          using ObjectType = BufferId; @@ -1926,11 +1926,8 @@ std::span<const u8> BufferCache<P>::ImmediateBufferWithData(VAddr cpu_addr, size  template <class P>  std::span<u8> BufferCache<P>::ImmediateBuffer(size_t wanted_capacity) { -    if (wanted_capacity > immediate_buffer_capacity) { -        immediate_buffer_capacity = wanted_capacity; -        immediate_buffer_alloc = std::make_unique<u8[]>(wanted_capacity); -    } -    return std::span<u8>(immediate_buffer_alloc.get(), wanted_capacity); +    immediate_buffer_alloc.resize(wanted_capacity); +    return std::span<u8>(immediate_buffer_alloc.data(), wanted_capacity);  }  template <class P> | 
