diff options
author | bunnei <bunneidev@gmail.com> | 2019-01-24 04:17:55 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2019-03-07 03:48:57 +0100 |
commit | 7b574f406b25c02a0e0efd8b7ec13d68ecb55497 (patch) | |
tree | 375d4637d49ffe506129ce9cb679b5902328106a /src/video_core/gpu.h | |
parent | bootmanager: Ensure that we have a context for shader loading. (diff) | |
download | yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar.gz yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar.bz2 yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar.lz yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar.xz yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.tar.zst yuzu-7b574f406b25c02a0e0efd8b7ec13d68ecb55497.zip |
Diffstat (limited to 'src/video_core/gpu.h')
-rw-r--r-- | src/video_core/gpu.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 62649bd6e..3f3098bf1 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -19,6 +19,10 @@ namespace VideoCore { class RendererBase; } // namespace VideoCore +namespace VideoCommon::GPUThread { +class ThreadManager; +} // namespace VideoCommon::GPUThread + namespace Tegra { enum class RenderTargetFormat : u32 { @@ -200,7 +204,7 @@ public: std::array<u32, NUM_REGS> reg_array; }; } regs{}; - + /// Push GPU command entries to be processed void PushGPUEntries(Tegra::CommandList&& entries); @@ -208,6 +212,15 @@ public: void SwapBuffers( std::optional<std::reference_wrapper<const Tegra::FramebufferConfig>> framebuffer); + /// Notify rasterizer that any caches of the specified region should be flushed to Switch memory + void FlushRegion(VAddr addr, u64 size); + + /// Notify rasterizer that any caches of the specified region should be invalidated + void InvalidateRegion(VAddr addr, u64 size); + + /// Notify rasterizer that any caches of the specified region should be flushed and invalidated + void FlushAndInvalidateRegion(VAddr addr, u64 size); + private: void ProcessBindMethod(const MethodCall& method_call); void ProcessSemaphoreTriggerMethod(); @@ -216,17 +229,18 @@ private: /// 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; - + std::unique_ptr<VideoCommon::GPUThread::ThreadManager> gpu_thread; + VideoCore::RendererBase& renderer; /// Mapping of command subchannels to their bound engine ids. |