summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-12-30 04:37:25 +0100
committerGravatar Liam2024-01-18 21:12:30 -0500
commit303cd311621b25fbb8d55e0ed2cc4c3248de44ad (patch)
treef52d147d935449c21e8a8edf8ad28272859d94c5 /src/video_core
parentGPU-SMMU: Estimate game leak and preallocate device region. (diff)
downloadyuzu-303cd311621b25fbb8d55e0ed2cc4c3248de44ad.tar.gz
yuzu-303cd311621b25fbb8d55e0ed2cc4c3248de44ad.tar.xz
yuzu-303cd311621b25fbb8d55e0ed2cc4c3248de44ad.zip
SMMU: Add Android compatibility
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/host1x/gpu_device_memory_manager.h2
-rw-r--r--src/video_core/host1x/host1x.cpp2
-rw-r--r--src/video_core/host1x/host1x.h1
-rw-r--r--src/video_core/memory_manager.h2
-rw-r--r--src/video_core/query_cache/query_cache.h6
5 files changed, 8 insertions, 5 deletions
diff --git a/src/video_core/host1x/gpu_device_memory_manager.h b/src/video_core/host1x/gpu_device_memory_manager.h
index 6c7858848..9ccd84b9a 100644
--- a/src/video_core/host1x/gpu_device_memory_manager.h
+++ b/src/video_core/host1x/gpu_device_memory_manager.h
@@ -17,7 +17,7 @@ struct MaxwellDeviceTraits {
17 static constexpr bool supports_pinning = false; 17 static constexpr bool supports_pinning = false;
18 static constexpr size_t device_virtual_bits = 34; 18 static constexpr size_t device_virtual_bits = 34;
19 using DeviceInterface = typename VideoCore::RasterizerInterface; 19 using DeviceInterface = typename VideoCore::RasterizerInterface;
20 using DeviceMethods = typename MaxwellDeviceMethods; 20 using DeviceMethods = MaxwellDeviceMethods;
21}; 21};
22 22
23using MaxwellDeviceMemoryManager = Core::DeviceMemoryManager<MaxwellDeviceTraits>; 23using MaxwellDeviceMemoryManager = Core::DeviceMemoryManager<MaxwellDeviceTraits>;
diff --git a/src/video_core/host1x/host1x.cpp b/src/video_core/host1x/host1x.cpp
index b7f9a08cf..c4c7a5883 100644
--- a/src/video_core/host1x/host1x.cpp
+++ b/src/video_core/host1x/host1x.cpp
@@ -13,6 +13,8 @@ Host1x::Host1x(Core::System& system_)
13 memory_manager(system.DeviceMemory()), gmmu_manager{system, memory_manager, 32, 12}, 13 memory_manager(system.DeviceMemory()), gmmu_manager{system, memory_manager, 32, 12},
14 allocator{std::make_unique<Common::FlatAllocator<u32, 0, 32>>(1 << 12)} {} 14 allocator{std::make_unique<Common::FlatAllocator<u32, 0, 32>>(1 << 12)} {}
15 15
16Host1x::~Host1x() = default;
17
16} // namespace Host1x 18} // namespace Host1x
17 19
18} // namespace Tegra 20} // namespace Tegra
diff --git a/src/video_core/host1x/host1x.h b/src/video_core/host1x/host1x.h
index 13c37e6b4..d72d97b7b 100644
--- a/src/video_core/host1x/host1x.h
+++ b/src/video_core/host1x/host1x.h
@@ -21,6 +21,7 @@ namespace Host1x {
21class Host1x { 21class Host1x {
22public: 22public:
23 explicit Host1x(Core::System& system); 23 explicit Host1x(Core::System& system);
24 ~Host1x();
24 25
25 SyncpointManager& GetSyncpointManager() { 26 SyncpointManager& GetSyncpointManager() {
26 return syncpoint_manager; 27 return syncpoint_manager;
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h
index 6b2cd7efb..00d64dcce 100644
--- a/src/video_core/memory_manager.h
+++ b/src/video_core/memory_manager.h
@@ -68,7 +68,7 @@ public:
68 if (!address) { 68 if (!address) {
69 return {}; 69 return {};
70 } 70 }
71 return memory.GetPointer(*address); 71 return memory.GetPointer<T>(*address);
72 } 72 }
73 73
74 template <typename T> 74 template <typename T>
diff --git a/src/video_core/query_cache/query_cache.h b/src/video_core/query_cache/query_cache.h
index 508afb10a..b5e90cf8c 100644
--- a/src/video_core/query_cache/query_cache.h
+++ b/src/video_core/query_cache/query_cache.h
@@ -256,8 +256,8 @@ void QueryCacheBase<Traits>::CounterReport(GPUVAddr addr, QueryType counter_type
256 return std::make_pair<u64, u32>(cur_addr >> Core::Memory::YUZU_PAGEBITS, 256 return std::make_pair<u64, u32>(cur_addr >> Core::Memory::YUZU_PAGEBITS,
257 static_cast<u32>(cur_addr & Core::Memory::YUZU_PAGEMASK)); 257 static_cast<u32>(cur_addr & Core::Memory::YUZU_PAGEMASK));
258 }; 258 };
259 u8* pointer = impl->device_memory.GetPointer<u8>(cpu_addr); 259 u8* pointer = impl->device_memory.template GetPointer<u8>(cpu_addr);
260 u8* pointer_timestamp = impl->device_memory.GetPointer<u8>(cpu_addr + 8); 260 u8* pointer_timestamp = impl->device_memory.template GetPointer<u8>(cpu_addr + 8);
261 bool is_synced = !Settings::IsGPULevelHigh() && is_fence; 261 bool is_synced = !Settings::IsGPULevelHigh() && is_fence;
262 std::function<void()> operation([this, is_synced, streamer, query_base = query, query_location, 262 std::function<void()> operation([this, is_synced, streamer, query_base = query, query_location,
263 pointer, pointer_timestamp] { 263 pointer, pointer_timestamp] {
@@ -561,7 +561,7 @@ bool QueryCacheBase<Traits>::SemiFlushQueryDirty(QueryCacheBase<Traits>::QueryLo
561 } 561 }
562 if (True(query_base->flags & QueryFlagBits::IsFinalValueSynced) && 562 if (True(query_base->flags & QueryFlagBits::IsFinalValueSynced) &&
563 False(query_base->flags & QueryFlagBits::IsGuestSynced)) { 563 False(query_base->flags & QueryFlagBits::IsGuestSynced)) {
564 auto* ptr = impl->device_memory.GetPointer<u8>(query_base->guest_address); 564 auto* ptr = impl->device_memory.template GetPointer<u8>(query_base->guest_address);
565 if (True(query_base->flags & QueryFlagBits::HasTimestamp)) { 565 if (True(query_base->flags & QueryFlagBits::HasTimestamp)) {
566 std::memcpy(ptr, &query_base->value, sizeof(query_base->value)); 566 std::memcpy(ptr, &query_base->value, sizeof(query_base->value));
567 return false; 567 return false;