fix: Add asserts to ensure NonCopyable and NonMovable n/n

Related-To: NEO-14068

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski 2025-02-18 17:32:35 +00:00 committed by Compute-Runtime-Automation
parent aeff5513c3
commit b60c02d597
36 changed files with 71 additions and 51 deletions

View File

@ -6,6 +6,8 @@
*/ */
#pragma once #pragma once
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "level_zero/api/sysman/zes_handles_struct.h" #include "level_zero/api/sysman/zes_handles_struct.h"
#include <level_zero/zes_api.h> #include <level_zero/zes_api.h>
@ -31,7 +33,7 @@ class VfManagement : _zes_vf_handle_t {
} }
}; };
struct VfManagementHandleContext { struct VfManagementHandleContext : NEO::NonCopyableAndNonMovableClass {
VfManagementHandleContext(OsSysman *pOsSysman) : pOsSysman(pOsSysman){}; VfManagementHandleContext(OsSysman *pOsSysman) : pOsSysman(pOsSysman){};
~VfManagementHandleContext(); ~VfManagementHandleContext();
@ -47,5 +49,7 @@ struct VfManagementHandleContext {
std::once_flag initVfManagementOnce; std::once_flag initVfManagementOnce;
}; };
static_assert(NEO::NonCopyableAndNonMovable<VfManagementHandleContext>);
} // namespace Sysman } // namespace Sysman
} // namespace L0 } // namespace L0

View File

@ -68,6 +68,7 @@ class Context : public BaseObject<_cl_context> {
const StackVec<NEO::GraphicsAllocation *, 1> &getAllocationsVector(); const StackVec<NEO::GraphicsAllocation *, 1> &getAllocationsVector();
}; };
static_assert(NEO::NonCopyable<AbstractBuffersPool<BufferPool, Buffer, MemObj>>);
class BufferPoolAllocator : public AbstractBuffersAllocator<BufferPool, Buffer, MemObj> { class BufferPoolAllocator : public AbstractBuffersAllocator<BufferPool, Buffer, MemObj> {
using BaseType = AbstractBuffersAllocator<BufferPool, Buffer, MemObj>; using BaseType = AbstractBuffersAllocator<BufferPool, Buffer, MemObj>;

View File

@ -78,6 +78,7 @@ class Event : public BaseObject<_cl_event>, public IDNode<Event> {
int32_t callbackExecutionStatusTarget; // minimum event execution status that will triger this callback int32_t callbackExecutionStatusTarget; // minimum event execution status that will triger this callback
void *userData; void *userData;
}; };
static_assert(NEO::NonCopyableAndNonMovable<IFList<Callback, true, true>>);
struct ProfilingInfo { struct ProfilingInfo {
uint64_t cpuTimeInNs; uint64_t cpuTimeInNs;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2020 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -24,6 +24,7 @@ struct TrackedEvent : IFNode<TrackedEvent> {
Event *ev = nullptr; Event *ev = nullptr;
int64_t eventId = 1; int64_t eventId = 1;
}; };
static_assert(NEO::NonCopyableAndNonMovable<IFList<TrackedEvent, true, true>>);
class EventsTracker { class EventsTracker {

View File

@ -31,6 +31,8 @@ namespace NEO {
template void KernelOperation::ResourceCleaner::operator()<LinearStream>(LinearStream *); template void KernelOperation::ResourceCleaner::operator()<LinearStream>(LinearStream *);
template void KernelOperation::ResourceCleaner::operator()<IndirectHeap>(IndirectHeap *); template void KernelOperation::ResourceCleaner::operator()<IndirectHeap>(IndirectHeap *);
static_assert(NEO::NonCopyableAndNonMovable<DecRefInternalAtScopeEnd<MemObj>>);
CommandMapUnmap::CommandMapUnmap(MapOperationType operationType, MemObj &memObj, MemObjSizeArray &copySize, MemObjOffsetArray &copyOffset, bool readOnly, CommandMapUnmap::CommandMapUnmap(MapOperationType operationType, MemObj &memObj, MemObjSizeArray &copySize, MemObjOffsetArray &copyOffset, bool readOnly,
CommandQueue &commandQueue) CommandQueue &commandQueue)
: Command(commandQueue), memObj(memObj), copySize(copySize), copyOffset(copyOffset), readOnly(readOnly), operationType(operationType) { : Command(commandQueue), memObj(memObj), copySize(copySize), copyOffset(copyOffset), readOnly(readOnly), operationType(operationType) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2024 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -79,9 +79,6 @@ class AUBCommandStreamReceiverHw : public CommandStreamReceiverSimulatedHw<GfxFa
const DeviceBitfield deviceBitfield); const DeviceBitfield deviceBitfield);
~AUBCommandStreamReceiverHw() override; ~AUBCommandStreamReceiverHw() override;
AUBCommandStreamReceiverHw(const AUBCommandStreamReceiverHw &) = delete;
AUBCommandStreamReceiverHw &operator=(const AUBCommandStreamReceiverHw &) = delete;
MOCKABLE_VIRTUAL void openFile(const std::string &fileName); MOCKABLE_VIRTUAL void openFile(const std::string &fileName);
MOCKABLE_VIRTUAL bool reopenFile(const std::string &fileName); MOCKABLE_VIRTUAL bool reopenFile(const std::string &fileName);
MOCKABLE_VIRTUAL void initFile(const std::string &fileName); MOCKABLE_VIRTUAL void initFile(const std::string &fileName);

View File

@ -15,6 +15,7 @@
#include "shared/source/helpers/common_types.h" #include "shared/source/helpers/common_types.h"
#include "shared/source/helpers/completion_stamp.h" #include "shared/source/helpers/completion_stamp.h"
#include "shared/source/helpers/kmd_notify_properties.h" #include "shared/source/helpers/kmd_notify_properties.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "shared/source/helpers/options.h" #include "shared/source/helpers/options.h"
#include "shared/source/memory_manager/graphics_allocation.h" #include "shared/source/memory_manager/graphics_allocation.h"
#include "shared/source/utilities/spinlock.h" #include "shared/source/utilities/spinlock.h"
@ -78,7 +79,7 @@ enum class DispatchMode {
batchedDispatch // dispatching is batched, explicit clFlush is required batchedDispatch // dispatching is batched, explicit clFlush is required
}; };
class CommandStreamReceiver { class CommandStreamReceiver : NEO::NonCopyableAndNonMovableClass {
public: public:
static constexpr size_t startingResidencyContainerSize = 128; static constexpr size_t startingResidencyContainerSize = 128;
@ -93,8 +94,6 @@ class CommandStreamReceiver {
CommandStreamReceiver(ExecutionEnvironment &executionEnvironment, CommandStreamReceiver(ExecutionEnvironment &executionEnvironment,
uint32_t rootDeviceIndex, uint32_t rootDeviceIndex,
const DeviceBitfield deviceBitfield); const DeviceBitfield deviceBitfield);
CommandStreamReceiver(const CommandStreamReceiver &) = delete;
CommandStreamReceiver &operator=(const CommandStreamReceiver &) = delete;
virtual ~CommandStreamReceiver(); virtual ~CommandStreamReceiver();
@ -709,6 +708,8 @@ class CommandStreamReceiver {
bool latestFlushIsTaskCountUpdateOnly = false; bool latestFlushIsTaskCountUpdateOnly = false;
}; };
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiver>);
typedef CommandStreamReceiver *(*CommandStreamReceiverCreateFunc)(bool withAubDump, typedef CommandStreamReceiver *(*CommandStreamReceiverCreateFunc)(bool withAubDump,
ExecutionEnvironment &executionEnvironment, ExecutionEnvironment &executionEnvironment,
uint32_t rootDeviceIndex, uint32_t rootDeviceIndex,

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2024 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -27,9 +27,6 @@ class CommandStreamReceiverWithAUBDump : public BaseCSR {
uint32_t rootDeviceIndex, uint32_t rootDeviceIndex,
const DeviceBitfield deviceBitfield); const DeviceBitfield deviceBitfield);
CommandStreamReceiverWithAUBDump(const CommandStreamReceiverWithAUBDump &) = delete;
CommandStreamReceiverWithAUBDump &operator=(const CommandStreamReceiverWithAUBDump &) = delete;
SubmissionStatus flush(BatchBuffer &batchBuffer, ResidencyContainer &allocationsForResidency) override; SubmissionStatus flush(BatchBuffer &batchBuffer, ResidencyContainer &allocationsForResidency) override;
void makeNonResident(GraphicsAllocation &gfxAllocation) override; void makeNonResident(GraphicsAllocation &gfxAllocation) override;

View File

@ -9,6 +9,7 @@
#include "shared/source/command_container/cmdcontainer.h" #include "shared/source/command_container/cmdcontainer.h"
#include "shared/source/command_stream/csr_definitions.h" #include "shared/source/command_stream/csr_definitions.h"
#include "shared/source/command_stream/task_count_helper.h" #include "shared/source/command_stream/task_count_helper.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "shared/source/helpers/pipe_control_args.h" #include "shared/source/helpers/pipe_control_args.h"
#include "shared/source/utilities/idlist.h" #include "shared/source/utilities/idlist.h"
@ -72,10 +73,8 @@ struct BatchBuffer {
bool taskCountUpdateOnly = false; bool taskCountUpdateOnly = false;
}; };
struct CommandBuffer : public IDNode<CommandBuffer> { struct CommandBuffer : public IDNode<CommandBuffer>, NEO::NonCopyableAndNonMovableClass {
CommandBuffer(Device &device); CommandBuffer(Device &device);
CommandBuffer &operator=(const CommandBuffer &) = delete;
CommandBuffer &operator=(CommandBuffer &&) = delete;
~CommandBuffer() override; ~CommandBuffer() override;
ResidencyContainer surfaces; ResidencyContainer surfaces;
BatchBuffer batchBuffer; BatchBuffer batchBuffer;
@ -89,6 +88,8 @@ struct CommandBuffer : public IDNode<CommandBuffer> {
Device &device; Device &device;
}; };
static_assert(NEO::NonCopyableAndNonMovable<CommandBuffer>);
struct CommandBufferList : public IDList<CommandBuffer, false, true, false> {}; struct CommandBufferList : public IDList<CommandBuffer, false, true, false> {};
using ResourcePackage = StackVec<GraphicsAllocation *, 128>; using ResourcePackage = StackVec<GraphicsAllocation *, 128>;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2022 Intel Corporation * Copyright (C) 2019-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -43,4 +43,5 @@ uint32_t AUBCommandStreamReceiverHw<Family>::getGUCWorkQueueItemHeader() {
} }
template class AUBCommandStreamReceiverHw<Family>; template class AUBCommandStreamReceiverHw<Family>;
static_assert(NEO::NonCopyableAndNonMovable<NEO::AUBCommandStreamReceiverHw<Family>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2023 Intel Corporation * Copyright (C) 2019-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Gen12LpFamily>; template class DeviceCommandStreamReceiver<Gen12LpFamily>;
template class DrmCommandStreamReceiver<Gen12LpFamily>; template class DrmCommandStreamReceiver<Gen12LpFamily>;
template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Gen12LpFamily>>; template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Gen12LpFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Gen12LpFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2022 Intel Corporation * Copyright (C) 2019-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -37,4 +37,5 @@ void populateFactoryTable<TbxCommandStreamReceiverHw<Family>>() {
template class TbxCommandStreamReceiverHw<Family>; template class TbxCommandStreamReceiverHw<Family>;
template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>; template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2022 Intel Corporation * Copyright (C) 2019-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Gen12LpFamily>; template class DeviceCommandStreamReceiver<Gen12LpFamily>;
template class WddmCommandStreamReceiver<Gen12LpFamily>; template class WddmCommandStreamReceiver<Gen12LpFamily>;
template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Gen12LpFamily>>; template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Gen12LpFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Gen12LpFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,11 +1,12 @@
/* /*
* Copyright (C) 2020-2024 Intel Corporation * Copyright (C) 2020-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
*/ */
#pragma once #pragma once
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "shared/source/utilities/idlist.h" #include "shared/source/utilities/idlist.h"
namespace NEO { namespace NEO {
@ -18,4 +19,6 @@ class DeferrableDeletion : public IDNode<DeferrableDeletion> {
bool isExternalHostptr() const { return externalHostptr; } bool isExternalHostptr() const { return externalHostptr; }
bool externalHostptr = false; bool externalHostptr = false;
}; };
static_assert(NEO::NonCopyableAndNonMovable<IDList<DeferrableDeletion>>);
} // namespace NEO } // namespace NEO

View File

@ -61,7 +61,7 @@ struct AbstractBuffersPool : public NonCopyableClass {
AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback); AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback);
AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback, const SmallBuffersParams &params); AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback, const SmallBuffersParams &params);
AbstractBuffersPool(AbstractBuffersPool<PoolT, BufferType, BufferParentType> &&bufferPool); AbstractBuffersPool(AbstractBuffersPool<PoolT, BufferType, BufferParentType> &&bufferPool);
AbstractBuffersPool &operator=(AbstractBuffersPool &&) = delete; AbstractBuffersPool &operator=(AbstractBuffersPool &&other) noexcept = delete;
virtual ~AbstractBuffersPool() = default; virtual ~AbstractBuffersPool() = default;
void tryFreeFromPoolBuffer(BufferParentType *possiblePoolBuffer, size_t offset, size_t size); void tryFreeFromPoolBuffer(BufferParentType *possiblePoolBuffer, size_t offset, size_t size);

View File

@ -8,6 +8,7 @@
#pragma once #pragma once
#include "shared/source/helpers/debug_helpers.h" #include "shared/source/helpers/debug_helpers.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include <atomic> #include <atomic>
#include <thread> #include <thread>
@ -168,7 +169,7 @@ struct IDNode {
}; };
template <typename NodeObjectType, bool threadSafe = true, bool ownsNodes = false, bool supportRecursiveLock = true> template <typename NodeObjectType, bool threadSafe = true, bool ownsNodes = false, bool supportRecursiveLock = true>
class IDList { class IDList : NEO::NonCopyableAndNonMovableClass {
public: public:
using ThisType = IDList<NodeObjectType, threadSafe, ownsNodes, supportRecursiveLock>; using ThisType = IDList<NodeObjectType, threadSafe, ownsNodes, supportRecursiveLock>;
@ -192,9 +193,6 @@ class IDList {
this->cleanup(); this->cleanup();
} }
IDList(const IDList &) = delete;
IDList &operator=(const IDList &) = delete;
void pushFrontOne(NodeObjectType &node) { void pushFrontOne(NodeObjectType &node) {
processLocked<ThisType, &ThisType::pushFrontOneImpl>(&node); processLocked<ThisType, &ThisType::pushFrontOneImpl>(&node);
} }

View File

@ -8,6 +8,7 @@
#pragma once #pragma once
#include "shared/source/helpers/mt_helpers.h" #include "shared/source/helpers/mt_helpers.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include <atomic> #include <atomic>
#include <memory> #include <memory>
@ -89,7 +90,7 @@ struct IFNode {
}; };
template <typename NodeObjectType, bool threadSafe = true, bool ownsNodes = false> template <typename NodeObjectType, bool threadSafe = true, bool ownsNodes = false>
class IFList { class IFList : NEO::NonCopyableAndNonMovableClass {
public: public:
IFList() IFList()
: head(nullptr) { : head(nullptr) {
@ -103,9 +104,6 @@ class IFList {
this->cleanup(); this->cleanup();
} }
IFList(const IFList &) = delete;
IFList &operator=(const IFList &) = delete;
template <bool c = threadSafe> template <bool c = threadSafe>
typename std::enable_if<c, void>::type pushFrontOne(NodeObjectType &node) { typename std::enable_if<c, void>::type pushFrontOne(NodeObjectType &node) {
node.next = head; node.next = head;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2018-2022 Intel Corporation * Copyright (C) 2018-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -7,6 +7,7 @@
#pragma once #pragma once
#include "shared/source/helpers/debug_helpers.h" #include "shared/source/helpers/debug_helpers.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include <atomic> #include <atomic>
#include <memory> #include <memory>
@ -169,7 +170,7 @@ inline ReferenceTrackedObject<DerivedClass>::~ReferenceTrackedObject() {
} }
template <typename RefTrackedObj> template <typename RefTrackedObj>
class DecRefInternalAtScopeEnd final { class DecRefInternalAtScopeEnd final : NEO::NonCopyableAndNonMovableClass {
public: public:
DecRefInternalAtScopeEnd(RefTrackedObj &obj) : object{obj} { DecRefInternalAtScopeEnd(RefTrackedObj &obj) : object{obj} {
} }
@ -178,11 +179,6 @@ class DecRefInternalAtScopeEnd final {
object.decRefInternal(); object.decRefInternal();
} }
DecRefInternalAtScopeEnd(const DecRefInternalAtScopeEnd &) = delete;
DecRefInternalAtScopeEnd(DecRefInternalAtScopeEnd &&) = delete;
DecRefInternalAtScopeEnd &operator=(const DecRefInternalAtScopeEnd &) = delete;
DecRefInternalAtScopeEnd &operator=(DecRefInternalAtScopeEnd &&) = delete;
private: private:
RefTrackedObj &object; RefTrackedObj &object;
}; };

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2024 Intel Corporation * Copyright (C) 2024-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -24,4 +24,5 @@ void populateFactoryTable<AUBCommandStreamReceiverHw<Family>>() {
} }
template class AUBCommandStreamReceiverHw<Family>; template class AUBCommandStreamReceiverHw<Family>;
static_assert(NEO::NonCopyableAndNonMovable<AUBCommandStreamReceiverHw<Family>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2024 Intel Corporation * Copyright (C) 2024-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Xe2HpgCoreFamily>; template class DeviceCommandStreamReceiver<Xe2HpgCoreFamily>;
template class DrmCommandStreamReceiver<Xe2HpgCoreFamily>; template class DrmCommandStreamReceiver<Xe2HpgCoreFamily>;
template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe2HpgCoreFamily>>; template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe2HpgCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe2HpgCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2024 Intel Corporation * Copyright (C) 2024-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -29,4 +29,5 @@ void populateFactoryTable<TbxCommandStreamReceiverHw<Family>>() {
template class TbxCommandStreamReceiverHw<Family>; template class TbxCommandStreamReceiverHw<Family>;
template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>; template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2024 Intel Corporation * Copyright (C) 2024-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Xe2HpgCoreFamily>; template class DeviceCommandStreamReceiver<Xe2HpgCoreFamily>;
template class WddmCommandStreamReceiver<Xe2HpgCoreFamily>; template class WddmCommandStreamReceiver<Xe2HpgCoreFamily>;
template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe2HpgCoreFamily>>; template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe2HpgCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe2HpgCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -23,4 +23,5 @@ void populateFactoryTable<AUBCommandStreamReceiverHw<Family>>() {
} }
template class AUBCommandStreamReceiverHw<Family>; template class AUBCommandStreamReceiverHw<Family>;
static_assert(NEO::NonCopyableAndNonMovable<AUBCommandStreamReceiverHw<Family>>);
} // namespace NEO } // namespace NEO

View File

@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Xe3CoreFamily>; template class DeviceCommandStreamReceiver<Xe3CoreFamily>;
template class DrmCommandStreamReceiver<Xe3CoreFamily>; template class DrmCommandStreamReceiver<Xe3CoreFamily>;
template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe3CoreFamily>>; template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe3CoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<Xe3CoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -27,4 +27,5 @@ void populateFactoryTable<TbxCommandStreamReceiverHw<Family>>() {
template class TbxCommandStreamReceiverHw<Family>; template class TbxCommandStreamReceiverHw<Family>;
template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>; template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>>);
} // namespace NEO } // namespace NEO

View File

@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<Xe3CoreFamily>; template class DeviceCommandStreamReceiver<Xe3CoreFamily>;
template class WddmCommandStreamReceiver<Xe3CoreFamily>; template class WddmCommandStreamReceiver<Xe3CoreFamily>;
template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe3CoreFamily>>; template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe3CoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<Xe3CoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -24,4 +24,5 @@ void populateFactoryTable<AUBCommandStreamReceiverHw<Family>>() {
} }
template class AUBCommandStreamReceiverHw<Family>; template class AUBCommandStreamReceiverHw<Family>;
static_assert(NEO::NonCopyableAndNonMovable<AUBCommandStreamReceiverHw<Family>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2023 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<XeHpcCoreFamily>; template class DeviceCommandStreamReceiver<XeHpcCoreFamily>;
template class DrmCommandStreamReceiver<XeHpcCoreFamily>; template class DrmCommandStreamReceiver<XeHpcCoreFamily>;
template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpcCoreFamily>>; template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpcCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpcCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -29,4 +29,5 @@ void populateFactoryTable<TbxCommandStreamReceiverHw<Family>>() {
template class TbxCommandStreamReceiverHw<Family>; template class TbxCommandStreamReceiverHw<Family>;
template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>; template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<XeHpcCoreFamily>; template class DeviceCommandStreamReceiver<XeHpcCoreFamily>;
template class WddmCommandStreamReceiver<XeHpcCoreFamily>; template class WddmCommandStreamReceiver<XeHpcCoreFamily>;
template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpcCoreFamily>>; template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpcCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpcCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -24,4 +24,5 @@ void populateFactoryTable<AUBCommandStreamReceiverHw<Family>>() {
} }
template class AUBCommandStreamReceiverHw<Family>; template class AUBCommandStreamReceiverHw<Family>;
static_assert(NEO::NonCopyableAndNonMovable<AUBCommandStreamReceiverHw<Family>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2023 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<XeHpgCoreFamily>; template class DeviceCommandStreamReceiver<XeHpgCoreFamily>;
template class DrmCommandStreamReceiver<XeHpgCoreFamily>; template class DrmCommandStreamReceiver<XeHpgCoreFamily>;
template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpgCoreFamily>>; template class CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpgCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<XeHpgCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -29,4 +29,5 @@ void populateFactoryTable<TbxCommandStreamReceiverHw<Family>>() {
template class TbxCommandStreamReceiverHw<Family>; template class TbxCommandStreamReceiverHw<Family>;
template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>; template class CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<Family>>>);
} // namespace NEO } // namespace NEO

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2022 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@ -15,4 +15,5 @@ namespace NEO {
template class DeviceCommandStreamReceiver<XeHpgCoreFamily>; template class DeviceCommandStreamReceiver<XeHpgCoreFamily>;
template class WddmCommandStreamReceiver<XeHpgCoreFamily>; template class WddmCommandStreamReceiver<XeHpgCoreFamily>;
template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpgCoreFamily>>; template class CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpgCoreFamily>>;
static_assert(NEO::NonCopyableAndNonMovable<CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<XeHpgCoreFamily>>>);
} // namespace NEO } // namespace NEO

View File

@ -13,7 +13,7 @@
namespace NEO { namespace NEO {
template <typename GfxFamily> template <typename GfxFamily>
class UltAubCommandStreamReceiver : public AUBCommandStreamReceiverHw<GfxFamily>, public NonCopyableAndNonMovableClass { class UltAubCommandStreamReceiver : public AUBCommandStreamReceiverHw<GfxFamily> {
using BaseClass = AUBCommandStreamReceiverHw<GfxFamily>; using BaseClass = AUBCommandStreamReceiverHw<GfxFamily>;
public: public:

View File

@ -46,7 +46,7 @@ struct WriteMemoryParams {
}; };
template <typename GfxFamily> template <typename GfxFamily>
class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily>, public NonCopyableAndNonMovableClass { class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily> {
using BaseClass = CommandStreamReceiverHw<GfxFamily>; using BaseClass = CommandStreamReceiverHw<GfxFamily>;
public: public: