diff options
author | Subv <subv2112@gmail.com> | 2018-03-18 21:15:05 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-03-18 21:23:24 +0100 |
commit | a64b936cbe6e779627f69ebde85a3055ccd6c2de (patch) | |
tree | 134b00ab118a890e7903688f1e13289ddba9344e | |
parent | Merge pull request #246 from Subv/gpu_macro_calls (diff) | |
download | yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar.gz yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar.bz2 yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar.lz yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar.xz yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.tar.zst yuzu-a64b936cbe6e779627f69ebde85a3055ccd6c2de.zip |
-rw-r--r-- | src/video_core/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/video_core/gpu.cpp | 21 | ||||
-rw-r--r-- | src/video_core/gpu.h | 18 |
3 files changed, 30 insertions, 10 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index ed87f8ff1..2f946e7be 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -7,6 +7,7 @@ add_library(video_core STATIC engines/maxwell_3d.h engines/maxwell_compute.cpp engines/maxwell_compute.h + gpu.cpp gpu.h memory_manager.cpp memory_manager.h diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp new file mode 100644 index 000000000..c384d236e --- /dev/null +++ b/src/video_core/gpu.cpp @@ -0,0 +1,21 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "video_core/engines/fermi_2d.h" +#include "video_core/engines/maxwell_3d.h" +#include "video_core/engines/maxwell_compute.h" +#include "video_core/gpu.h" + +namespace Tegra { + +GPU::GPU() { + memory_manager = std::make_unique<MemoryManager>(); + maxwell_3d = std::make_unique<Engines::Maxwell3D>(*memory_manager); + fermi_2d = std::make_unique<Engines::Fermi2D>(); + maxwell_compute = std::make_unique<Engines::MaxwellCompute>(); +} + +GPU::~GPU() = default; + +} // namespace Tegra diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index d2e4ff52d..2a9064ba3 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -8,13 +8,16 @@ #include <unordered_map> #include <vector> #include "common/common_types.h" -#include "video_core/engines/fermi_2d.h" -#include "video_core/engines/maxwell_3d.h" -#include "video_core/engines/maxwell_compute.h" #include "video_core/memory_manager.h" namespace Tegra { +namespace Engines { +class Fermi2D; +class Maxwell3D; +class MaxwellCompute; +} // namespace Engines + enum class EngineID { FERMI_TWOD_A = 0x902D, // 2D Engine MAXWELL_B = 0xB197, // 3D Engine @@ -25,13 +28,8 @@ enum class EngineID { class GPU final { public: - GPU() { - memory_manager = std::make_unique<MemoryManager>(); - maxwell_3d = std::make_unique<Engines::Maxwell3D>(*memory_manager); - fermi_2d = std::make_unique<Engines::Fermi2D>(); - maxwell_compute = std::make_unique<Engines::MaxwellCompute>(); - } - ~GPU() = default; + GPU(); + ~GPU(); /// Processes a command list stored at the specified address in GPU memory. void ProcessCommandList(GPUVAddr address, u32 size); |