diff options
| author | 2024-01-22 10:55:39 -0500 | |
|---|---|---|
| committer | 2024-01-22 10:55:39 -0500 | |
| commit | 8bd10473d60503c7acddc399604a51b9c9947541 (patch) | |
| tree | f713f84942681321fca27ba028e31d6c74a09013 /src/video_core/shader_cache.cpp | |
| parent | Merge pull request #12747 from t895/homescreen-widget (diff) | |
| parent | device_memory_manager: use unique_lock for update (diff) | |
| download | yuzu-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.cpp | 8 |
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 | ||
| 37 | ShaderCache::ShaderCache(VideoCore::RasterizerInterface& rasterizer_) : rasterizer{rasterizer_} {} | 38 | ShaderCache::ShaderCache(Tegra::MaxwellDeviceMemoryManager& device_memory_) |
| 39 | : device_memory{device_memory_} {} | ||
| 38 | 40 | ||
| 39 | bool ShaderCache::RefreshStages(std::array<u64, 6>& unique_hashes) { | 41 | bool 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 | ||
| 138 | void ShaderCache::InvalidatePagesInRegion(VAddr addr, size_t size) { | 140 | void 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 | ||
| 215 | void ShaderCache::RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders) { | 217 | void ShaderCache::RemoveShadersFromStorage(std::span<ShaderInfo*> removed_shaders) { |