yuzu-emu
/
yuzu-mainline
Archived
1
0
Fork 0

GPU: Move the GPU's class constructor and destructors to a cpp file.

This should reduce recompile times when editing the Maxwell3D register structure.
This commit is contained in:
Subv 2018-03-18 15:15:05 -05:00
parent 46f9d4b4a3
commit a64b936cbe
3 changed files with 30 additions and 10 deletions

View File

@ -7,6 +7,7 @@ add_library(video_core STATIC
engines/maxwell_3d.h engines/maxwell_3d.h
engines/maxwell_compute.cpp engines/maxwell_compute.cpp
engines/maxwell_compute.h engines/maxwell_compute.h
gpu.cpp
gpu.h gpu.h
memory_manager.cpp memory_manager.cpp
memory_manager.h memory_manager.h

21
src/video_core/gpu.cpp Normal file
View File

@ -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

View File

@ -8,13 +8,16 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
#include "common/common_types.h" #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" #include "video_core/memory_manager.h"
namespace Tegra { namespace Tegra {
namespace Engines {
class Fermi2D;
class Maxwell3D;
class MaxwellCompute;
} // namespace Engines
enum class EngineID { enum class EngineID {
FERMI_TWOD_A = 0x902D, // 2D Engine FERMI_TWOD_A = 0x902D, // 2D Engine
MAXWELL_B = 0xB197, // 3D Engine MAXWELL_B = 0xB197, // 3D Engine
@ -25,13 +28,8 @@ enum class EngineID {
class GPU final { class GPU final {
public: public:
GPU() { GPU();
memory_manager = std::make_unique<MemoryManager>(); ~GPU();
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;
/// Processes a command list stored at the specified address in GPU memory. /// Processes a command list stored at the specified address in GPU memory.
void ProcessCommandList(GPUVAddr address, u32 size); void ProcessCommandList(GPUVAddr address, u32 size);