diff options
| author | 2022-02-01 01:58:38 -0500 | |
|---|---|---|
| committer | 2022-02-01 01:58:38 -0500 | |
| commit | 26a9dc3f65824d9d3b1a8da17f204edb083c9b99 (patch) | |
| tree | 083c76d53f755b1bef3623a0d0215bbc89fb627a /src | |
| parent | Merge pull request #7822 from zhaobot/tx-update-20220201021425 (diff) | |
| parent | video_core/shader_cache: Remove unused algorithm include (diff) | |
| download | yuzu-26a9dc3f65824d9d3b1a8da17f204edb083c9b99.tar.gz yuzu-26a9dc3f65824d9d3b1a8da17f204edb083c9b99.tar.xz yuzu-26a9dc3f65824d9d3b1a8da17f204edb083c9b99.zip | |
Merge pull request #7824 from lioncash/scache
video_core/shader_cache: Take std::span in RemoveShadersFromStorage()
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader_cache.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/shader_cache.h | 3 |
2 files changed, 3 insertions, 4 deletions
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() { | |||
| 170 | marked_for_removal.clear(); | 170 | marked_for_removal.clear(); |
| 171 | 171 | ||
| 172 | if (!removed_shaders.empty()) { | 172 | if (!removed_shaders.empty()) { |
| 173 | RemoveShadersFromStorage(std::move(removed_shaders)); | 173 | RemoveShadersFromStorage(removed_shaders); |
| 174 | } | 174 | } |
| 175 | } | 175 | } |
| 176 | 176 | ||
| @@ -213,7 +213,7 @@ void ShaderCache::UnmarkMemory(Entry* entry) { | |||
| 213 | rasterizer.UpdatePagesCachedCount(addr, size, -1); | 213 | rasterizer.UpdatePagesCachedCount(addr, size, -1); |
| 214 | } | 214 | } |
| 215 | 215 | ||
| 216 | void ShaderCache::RemoveShadersFromStorage(std::vector<ShaderInfo*> removed_shaders) { | 216 | void ShaderCache::RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders) { |
| 217 | // Remove them from the cache | 217 | // Remove them from the cache |
| 218 | std::erase_if(storage, [&removed_shaders](const std::unique_ptr<ShaderInfo>& shader) { | 218 | std::erase_if(storage, [&removed_shaders](const std::unique_ptr<ShaderInfo>& shader) { |
| 219 | return std::ranges::find(removed_shaders, shader.get()) != removed_shaders.end(); | 219 | 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..8836bc8c6 100644 --- a/src/video_core/shader_cache.h +++ b/src/video_core/shader_cache.h | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <algorithm> | ||
| 8 | #include <array> | 7 | #include <array> |
| 9 | #include <memory> | 8 | #include <memory> |
| 10 | #include <mutex> | 9 | #include <mutex> |
| @@ -138,7 +137,7 @@ private: | |||
| 138 | /// @param removed_shaders Shaders to be removed from the storage | 137 | /// @param removed_shaders Shaders to be removed from the storage |
| 139 | /// @pre invalidation_mutex is locked | 138 | /// @pre invalidation_mutex is locked |
| 140 | /// @pre lookup_mutex is locked | 139 | /// @pre lookup_mutex is locked |
| 141 | void RemoveShadersFromStorage(std::vector<ShaderInfo*> removed_shaders); | 140 | void RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders); |
| 142 | 141 | ||
| 143 | /// @brief Creates a new entry in the lookup cache and returns its pointer | 142 | /// @brief Creates a new entry in the lookup cache and returns its pointer |
| 144 | /// @pre lookup_mutex is locked | 143 | /// @pre lookup_mutex is locked |