From 2f0418c10134b4c8e5ae47ace623b5db57c0435c Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Thu, 21 Dec 2023 00:04:03 +0100 Subject: Core: Initial implementation of device memory mapping --- src/video_core/host1x/gpu_device_memory_manager.cpp | 21 +++++++++++++++++++++ src/video_core/host1x/gpu_device_memory_manager.h | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/video_core/host1x/gpu_device_memory_manager.cpp create mode 100644 src/video_core/host1x/gpu_device_memory_manager.h (limited to 'src/video_core/host1x') diff --git a/src/video_core/host1x/gpu_device_memory_manager.cpp b/src/video_core/host1x/gpu_device_memory_manager.cpp new file mode 100644 index 000000000..2ca445081 --- /dev/null +++ b/src/video_core/host1x/gpu_device_memory_manager.cpp @@ -0,0 +1,21 @@ +// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "core/device_memory_manager.inc" +#include "video_core/host1x/gpu_device_memory_manager.h" +#include "video_core/rasterizer_interface.h" + +template struct Core::DeviceMemoryManagerAllocator; +template class Core::DeviceMemoryManager; + +template const u8* Tegra::MaxwellDeviceMemoryManager::GetPointer(DAddr addr) const; +template u8* Tegra::MaxwellDeviceMemoryManager::GetPointer(DAddr addr); + +template u8 Tegra::MaxwellDeviceMemoryManager::Read(DAddr addr) const; +template u16 Tegra::MaxwellDeviceMemoryManager::Read(DAddr addr) const; +template u32 Tegra::MaxwellDeviceMemoryManager::Read(DAddr addr) const; +template u64 Tegra::MaxwellDeviceMemoryManager::Read(DAddr addr) const; +template void Tegra::MaxwellDeviceMemoryManager::Write(DAddr addr, u8 data); +template void Tegra::MaxwellDeviceMemoryManager::Write(DAddr addr, u16 data); +template void Tegra::MaxwellDeviceMemoryManager::Write(DAddr addr, u32 data); +template void Tegra::MaxwellDeviceMemoryManager::Write(DAddr addr, u64 data); \ No newline at end of file diff --git a/src/video_core/host1x/gpu_device_memory_manager.h b/src/video_core/host1x/gpu_device_memory_manager.h new file mode 100644 index 000000000..30ad52017 --- /dev/null +++ b/src/video_core/host1x/gpu_device_memory_manager.h @@ -0,0 +1,20 @@ +// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "core/device_memory_manager.h" + +namespace VideoCore { +class RasterizerInterface; +} + +namespace Tegra { + +struct MaxwellDeviceTraits { + static constexpr bool supports_pinning = true; + static constexpr size_t device_virtual_bits = 34; + using DeviceInterface = typename VideoCore::RasterizerInterface; +}; + +using MaxwellDeviceMemoryManager = Core::DeviceMemoryManager; + +} // namespace Tegra \ No newline at end of file -- cgit v1.2.3