diff --git a/src/video_core/texture_cache/surface_base.cpp b/src/video_core/texture_cache/surface_base.cpp
index 051014c6aa9686b1ed9ffc54c5c5d32d798274c5..7a0fdb19bc6c05439404de361ad75a0659cbf1d4 100644
--- a/src/video_core/texture_cache/surface_base.cpp
+++ b/src/video_core/texture_cache/surface_base.cpp
@@ -19,6 +19,10 @@ using Tegra::Texture::ConvertFromGuestToHost;
 using VideoCore::MortonSwizzleMode;
 using VideoCore::Surface::SurfaceCompression;
 
+StagingCache::StagingCache() = default;
+
+StagingCache::~StagingCache() = default;
+
 SurfaceBaseImpl::SurfaceBaseImpl(GPUVAddr gpu_addr, const SurfaceParams& params)
     : params{params}, mipmap_sizes(params.num_levels),
       mipmap_offsets(params.num_levels), gpu_addr{gpu_addr}, host_memory_size{
diff --git a/src/video_core/texture_cache/surface_base.h b/src/video_core/texture_cache/surface_base.h
index 252b18538ee4f21ec6a6573e3871fd2223854cf3..d632630ce7fe58ded842cdd4cb43e257791b5a38 100644
--- a/src/video_core/texture_cache/surface_base.h
+++ b/src/video_core/texture_cache/surface_base.h
@@ -40,13 +40,17 @@ enum class MatchTopologyResult : u32 {
 
 class StagingCache {
 public:
-    StagingCache() {}
-    ~StagingCache() = default;
+    explicit StagingCache();
+    ~StagingCache();
 
     std::vector<u8>& GetBuffer(std::size_t index) {
         return staging_buffer[index];
     }
 
+    const std::vector<u8>& GetBuffer(std::size_t index) const {
+        return staging_buffer[index];
+    }
+
     void SetSize(std::size_t size) {
         staging_buffer.resize(size);
     }