Merge pull request #4933 from lioncash/nodisc-gpu
[gpu, render_base, rasterizer_interface]: Make use of [[nodiscard]] where applicable
This commit is contained in:
		
						commit
						2dc9dbb809
					
				| @ -17,11 +17,11 @@ | ||||
| #include "video_core/dma_pusher.h" | ||||
| 
 | ||||
| using CacheAddr = std::uintptr_t; | ||||
| inline CacheAddr ToCacheAddr(const void* host_ptr) { | ||||
| [[nodiscard]] inline CacheAddr ToCacheAddr(const void* host_ptr) { | ||||
|     return reinterpret_cast<CacheAddr>(host_ptr); | ||||
| } | ||||
| 
 | ||||
| inline u8* FromCacheAddr(CacheAddr cache_addr) { | ||||
| [[nodiscard]] inline u8* FromCacheAddr(CacheAddr cache_addr) { | ||||
|     return reinterpret_cast<u8*>(cache_addr); | ||||
| } | ||||
| 
 | ||||
| @ -149,13 +149,13 @@ public: | ||||
|         u32 subchannel{}; | ||||
|         u32 method_count{}; | ||||
| 
 | ||||
|         bool IsLastCall() const { | ||||
|             return method_count <= 1; | ||||
|         } | ||||
| 
 | ||||
|         MethodCall(u32 method, u32 argument, u32 subchannel = 0, u32 method_count = 0) | ||||
|             : method(method), argument(argument), subchannel(subchannel), | ||||
|               method_count(method_count) {} | ||||
| 
 | ||||
|         [[nodiscard]] bool IsLastCall() const { | ||||
|             return method_count <= 1; | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     explicit GPU(Core::System& system, bool is_async, bool use_nvdec); | ||||
| @ -179,10 +179,10 @@ public: | ||||
|     virtual void OnCommandListEnd(); | ||||
| 
 | ||||
|     /// Request a host GPU memory flush from the CPU.
 | ||||
|     u64 RequestFlush(VAddr addr, std::size_t size); | ||||
|     [[nodiscard]] u64 RequestFlush(VAddr addr, std::size_t size); | ||||
| 
 | ||||
|     /// Obtains current flush request fence id.
 | ||||
|     u64 CurrentFlushRequestFence() const { | ||||
|     [[nodiscard]] u64 CurrentFlushRequestFence() const { | ||||
|         return current_flush_fence.load(std::memory_order_relaxed); | ||||
|     } | ||||
| 
 | ||||
| @ -190,48 +190,52 @@ public: | ||||
|     void TickWork(); | ||||
| 
 | ||||
|     /// Returns a reference to the Maxwell3D GPU engine.
 | ||||
|     Engines::Maxwell3D& Maxwell3D(); | ||||
|     [[nodiscard]] Engines::Maxwell3D& Maxwell3D(); | ||||
| 
 | ||||
|     /// Returns a const reference to the Maxwell3D GPU engine.
 | ||||
|     const Engines::Maxwell3D& Maxwell3D() const; | ||||
|     [[nodiscard]] const Engines::Maxwell3D& Maxwell3D() const; | ||||
| 
 | ||||
|     /// Returns a reference to the KeplerCompute GPU engine.
 | ||||
|     Engines::KeplerCompute& KeplerCompute(); | ||||
|     [[nodiscard]] Engines::KeplerCompute& KeplerCompute(); | ||||
| 
 | ||||
|     /// Returns a reference to the KeplerCompute GPU engine.
 | ||||
|     const Engines::KeplerCompute& KeplerCompute() const; | ||||
|     [[nodiscard]] const Engines::KeplerCompute& KeplerCompute() const; | ||||
| 
 | ||||
|     /// Returns a reference to the GPU memory manager.
 | ||||
|     Tegra::MemoryManager& MemoryManager(); | ||||
|     [[nodiscard]] Tegra::MemoryManager& MemoryManager(); | ||||
| 
 | ||||
|     /// Returns a const reference to the GPU memory manager.
 | ||||
|     const Tegra::MemoryManager& MemoryManager() const; | ||||
|     [[nodiscard]] const Tegra::MemoryManager& MemoryManager() const; | ||||
| 
 | ||||
|     /// Returns a reference to the GPU DMA pusher.
 | ||||
|     Tegra::DmaPusher& DmaPusher(); | ||||
|     [[nodiscard]] Tegra::DmaPusher& DmaPusher(); | ||||
| 
 | ||||
|     /// Returns a const reference to the GPU DMA pusher.
 | ||||
|     const Tegra::DmaPusher& DmaPusher() const; | ||||
|     [[nodiscard]] const Tegra::DmaPusher& DmaPusher() const; | ||||
| 
 | ||||
|     /// Returns a reference to the GPU CDMA pusher.
 | ||||
|     Tegra::CDmaPusher& CDmaPusher(); | ||||
|     [[nodiscard]] Tegra::CDmaPusher& CDmaPusher(); | ||||
| 
 | ||||
|     /// Returns a const reference to the GPU CDMA pusher.
 | ||||
|     const Tegra::CDmaPusher& CDmaPusher() const; | ||||
|     [[nodiscard]] const Tegra::CDmaPusher& CDmaPusher() const; | ||||
| 
 | ||||
|     VideoCore::RendererBase& Renderer() { | ||||
|     /// Returns a reference to the underlying renderer.
 | ||||
|     [[nodiscard]] VideoCore::RendererBase& Renderer() { | ||||
|         return *renderer; | ||||
|     } | ||||
| 
 | ||||
|     const VideoCore::RendererBase& Renderer() const { | ||||
|     /// Returns a const reference to the underlying renderer.
 | ||||
|     [[nodiscard]] const VideoCore::RendererBase& Renderer() const { | ||||
|         return *renderer; | ||||
|     } | ||||
| 
 | ||||
|     VideoCore::ShaderNotify& ShaderNotify() { | ||||
|     /// Returns a reference to the shader notifier.
 | ||||
|     [[nodiscard]] VideoCore::ShaderNotify& ShaderNotify() { | ||||
|         return *shader_notify; | ||||
|     } | ||||
| 
 | ||||
|     const VideoCore::ShaderNotify& ShaderNotify() const { | ||||
|     /// Returns a const reference to the shader notifier.
 | ||||
|     [[nodiscard]] const VideoCore::ShaderNotify& ShaderNotify() const { | ||||
|         return *shader_notify; | ||||
|     } | ||||
| 
 | ||||
| @ -243,23 +247,23 @@ public: | ||||
| 
 | ||||
|     void IncrementSyncPoint(u32 syncpoint_id); | ||||
| 
 | ||||
|     u32 GetSyncpointValue(u32 syncpoint_id) const; | ||||
|     [[nodiscard]] u32 GetSyncpointValue(u32 syncpoint_id) const; | ||||
| 
 | ||||
|     void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value); | ||||
| 
 | ||||
|     bool CancelSyncptInterrupt(u32 syncpoint_id, u32 value); | ||||
|     [[nodiscard]] bool CancelSyncptInterrupt(u32 syncpoint_id, u32 value); | ||||
| 
 | ||||
|     u64 GetTicks() const; | ||||
|     [[nodiscard]] u64 GetTicks() const; | ||||
| 
 | ||||
|     std::unique_lock<std::mutex> LockSync() { | ||||
|     [[nodiscard]] std::unique_lock<std::mutex> LockSync() { | ||||
|         return std::unique_lock{sync_mutex}; | ||||
|     } | ||||
| 
 | ||||
|     bool IsAsync() const { | ||||
|     [[nodiscard]] bool IsAsync() const { | ||||
|         return is_async; | ||||
|     } | ||||
| 
 | ||||
|     bool UseNvdec() const { | ||||
|     [[nodiscard]] bool UseNvdec() const { | ||||
|         return use_nvdec; | ||||
|     } | ||||
| 
 | ||||
| @ -273,7 +277,7 @@ public: | ||||
|         BitField<0, 1, FenceOperation> op; | ||||
|         BitField<8, 24, u32> syncpoint_id; | ||||
| 
 | ||||
|         static CommandHeader Build(FenceOperation op, u32 syncpoint_id) { | ||||
|         [[nodiscard]] static CommandHeader Build(FenceOperation op, u32 syncpoint_id) { | ||||
|             FenceAction result{}; | ||||
|             result.op.Assign(op); | ||||
|             result.syncpoint_id.Assign(syncpoint_id); | ||||
| @ -291,7 +295,7 @@ public: | ||||
|                     u32 address_high; | ||||
|                     u32 address_low; | ||||
| 
 | ||||
|                     GPUVAddr SemaphoreAddress() const { | ||||
|                     [[nodiscard]] GPUVAddr SemaphoreAddress() const { | ||||
|                         return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | | ||||
|                                                      address_low); | ||||
|                     } | ||||
| @ -374,7 +378,7 @@ private: | ||||
|                                u32 methods_pending); | ||||
| 
 | ||||
|     /// Determines where the method should be executed.
 | ||||
|     bool ExecuteMethodOnEngine(u32 method); | ||||
|     [[nodiscard]] bool ExecuteMethodOnEngine(u32 method); | ||||
| 
 | ||||
| protected: | ||||
|     Core::System& system; | ||||
|  | ||||
| @ -32,7 +32,7 @@ using DiskResourceLoadCallback = std::function<void(LoadCallbackStage, std::size | ||||
| 
 | ||||
| class RasterizerInterface { | ||||
| public: | ||||
|     virtual ~RasterizerInterface() {} | ||||
|     virtual ~RasterizerInterface() = default; | ||||
| 
 | ||||
|     /// Dispatches a draw invocation
 | ||||
|     virtual void Draw(bool is_indexed, bool is_instanced) = 0; | ||||
| @ -90,15 +90,16 @@ public: | ||||
|     virtual void TickFrame() = 0; | ||||
| 
 | ||||
|     /// Attempt to use a faster method to perform a surface copy
 | ||||
|     virtual bool AccelerateSurfaceCopy(const Tegra::Engines::Fermi2D::Regs::Surface& src, | ||||
|                                        const Tegra::Engines::Fermi2D::Regs::Surface& dst, | ||||
|                                        const Tegra::Engines::Fermi2D::Config& copy_config) { | ||||
|     [[nodiscard]] virtual bool AccelerateSurfaceCopy( | ||||
|         const Tegra::Engines::Fermi2D::Regs::Surface& src, | ||||
|         const Tegra::Engines::Fermi2D::Regs::Surface& dst, | ||||
|         const Tegra::Engines::Fermi2D::Config& copy_config) { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     /// Attempt to use a faster method to display the framebuffer to screen
 | ||||
|     virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, | ||||
|                                    u32 pixel_stride) { | ||||
|     [[nodiscard]] virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, | ||||
|                                                  VAddr framebuffer_addr, u32 pixel_stride) { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
| @ -110,12 +111,12 @@ public: | ||||
|                                    const DiskResourceLoadCallback& callback) {} | ||||
| 
 | ||||
|     /// Grant access to the Guest Driver Profile for recording/obtaining info on the guest driver.
 | ||||
|     GuestDriverProfile& AccessGuestDriverProfile() { | ||||
|     [[nodiscard]] GuestDriverProfile& AccessGuestDriverProfile() { | ||||
|         return guest_driver_profile; | ||||
|     } | ||||
| 
 | ||||
|     /// Grant access to the Guest Driver Profile for recording/obtaining info on the guest driver.
 | ||||
|     const GuestDriverProfile& AccessGuestDriverProfile() const { | ||||
|     [[nodiscard]] const GuestDriverProfile& AccessGuestDriverProfile() const { | ||||
|         return guest_driver_profile; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -38,7 +38,7 @@ public: | ||||
|     virtual ~RendererBase(); | ||||
| 
 | ||||
|     /// Initialize the renderer
 | ||||
|     virtual bool Init() = 0; | ||||
|     [[nodiscard]] virtual bool Init() = 0; | ||||
| 
 | ||||
|     /// Shutdown the renderer
 | ||||
|     virtual void ShutDown() = 0; | ||||
| @ -49,43 +49,43 @@ public: | ||||
|     // Getter/setter functions:
 | ||||
|     // ------------------------
 | ||||
| 
 | ||||
|     f32 GetCurrentFPS() const { | ||||
|     [[nodiscard]] f32 GetCurrentFPS() const { | ||||
|         return m_current_fps; | ||||
|     } | ||||
| 
 | ||||
|     int GetCurrentFrame() const { | ||||
|     [[nodiscard]] int GetCurrentFrame() const { | ||||
|         return m_current_frame; | ||||
|     } | ||||
| 
 | ||||
|     RasterizerInterface& Rasterizer() { | ||||
|     [[nodiscard]] RasterizerInterface& Rasterizer() { | ||||
|         return *rasterizer; | ||||
|     } | ||||
| 
 | ||||
|     const RasterizerInterface& Rasterizer() const { | ||||
|     [[nodiscard]] const RasterizerInterface& Rasterizer() const { | ||||
|         return *rasterizer; | ||||
|     } | ||||
| 
 | ||||
|     Core::Frontend::GraphicsContext& Context() { | ||||
|     [[nodiscard]] Core::Frontend::GraphicsContext& Context() { | ||||
|         return *context; | ||||
|     } | ||||
| 
 | ||||
|     const Core::Frontend::GraphicsContext& Context() const { | ||||
|     [[nodiscard]] const Core::Frontend::GraphicsContext& Context() const { | ||||
|         return *context; | ||||
|     } | ||||
| 
 | ||||
|     Core::Frontend::EmuWindow& GetRenderWindow() { | ||||
|     [[nodiscard]] Core::Frontend::EmuWindow& GetRenderWindow() { | ||||
|         return render_window; | ||||
|     } | ||||
| 
 | ||||
|     const Core::Frontend::EmuWindow& GetRenderWindow() const { | ||||
|     [[nodiscard]] const Core::Frontend::EmuWindow& GetRenderWindow() const { | ||||
|         return render_window; | ||||
|     } | ||||
| 
 | ||||
|     RendererSettings& Settings() { | ||||
|     [[nodiscard]] RendererSettings& Settings() { | ||||
|         return renderer_settings; | ||||
|     } | ||||
| 
 | ||||
|     const RendererSettings& Settings() const { | ||||
|     [[nodiscard]] const RendererSettings& Settings() const { | ||||
|         return renderer_settings; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Chloe
						Chloe