diff options
author | bunnei <bunneidev@gmail.com> | 2019-01-08 05:32:02 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2019-03-07 03:09:09 +0100 |
commit | 4483089d704cd4913a748d2198359cc0cf7b32c5 (patch) | |
tree | eed7cefc13f9c5bfc169f37e0499d6d79a1884c7 /src/video_core/gpu.h | |
parent | settings: Add new graphics setting for use_asynchronous_gpu_emulation. (diff) | |
download | yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar.gz yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar.bz2 yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar.lz yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar.xz yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.tar.zst yuzu-4483089d704cd4913a748d2198359cc0cf7b32c5.zip |
Diffstat (limited to 'src/video_core/gpu.h')
-rw-r--r-- | src/video_core/gpu.h | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 6313702f2..ac7aec6a4 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -16,8 +16,8 @@ class System; } namespace VideoCore { -class RasterizerInterface; -} +class RendererBase; +} // namespace VideoCore namespace Tegra { @@ -121,7 +121,8 @@ enum class EngineID { class GPU final { public: - explicit GPU(Core::System& system, VideoCore::RasterizerInterface& rasterizer); + explicit GPU(Core::System& system, VideoCore::RendererBase& renderer); + ~GPU(); struct MethodCall { @@ -201,8 +202,23 @@ public: } regs{}; private: + void ProcessBindMethod(const MethodCall& method_call); + void ProcessSemaphoreTriggerMethod(); + void ProcessSemaphoreRelease(); + void ProcessSemaphoreAcquire(); + + // Calls a GPU puller method. + void CallPullerMethod(const MethodCall& method_call); + // Calls a GPU engine method. + void CallEngineMethod(const MethodCall& method_call); + // Determines where the method should be executed. + bool ExecuteMethodOnEngine(const MethodCall& method_call); + +private: std::unique_ptr<Tegra::DmaPusher> dma_pusher; std::unique_ptr<Tegra::MemoryManager> memory_manager; + + VideoCore::RendererBase& renderer; /// Mapping of command subchannels to their bound engine ids. std::array<EngineID, 8> bound_engines = {}; @@ -217,18 +233,6 @@ private: std::unique_ptr<Engines::MaxwellDMA> maxwell_dma; /// Inline memory engine std::unique_ptr<Engines::KeplerMemory> kepler_memory; - - void ProcessBindMethod(const MethodCall& method_call); - void ProcessSemaphoreTriggerMethod(); - void ProcessSemaphoreRelease(); - void ProcessSemaphoreAcquire(); - - // Calls a GPU puller method. - void CallPullerMethod(const MethodCall& method_call); - // Calls a GPU engine method. - void CallEngineMethod(const MethodCall& method_call); - // Determines where the method should be executed. - bool ExecuteMethodOnEngine(const MethodCall& method_call); }; #define ASSERT_REG_POSITION(field_name, position) \ |