null_rasterizer.cpp 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "video_core/host1x/host1x.h"
  4. #include "video_core/memory_manager.h"
  5. #include "video_core/renderer_null/null_rasterizer.h"
  6. namespace Null {
  7. AccelerateDMA::AccelerateDMA() = default;
  8. bool AccelerateDMA::BufferCopy(GPUVAddr start_address, GPUVAddr end_address, u64 amount) {
  9. return true;
  10. }
  11. bool AccelerateDMA::BufferClear(GPUVAddr src_address, u64 amount, u32 value) {
  12. return true;
  13. }
  14. RasterizerNull::RasterizerNull(Core::Memory::Memory& cpu_memory_, Tegra::GPU& gpu)
  15. : RasterizerAccelerated(cpu_memory_), m_gpu{gpu} {}
  16. RasterizerNull::~RasterizerNull() = default;
  17. void RasterizerNull::Draw(bool is_indexed, u32 instance_count) {}
  18. void RasterizerNull::DrawTexture() {}
  19. void RasterizerNull::Clear(u32 layer_count) {}
  20. void RasterizerNull::DispatchCompute() {}
  21. void RasterizerNull::ResetCounter(VideoCore::QueryType type) {}
  22. void RasterizerNull::Query(GPUVAddr gpu_addr, VideoCore::QueryType type,
  23. std::optional<u64> timestamp) {
  24. if (!gpu_memory) {
  25. return;
  26. }
  27. gpu_memory->Write(gpu_addr, u64{0});
  28. if (timestamp) {
  29. gpu_memory->Write(gpu_addr + 8, *timestamp);
  30. }
  31. }
  32. void RasterizerNull::BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr gpu_addr,
  33. u32 size) {}
  34. void RasterizerNull::DisableGraphicsUniformBuffer(size_t stage, u32 index) {}
  35. void RasterizerNull::FlushAll() {}
  36. void RasterizerNull::FlushRegion(VAddr addr, u64 size, VideoCommon::CacheType) {}
  37. bool RasterizerNull::MustFlushRegion(VAddr addr, u64 size, VideoCommon::CacheType) {
  38. return false;
  39. }
  40. void RasterizerNull::InvalidateRegion(VAddr addr, u64 size, VideoCommon::CacheType) {}
  41. void RasterizerNull::OnCPUWrite(VAddr addr, u64 size) {}
  42. void RasterizerNull::InvalidateGPUCache() {}
  43. void RasterizerNull::UnmapMemory(VAddr addr, u64 size) {}
  44. void RasterizerNull::ModifyGPUMemory(size_t as_id, GPUVAddr addr, u64 size) {}
  45. void RasterizerNull::SignalFence(std::function<void()>&& func) {
  46. func();
  47. }
  48. void RasterizerNull::SyncOperation(std::function<void()>&& func) {
  49. func();
  50. }
  51. void RasterizerNull::SignalSyncPoint(u32 value) {
  52. auto& syncpoint_manager = m_gpu.Host1x().GetSyncpointManager();
  53. syncpoint_manager.IncrementGuest(value);
  54. syncpoint_manager.IncrementHost(value);
  55. }
  56. void RasterizerNull::SignalReference() {}
  57. void RasterizerNull::ReleaseFences() {}
  58. void RasterizerNull::FlushAndInvalidateRegion(VAddr addr, u64 size, VideoCommon::CacheType) {}
  59. void RasterizerNull::WaitForIdle() {}
  60. void RasterizerNull::FragmentBarrier() {}
  61. void RasterizerNull::TiledCacheBarrier() {}
  62. void RasterizerNull::FlushCommands() {}
  63. void RasterizerNull::TickFrame() {}
  64. Tegra::Engines::AccelerateDMAInterface& RasterizerNull::AccessAccelerateDMA() {
  65. return m_accelerate_dma;
  66. }
  67. bool RasterizerNull::AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Surface& src,
  68. const Tegra::Engines::Fermi2D::Surface& dst,
  69. const Tegra::Engines::Fermi2D::Config& copy_config) {
  70. return true;
  71. }
  72. void RasterizerNull::AccelerateInlineToMemory(GPUVAddr address, size_t copy_size,
  73. std::span<const u8> memory) {}
  74. bool RasterizerNull::AccelerateDisplay(const Tegra::FramebufferConfig& config,
  75. VAddr framebuffer_addr, u32 pixel_stride) {
  76. return true;
  77. }
  78. void RasterizerNull::LoadDiskResources(u64 title_id, std::stop_token stop_loading,
  79. const VideoCore::DiskResourceLoadCallback& callback) {}
  80. void RasterizerNull::InitializeChannel(Tegra::Control::ChannelState& channel) {}
  81. void RasterizerNull::BindChannel(Tegra::Control::ChannelState& channel) {}
  82. void RasterizerNull::ReleaseChannel(s32 channel_id) {}
  83. } // namespace Null