gpu_synch.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2019 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include "video_core/gpu_synch.h"
  5. #include "video_core/renderer_base.h"
  6. namespace VideoCommon {
  7. GPUSynch::GPUSynch(Core::System& system, VideoCore::RendererBase& renderer)
  8. : Tegra::GPU(system, renderer) {}
  9. GPUSynch::~GPUSynch() = default;
  10. void GPUSynch::PushGPUEntries(Tegra::CommandList&& entries) {
  11. dma_pusher->Push(std::move(entries));
  12. dma_pusher->DispatchCalls();
  13. }
  14. void GPUSynch::SwapBuffers(
  15. std::optional<std::reference_wrapper<const Tegra::FramebufferConfig>> framebuffer) {
  16. renderer.SwapBuffers(std::move(framebuffer));
  17. }
  18. void GPUSynch::FlushRegion(CacheAddr addr, u64 size) {
  19. renderer.Rasterizer().FlushRegion(addr, size);
  20. }
  21. void GPUSynch::InvalidateRegion(CacheAddr addr, u64 size) {
  22. renderer.Rasterizer().InvalidateRegion(addr, size);
  23. }
  24. void GPUSynch::FlushAndInvalidateRegion(CacheAddr addr, u64 size) {
  25. renderer.Rasterizer().FlushAndInvalidateRegion(addr, size);
  26. }
  27. } // namespace VideoCommon