From 85b2c3b0516b6f127826d8b65b25066703157414 Mon Sep 17 00:00:00 2001 From: bunnei Date: Mon, 7 Jan 2019 23:32:02 -0500 Subject: [PATCH] gpu: Refactor to take RendererBase instead of RasterizerInterface. --- src/core/core.cpp | 2 +- src/video_core/gpu.cpp | 5 +++-- src/video_core/gpu.h | 8 +++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/core/core.cpp b/src/core/core.cpp index f8e45d063c..fd7c53ce71 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -130,7 +130,7 @@ struct System::Impl { is_powered_on = true; - gpu_core = std::make_unique(renderer->Rasterizer()); + gpu_core = std::make_unique(*renderer); cpu_core_manager.Initialize(system); diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 08cf6268fc..d439e7527d 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -9,7 +9,7 @@ #include "video_core/engines/maxwell_compute.h" #include "video_core/engines/maxwell_dma.h" #include "video_core/gpu.h" -#include "video_core/rasterizer_interface.h" +#include "video_core/renderer_base.h" namespace Tegra { @@ -24,7 +24,8 @@ u32 FramebufferConfig::BytesPerPixel(PixelFormat format) { UNREACHABLE(); } -GPU::GPU(VideoCore::RasterizerInterface& rasterizer) { +GPU::GPU(VideoCore::RendererBase& renderer) : renderer{renderer} { + auto& rasterizer{renderer.Rasterizer()}; memory_manager = std::make_unique(); dma_pusher = std::make_unique(*this); maxwell_3d = std::make_unique(rasterizer, *memory_manager); diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index af5ccd1e98..5758972a1f 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -13,8 +13,8 @@ #include "video_core/memory_manager.h" namespace VideoCore { -class RasterizerInterface; -} +class RendererBase; +} // namespace VideoCore namespace Tegra { @@ -117,7 +117,7 @@ enum class EngineID { class GPU final { public: - explicit GPU(VideoCore::RasterizerInterface& rasterizer); + explicit GPU(VideoCore::RendererBase& renderer); ~GPU(); struct MethodCall { @@ -173,6 +173,8 @@ private: std::unique_ptr maxwell_dma; /// Inline memory engine std::unique_ptr kepler_memory; + + VideoCore::RendererBase& renderer; }; } // namespace Tegra