From 6f006d051e1fad075048ea5664e1ef0605e48a46 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 4 Nov 2020 20:41:16 -0500 Subject: [PATCH] General: Fix clang build Allows building on clang to work again --- src/common/fiber.h | 4 ++-- src/common/spin_lock.h | 8 ++++++++ src/video_core/dma_pusher.h | 7 +++---- src/video_core/gpu.h | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/common/fiber.h b/src/common/fiber.h index 699286ee2..1a027be96 100644 --- a/src/common/fiber.h +++ b/src/common/fiber.h @@ -41,8 +41,8 @@ public: Fiber(const Fiber&) = delete; Fiber& operator=(const Fiber&) = delete; - Fiber(Fiber&&) = default; - Fiber& operator=(Fiber&&) = default; + Fiber(Fiber&&) = delete; + Fiber& operator=(Fiber&&) = delete; /// Yields control from Fiber 'from' to Fiber 'to' /// Fiber 'from' must be the currently running fiber. diff --git a/src/common/spin_lock.h b/src/common/spin_lock.h index 4f946a258..06ac2f5bb 100644 --- a/src/common/spin_lock.h +++ b/src/common/spin_lock.h @@ -15,6 +15,14 @@ namespace Common { */ class SpinLock { public: + SpinLock() = default; + + SpinLock(const SpinLock&) = delete; + SpinLock& operator=(const SpinLock&) = delete; + + SpinLock(SpinLock&&) = delete; + SpinLock& operator=(SpinLock&&) = delete; + void lock(); void unlock(); [[nodiscard]] bool try_lock(); diff --git a/src/video_core/dma_pusher.h b/src/video_core/dma_pusher.h index 8496ba2da..9d9a750d9 100644 --- a/src/video_core/dma_pusher.h +++ b/src/video_core/dma_pusher.h @@ -18,6 +18,8 @@ class System; namespace Tegra { +class GPU; + enum class SubmissionMode : u32 { IncreasingOld = 0, Increasing = 1, @@ -74,8 +76,7 @@ union CommandHeader { static_assert(std::is_standard_layout_v, "CommandHeader is not standard layout"); static_assert(sizeof(CommandHeader) == sizeof(u32), "CommandHeader has incorrect size!"); -static constexpr CommandHeader BuildCommandHeader(BufferMethods method, u32 arg_count, - SubmissionMode mode) { +inline CommandHeader BuildCommandHeader(BufferMethods method, u32 arg_count, SubmissionMode mode) { CommandHeader result{}; result.method.Assign(static_cast(method)); result.arg_count.Assign(arg_count); @@ -83,8 +84,6 @@ static constexpr CommandHeader BuildCommandHeader(BufferMethods method, u32 arg_ return result; } -class GPU; - struct CommandList final { CommandList() = default; explicit CommandList(std::size_t size) : command_lists(size) {} diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index 5444b49f3..cf5235a79 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -273,7 +273,7 @@ public: BitField<0, 1, FenceOperation> op; BitField<8, 24, u32> syncpoint_id; - static constexpr CommandHeader Build(FenceOperation op, u32 syncpoint_id) { + static CommandHeader Build(FenceOperation op, u32 syncpoint_id) { FenceAction result{}; result.op.Assign(op); result.syncpoint_id.Assign(syncpoint_id);