summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2023-12-24 18:20:02 +0100
committerLiam <byteslice@airmail.cc>2024-01-19 03:12:30 +0100
commit7a9d1ad2f873003e6aad637e8749b77b91247da3 (patch)
treee167a5d5ad73dbd78dc4b5c165b12a1220a167f4 /src/video_core
parentCore: Initial implementation of device memory mapping (diff)
downloadyuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar.gz
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar.bz2
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar.lz
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar.xz
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.tar.zst
yuzu-7a9d1ad2f873003e6aad637e8749b77b91247da3.zip
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/CMakeLists.txt2
-rw-r--r--src/video_core/gpu.cpp2
-rw-r--r--src/video_core/host1x/host1x.cpp3
-rw-r--r--src/video_core/host1x/host1x.h18
4 files changed, 8 insertions, 17 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index c22c7631c..2dda8ebc2 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -71,6 +71,8 @@ add_library(video_core STATIC
host1x/ffmpeg/ffmpeg.h
host1x/control.cpp
host1x/control.h
+ host1x/gpu_device_memory_manager.cpp
+ host1x/gpu_device_memory_manager.h
host1x/host1x.cpp
host1x/host1x.h
host1x/nvdec.cpp
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index 11549d448..1e915682f 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -85,7 +85,7 @@ struct GPU::Impl {
void BindRenderer(std::unique_ptr<VideoCore::RendererBase> renderer_) {
renderer = std::move(renderer_);
rasterizer = renderer->ReadRasterizer();
- host1x.MemoryManager().BindRasterizer(rasterizer);
+ host1x.MemoryManager().BindInterface(rasterizer);
}
/// Flush all current written commands into the host GPU for execution.
diff --git a/src/video_core/host1x/host1x.cpp b/src/video_core/host1x/host1x.cpp
index 7c317a85d..d05bcaf26 100644
--- a/src/video_core/host1x/host1x.cpp
+++ b/src/video_core/host1x/host1x.cpp
@@ -9,8 +9,7 @@ namespace Tegra {
namespace Host1x {
Host1x::Host1x(Core::System& system_)
- : system{system_}, syncpoint_manager{}, memory_manager{system, 32, 12},
- allocator{std::make_unique<Common::FlatAllocator<u32, 0, 32>>(1 << 12)} {}
+ : system{system_}, syncpoint_manager{}, memory_manager(system.DeviceMemory()) {}
} // namespace Host1x
diff --git a/src/video_core/host1x/host1x.h b/src/video_core/host1x/host1x.h
index 57082ae54..18f7389f6 100644
--- a/src/video_core/host1x/host1x.h
+++ b/src/video_core/host1x/host1x.h
@@ -5,9 +5,8 @@
#include "common/common_types.h"
-#include "common/address_space.h"
+#include "video_core/host1x/gpu_device_memory_manager.h"
#include "video_core/host1x/syncpoint_manager.h"
-#include "video_core/memory_manager.h"
namespace Core {
class System;
@@ -29,27 +28,18 @@ public:
return syncpoint_manager;
}
- Tegra::MemoryManager& MemoryManager() {
+ Tegra::MaxwellDeviceMemoryManager& MemoryManager() {
return memory_manager;
}
- const Tegra::MemoryManager& MemoryManager() const {
+ const Tegra::MaxwellDeviceMemoryManager& MemoryManager() const {
return memory_manager;
}
- Common::FlatAllocator<u32, 0, 32>& Allocator() {
- return *allocator;
- }
-
- const Common::FlatAllocator<u32, 0, 32>& Allocator() const {
- return *allocator;
- }
-
private:
Core::System& system;
SyncpointManager syncpoint_manager;
- Tegra::MemoryManager memory_manager;
- std::unique_ptr<Common::FlatAllocator<u32, 0, 32>> allocator;
+ Tegra::MaxwellDeviceMemoryManager memory_manager;
};
} // namespace Host1x