summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Morph2022-02-01 01:58:38 -0500
committerGravatar GitHub2022-02-01 01:58:38 -0500
commit26a9dc3f65824d9d3b1a8da17f204edb083c9b99 (patch)
tree083c76d53f755b1bef3623a0d0215bbc89fb627a /src
parentMerge pull request #7822 from zhaobot/tx-update-20220201021425 (diff)
parentvideo_core/shader_cache: Remove unused algorithm include (diff)
downloadyuzu-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.cpp4
-rw-r--r--src/video_core/shader_cache.h3
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
216void ShaderCache::RemoveShadersFromStorage(std::vector<ShaderInfo*> removed_shaders) { 216void 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