NVDRV: Implement sessions and initial implementation of SMMU
This commit is contained in:
parent
2f0418c101
commit
7a9d1ad2f8
37 changed files with 260 additions and 100 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue