summaryrefslogtreecommitdiff
path: root/src/video_core/shader_cache.cpp
diff options
context:
space:
mode:
authorGravatar liamwhite2024-01-22 10:55:39 -0500
committerGravatar GitHub2024-01-22 10:55:39 -0500
commit8bd10473d60503c7acddc399604a51b9c9947541 (patch)
treef713f84942681321fca27ba028e31d6c74a09013 /src/video_core/shader_cache.cpp
parentMerge pull request #12747 from t895/homescreen-widget (diff)
parentdevice_memory_manager: use unique_lock for update (diff)
downloadyuzu-8bd10473d60503c7acddc399604a51b9c9947541.tar.gz
yuzu-8bd10473d60503c7acddc399604a51b9c9947541.tar.xz
yuzu-8bd10473d60503c7acddc399604a51b9c9947541.zip
Merge pull request #12579 from FernandoS27/smmu
Core: Implement Device Mapping & GPU SMMU
Diffstat (limited to 'src/video_core/shader_cache.cpp')
-rw-r--r--src/video_core/shader_cache.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/video_core/shader_cache.cpp b/src/video_core/shader_cache.cpp
index e81cd031b..2af32c8f2 100644
--- a/src/video_core/shader_cache.cpp
+++ b/src/video_core/shader_cache.cpp
@@ -12,6 +12,7 @@
12#include "video_core/dirty_flags.h" 12#include "video_core/dirty_flags.h"
13#include "video_core/engines/kepler_compute.h" 13#include "video_core/engines/kepler_compute.h"
14#include "video_core/engines/maxwell_3d.h" 14#include "video_core/engines/maxwell_3d.h"
15#include "video_core/host1x/gpu_device_memory_manager.h"
15#include "video_core/memory_manager.h" 16#include "video_core/memory_manager.h"
16#include "video_core/shader_cache.h" 17#include "video_core/shader_cache.h"
17#include "video_core/shader_environment.h" 18#include "video_core/shader_environment.h"
@@ -34,7 +35,8 @@ void ShaderCache::SyncGuestHost() {
34 RemovePendingShaders(); 35 RemovePendingShaders();
35} 36}
36 37
37ShaderCache::ShaderCache(VideoCore::RasterizerInterface& rasterizer_) : rasterizer{rasterizer_} {} 38ShaderCache::ShaderCache(Tegra::MaxwellDeviceMemoryManager& device_memory_)
39 : device_memory{device_memory_} {}
38 40
39bool ShaderCache::RefreshStages(std::array<u64, 6>& unique_hashes) { 41bool ShaderCache::RefreshStages(std::array<u64, 6>& unique_hashes) {
40 auto& dirty{maxwell3d->dirty.flags}; 42 auto& dirty{maxwell3d->dirty.flags};
@@ -132,7 +134,7 @@ void ShaderCache::Register(std::unique_ptr<ShaderInfo> data, VAddr addr, size_t
132 134
133 storage.push_back(std::move(data)); 135 storage.push_back(std::move(data));
134 136
135 rasterizer.UpdatePagesCachedCount(addr, size, 1); 137 device_memory.UpdatePagesCachedCount(addr, size, 1);
136} 138}
137 139
138void ShaderCache::InvalidatePagesInRegion(VAddr addr, size_t size) { 140void ShaderCache::InvalidatePagesInRegion(VAddr addr, size_t size) {
@@ -209,7 +211,7 @@ void ShaderCache::UnmarkMemory(Entry* entry) {
209 211
210 const VAddr addr = entry->addr_start; 212 const VAddr addr = entry->addr_start;
211 const size_t size = entry->addr_end - addr; 213 const size_t size = entry->addr_end - addr;
212 rasterizer.UpdatePagesCachedCount(addr, size, -1); 214 device_memory.UpdatePagesCachedCount(addr, size, -1);
213} 215}
214 216
215void ShaderCache::RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders) { 217void ShaderCache::RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders) {