From 540ed72e99d783f03574a63077c876deed9a6aaf Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 1 Feb 2022 01:39:40 -0500 Subject: video_core/shader_cache: Take std::span in RemoveShadersFromStorage() Same behavior, but without the need to move into the function to avoid an allocation. --- src/video_core/shader_cache.cpp | 4 ++-- src/video_core/shader_cache.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/video_core/shader_cache.cpp b/src/video_core/shader_cache.cpp index 78bf90c48..87636857d 100644 --- a/src/video_core/shader_cache.cpp +++ b/src/video_core/shader_cache.cpp @@ -170,7 +170,7 @@ void ShaderCache::RemovePendingShaders() { marked_for_removal.clear(); if (!removed_shaders.empty()) { - RemoveShadersFromStorage(std::move(removed_shaders)); + RemoveShadersFromStorage(removed_shaders); } } @@ -213,7 +213,7 @@ void ShaderCache::UnmarkMemory(Entry* entry) { rasterizer.UpdatePagesCachedCount(addr, size, -1); } -void ShaderCache::RemoveShadersFromStorage(std::vector removed_shaders) { +void ShaderCache::RemoveShadersFromStorage(std::span removed_shaders) { // Remove them from the cache std::erase_if(storage, [&removed_shaders](const std::unique_ptr& shader) { return std::ranges::find(removed_shaders, shader.get()) != removed_shaders.end(); diff --git a/src/video_core/shader_cache.h b/src/video_core/shader_cache.h index 136fe294c..65333608c 100644 --- a/src/video_core/shader_cache.h +++ b/src/video_core/shader_cache.h @@ -138,7 +138,7 @@ private: /// @param removed_shaders Shaders to be removed from the storage /// @pre invalidation_mutex is locked /// @pre lookup_mutex is locked - void RemoveShadersFromStorage(std::vector removed_shaders); + void RemoveShadersFromStorage(std::span removed_shaders); /// @brief Creates a new entry in the lookup cache and returns its pointer /// @pre lookup_mutex is locked -- cgit v1.2.3