diff --git a/level_zero/sysman/source/api/vf_management/sysman_vf_management.h b/level_zero/sysman/source/api/vf_management/sysman_vf_management.h index f58021f5b8..f26a56935f 100644 --- a/level_zero/sysman/source/api/vf_management/sysman_vf_management.h +++ b/level_zero/sysman/source/api/vf_management/sysman_vf_management.h @@ -6,6 +6,8 @@ */ #pragma once +#include "shared/source/helpers/non_copyable_or_moveable.h" + #include "level_zero/api/sysman/zes_handles_struct.h" #include @@ -31,7 +33,7 @@ class VfManagement : _zes_vf_handle_t { } }; -struct VfManagementHandleContext { +struct VfManagementHandleContext : NEO::NonCopyableAndNonMovableClass { VfManagementHandleContext(OsSysman *pOsSysman) : pOsSysman(pOsSysman){}; ~VfManagementHandleContext(); @@ -47,5 +49,7 @@ struct VfManagementHandleContext { std::once_flag initVfManagementOnce; }; +static_assert(NEO::NonCopyableAndNonMovable); + } // namespace Sysman } // namespace L0 diff --git a/opencl/source/context/context.h b/opencl/source/context/context.h index 5a84f0735b..16f13b46e4 100644 --- a/opencl/source/context/context.h +++ b/opencl/source/context/context.h @@ -68,6 +68,7 @@ class Context : public BaseObject<_cl_context> { const StackVec &getAllocationsVector(); }; + static_assert(NEO::NonCopyable>); class BufferPoolAllocator : public AbstractBuffersAllocator { using BaseType = AbstractBuffersAllocator; diff --git a/opencl/source/event/event.h b/opencl/source/event/event.h index fd32726367..083c8d8d0b 100644 --- a/opencl/source/event/event.h +++ b/opencl/source/event/event.h @@ -78,6 +78,7 @@ class Event : public BaseObject<_cl_event>, public IDNode { int32_t callbackExecutionStatusTarget; // minimum event execution status that will triger this callback void *userData; }; + static_assert(NEO::NonCopyableAndNonMovable>); struct ProfilingInfo { uint64_t cpuTimeInNs; diff --git a/opencl/source/event/event_tracker.h b/opencl/source/event/event_tracker.h index bbdcecb24b..109473f2fb 100644 --- a/opencl/source/event/event_tracker.h +++ b/opencl/source/event/event_tracker.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -24,6 +24,7 @@ struct TrackedEvent : IFNode { Event *ev = nullptr; int64_t eventId = 1; }; +static_assert(NEO::NonCopyableAndNonMovable>); class EventsTracker { diff --git a/opencl/source/helpers/task_information.cpp b/opencl/source/helpers/task_information.cpp index 16bed2d893..79e5bd3dc3 100644 --- a/opencl/source/helpers/task_information.cpp +++ b/opencl/source/helpers/task_information.cpp @@ -31,6 +31,8 @@ namespace NEO { template void KernelOperation::ResourceCleaner::operator()(LinearStream *); template void KernelOperation::ResourceCleaner::operator()(IndirectHeap *); +static_assert(NEO::NonCopyableAndNonMovable>); + CommandMapUnmap::CommandMapUnmap(MapOperationType operationType, MemObj &memObj, MemObjSizeArray ©Size, MemObjOffsetArray ©Offset, bool readOnly, CommandQueue &commandQueue) : Command(commandQueue), memObj(memObj), copySize(copySize), copyOffset(copyOffset), readOnly(readOnly), operationType(operationType) { diff --git a/shared/source/command_stream/aub_command_stream_receiver_hw.h b/shared/source/command_stream/aub_command_stream_receiver_hw.h index 698f8d5cec..e48354767c 100644 --- a/shared/source/command_stream/aub_command_stream_receiver_hw.h +++ b/shared/source/command_stream/aub_command_stream_receiver_hw.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -79,9 +79,6 @@ class AUBCommandStreamReceiverHw : public CommandStreamReceiverSimulatedHw); + typedef CommandStreamReceiver *(*CommandStreamReceiverCreateFunc)(bool withAubDump, ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex, diff --git a/shared/source/command_stream/command_stream_receiver_with_aub_dump.h b/shared/source/command_stream/command_stream_receiver_with_aub_dump.h index eefc315e87..8b80de5a13 100644 --- a/shared/source/command_stream/command_stream_receiver_with_aub_dump.h +++ b/shared/source/command_stream/command_stream_receiver_with_aub_dump.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -27,9 +27,6 @@ class CommandStreamReceiverWithAUBDump : public BaseCSR { uint32_t rootDeviceIndex, const DeviceBitfield deviceBitfield); - CommandStreamReceiverWithAUBDump(const CommandStreamReceiverWithAUBDump &) = delete; - CommandStreamReceiverWithAUBDump &operator=(const CommandStreamReceiverWithAUBDump &) = delete; - SubmissionStatus flush(BatchBuffer &batchBuffer, ResidencyContainer &allocationsForResidency) override; void makeNonResident(GraphicsAllocation &gfxAllocation) override; diff --git a/shared/source/command_stream/submissions_aggregator.h b/shared/source/command_stream/submissions_aggregator.h index a7a87deb11..f906255cd9 100644 --- a/shared/source/command_stream/submissions_aggregator.h +++ b/shared/source/command_stream/submissions_aggregator.h @@ -9,6 +9,7 @@ #include "shared/source/command_container/cmdcontainer.h" #include "shared/source/command_stream/csr_definitions.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/utilities/idlist.h" @@ -72,10 +73,8 @@ struct BatchBuffer { bool taskCountUpdateOnly = false; }; -struct CommandBuffer : public IDNode { +struct CommandBuffer : public IDNode, NEO::NonCopyableAndNonMovableClass { CommandBuffer(Device &device); - CommandBuffer &operator=(const CommandBuffer &) = delete; - CommandBuffer &operator=(CommandBuffer &&) = delete; ~CommandBuffer() override; ResidencyContainer surfaces; BatchBuffer batchBuffer; @@ -89,6 +88,8 @@ struct CommandBuffer : public IDNode { Device &device; }; +static_assert(NEO::NonCopyableAndNonMovable); + struct CommandBufferList : public IDList {}; using ResourcePackage = StackVec; diff --git a/shared/source/gen12lp/aub_command_stream_receiver_gen12lp.cpp b/shared/source/gen12lp/aub_command_stream_receiver_gen12lp.cpp index ab3f5686af..486c9decb7 100644 --- a/shared/source/gen12lp/aub_command_stream_receiver_gen12lp.cpp +++ b/shared/source/gen12lp/aub_command_stream_receiver_gen12lp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2022 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -43,4 +43,5 @@ uint32_t AUBCommandStreamReceiverHw::getGUCWorkQueueItemHeader() { } template class AUBCommandStreamReceiverHw; +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/gen12lp/linux/command_stream_receiver_gen12lp.cpp b/shared/source/gen12lp/linux/command_stream_receiver_gen12lp.cpp index 98b2f21a5a..8eaa9d2e51 100644 --- a/shared/source/gen12lp/linux/command_stream_receiver_gen12lp.cpp +++ b/shared/source/gen12lp/linux/command_stream_receiver_gen12lp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2023 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class DrmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/gen12lp/tbx_command_stream_receiver_gen12lp.cpp b/shared/source/gen12lp/tbx_command_stream_receiver_gen12lp.cpp index caa5c233c2..d6ce3d6690 100644 --- a/shared/source/gen12lp/tbx_command_stream_receiver_gen12lp.cpp +++ b/shared/source/gen12lp/tbx_command_stream_receiver_gen12lp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2022 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -37,4 +37,5 @@ void populateFactoryTable>() { template class TbxCommandStreamReceiverHw; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/gen12lp/windows/command_stream_receiver_gen12lp.cpp b/shared/source/gen12lp/windows/command_stream_receiver_gen12lp.cpp index fa38923ddd..439e8f7594 100644 --- a/shared/source/gen12lp/windows/command_stream_receiver_gen12lp.cpp +++ b/shared/source/gen12lp/windows/command_stream_receiver_gen12lp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2022 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class WddmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/memory_manager/deferrable_deletion.h b/shared/source/memory_manager/deferrable_deletion.h index 41467d2d13..b598152409 100644 --- a/shared/source/memory_manager/deferrable_deletion.h +++ b/shared/source/memory_manager/deferrable_deletion.h @@ -1,11 +1,12 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once +#include "shared/source/helpers/non_copyable_or_moveable.h" #include "shared/source/utilities/idlist.h" namespace NEO { @@ -18,4 +19,6 @@ class DeferrableDeletion : public IDNode { bool isExternalHostptr() const { return externalHostptr; } bool externalHostptr = false; }; + +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/utilities/buffer_pool_allocator.h b/shared/source/utilities/buffer_pool_allocator.h index d612acda42..5d857f1380 100644 --- a/shared/source/utilities/buffer_pool_allocator.h +++ b/shared/source/utilities/buffer_pool_allocator.h @@ -61,7 +61,7 @@ struct AbstractBuffersPool : public NonCopyableClass { AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback); AbstractBuffersPool(MemoryManager *memoryManager, OnChunkFreeCallback onChunkFreeCallback, const SmallBuffersParams ¶ms); AbstractBuffersPool(AbstractBuffersPool &&bufferPool); - AbstractBuffersPool &operator=(AbstractBuffersPool &&) = delete; + AbstractBuffersPool &operator=(AbstractBuffersPool &&other) noexcept = delete; virtual ~AbstractBuffersPool() = default; void tryFreeFromPoolBuffer(BufferParentType *possiblePoolBuffer, size_t offset, size_t size); diff --git a/shared/source/utilities/idlist.h b/shared/source/utilities/idlist.h index 1f56e885d3..9795d69762 100644 --- a/shared/source/utilities/idlist.h +++ b/shared/source/utilities/idlist.h @@ -8,6 +8,7 @@ #pragma once #include "shared/source/helpers/debug_helpers.h" +#include "shared/source/helpers/non_copyable_or_moveable.h" #include #include @@ -168,7 +169,7 @@ struct IDNode { }; template -class IDList { +class IDList : NEO::NonCopyableAndNonMovableClass { public: using ThisType = IDList; @@ -192,9 +193,6 @@ class IDList { this->cleanup(); } - IDList(const IDList &) = delete; - IDList &operator=(const IDList &) = delete; - void pushFrontOne(NodeObjectType &node) { processLocked(&node); } diff --git a/shared/source/utilities/iflist.h b/shared/source/utilities/iflist.h index f49c249c25..579c0748ac 100644 --- a/shared/source/utilities/iflist.h +++ b/shared/source/utilities/iflist.h @@ -8,6 +8,7 @@ #pragma once #include "shared/source/helpers/mt_helpers.h" +#include "shared/source/helpers/non_copyable_or_moveable.h" #include #include @@ -89,7 +90,7 @@ struct IFNode { }; template -class IFList { +class IFList : NEO::NonCopyableAndNonMovableClass { public: IFList() : head(nullptr) { @@ -103,9 +104,6 @@ class IFList { this->cleanup(); } - IFList(const IFList &) = delete; - IFList &operator=(const IFList &) = delete; - template typename std::enable_if::type pushFrontOne(NodeObjectType &node) { node.next = head; diff --git a/shared/source/utilities/reference_tracked_object.h b/shared/source/utilities/reference_tracked_object.h index 6a27d25773..b8bb7ef782 100644 --- a/shared/source/utilities/reference_tracked_object.h +++ b/shared/source/utilities/reference_tracked_object.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -7,6 +7,7 @@ #pragma once #include "shared/source/helpers/debug_helpers.h" +#include "shared/source/helpers/non_copyable_or_moveable.h" #include #include @@ -169,7 +170,7 @@ inline ReferenceTrackedObject::~ReferenceTrackedObject() { } template -class DecRefInternalAtScopeEnd final { +class DecRefInternalAtScopeEnd final : NEO::NonCopyableAndNonMovableClass { public: DecRefInternalAtScopeEnd(RefTrackedObj &obj) : object{obj} { } @@ -178,11 +179,6 @@ class DecRefInternalAtScopeEnd final { object.decRefInternal(); } - DecRefInternalAtScopeEnd(const DecRefInternalAtScopeEnd &) = delete; - DecRefInternalAtScopeEnd(DecRefInternalAtScopeEnd &&) = delete; - DecRefInternalAtScopeEnd &operator=(const DecRefInternalAtScopeEnd &) = delete; - DecRefInternalAtScopeEnd &operator=(DecRefInternalAtScopeEnd &&) = delete; - private: RefTrackedObj &object; }; diff --git a/shared/source/xe2_hpg_core/aub_command_stream_receiver_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/aub_command_stream_receiver_xe2_hpg_core.cpp index 14c17a46e6..af5113ab32 100644 --- a/shared/source/xe2_hpg_core/aub_command_stream_receiver_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/aub_command_stream_receiver_xe2_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -24,4 +24,5 @@ void populateFactoryTable>() { } template class AUBCommandStreamReceiverHw; +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/xe2_hpg_core/linux/command_stream_receiver_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/linux/command_stream_receiver_xe2_hpg_core.cpp index dd7fcebb7b..1e8d8f2a16 100644 --- a/shared/source/xe2_hpg_core/linux/command_stream_receiver_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/linux/command_stream_receiver_xe2_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class DrmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe2_hpg_core/tbx_command_stream_receiver_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/tbx_command_stream_receiver_xe2_hpg_core.cpp index 91e6bdda6d..d7a12d93ae 100644 --- a/shared/source/xe2_hpg_core/tbx_command_stream_receiver_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/tbx_command_stream_receiver_xe2_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -29,4 +29,5 @@ void populateFactoryTable>() { template class TbxCommandStreamReceiverHw; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe2_hpg_core/windows/command_stream_receiver_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/windows/command_stream_receiver_xe2_hpg_core.cpp index 79e67497e9..01ad0c4afa 100644 --- a/shared/source/xe2_hpg_core/windows/command_stream_receiver_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/windows/command_stream_receiver_xe2_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class WddmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe3_core/aub_command_stream_receiver_xe3_core.cpp b/shared/source/xe3_core/aub_command_stream_receiver_xe3_core.cpp index 75bf607204..ada8d70ebc 100644 --- a/shared/source/xe3_core/aub_command_stream_receiver_xe3_core.cpp +++ b/shared/source/xe3_core/aub_command_stream_receiver_xe3_core.cpp @@ -23,4 +23,5 @@ void populateFactoryTable>() { } template class AUBCommandStreamReceiverHw; +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/xe3_core/linux/command_stream_receiver_xe3_core.cpp b/shared/source/xe3_core/linux/command_stream_receiver_xe3_core.cpp index 9e967c89cf..b9a17655b0 100644 --- a/shared/source/xe3_core/linux/command_stream_receiver_xe3_core.cpp +++ b/shared/source/xe3_core/linux/command_stream_receiver_xe3_core.cpp @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class DrmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe3_core/tbx_command_stream_receiver_xe3_core.cpp b/shared/source/xe3_core/tbx_command_stream_receiver_xe3_core.cpp index 1a9e28dd47..78bcdc7866 100644 --- a/shared/source/xe3_core/tbx_command_stream_receiver_xe3_core.cpp +++ b/shared/source/xe3_core/tbx_command_stream_receiver_xe3_core.cpp @@ -27,4 +27,5 @@ void populateFactoryTable>() { template class TbxCommandStreamReceiverHw; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe3_core/windows/command_stream_receiver_xe3_core.cpp b/shared/source/xe3_core/windows/command_stream_receiver_xe3_core.cpp index e83a857c67..fc813068b7 100644 --- a/shared/source/xe3_core/windows/command_stream_receiver_xe3_core.cpp +++ b/shared/source/xe3_core/windows/command_stream_receiver_xe3_core.cpp @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class WddmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpc_core/aub_command_stream_receiver_xe_hpc_core.cpp b/shared/source/xe_hpc_core/aub_command_stream_receiver_xe_hpc_core.cpp index f107be559a..2edca176c5 100644 --- a/shared/source/xe_hpc_core/aub_command_stream_receiver_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/aub_command_stream_receiver_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -24,4 +24,5 @@ void populateFactoryTable>() { } template class AUBCommandStreamReceiverHw; +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/xe_hpc_core/linux/command_stream_receiver_xe_hpc_core.cpp b/shared/source/xe_hpc_core/linux/command_stream_receiver_xe_hpc_core.cpp index eb61a44a44..2b39a12727 100644 --- a/shared/source/xe_hpc_core/linux/command_stream_receiver_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/linux/command_stream_receiver_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2023 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class DrmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpc_core/tbx_command_stream_receiver_xe_hpc_core.cpp b/shared/source/xe_hpc_core/tbx_command_stream_receiver_xe_hpc_core.cpp index 70c17f2554..133f048625 100644 --- a/shared/source/xe_hpc_core/tbx_command_stream_receiver_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/tbx_command_stream_receiver_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -29,4 +29,5 @@ void populateFactoryTable>() { template class TbxCommandStreamReceiverHw; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpc_core/windows/command_stream_receiver_xe_hpc_core.cpp b/shared/source/xe_hpc_core/windows/command_stream_receiver_xe_hpc_core.cpp index 8e90f1de6c..3f2ecac583 100644 --- a/shared/source/xe_hpc_core/windows/command_stream_receiver_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/windows/command_stream_receiver_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class WddmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpg_core/aub_command_stream_receiver_xe_hpg_core.cpp b/shared/source/xe_hpg_core/aub_command_stream_receiver_xe_hpg_core.cpp index 039249ae36..65654428df 100644 --- a/shared/source/xe_hpg_core/aub_command_stream_receiver_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/aub_command_stream_receiver_xe_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -24,4 +24,5 @@ void populateFactoryTable>() { } template class AUBCommandStreamReceiverHw; +static_assert(NEO::NonCopyableAndNonMovable>); } // namespace NEO diff --git a/shared/source/xe_hpg_core/linux/command_stream_receiver_xe_hpg_core.cpp b/shared/source/xe_hpg_core/linux/command_stream_receiver_xe_hpg_core.cpp index 73e1e69ca8..c41a3a5e18 100644 --- a/shared/source/xe_hpg_core/linux/command_stream_receiver_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/linux/command_stream_receiver_xe_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2023 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class DrmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpg_core/tbx_command_stream_receiver_xe_hpg_core.cpp b/shared/source/xe_hpg_core/tbx_command_stream_receiver_xe_hpg_core.cpp index 5d41c99e9e..41d0fc07d0 100644 --- a/shared/source/xe_hpg_core/tbx_command_stream_receiver_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/tbx_command_stream_receiver_xe_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -29,4 +29,5 @@ void populateFactoryTable>() { template class TbxCommandStreamReceiverHw; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/source/xe_hpg_core/windows/command_stream_receiver_xe_hpg_core.cpp b/shared/source/xe_hpg_core/windows/command_stream_receiver_xe_hpg_core.cpp index 133b5f63db..4473ab0439 100644 --- a/shared/source/xe_hpg_core/windows/command_stream_receiver_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/windows/command_stream_receiver_xe_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -15,4 +15,5 @@ namespace NEO { template class DeviceCommandStreamReceiver; template class WddmCommandStreamReceiver; template class CommandStreamReceiverWithAUBDump>; +static_assert(NEO::NonCopyableAndNonMovable>>); } // namespace NEO diff --git a/shared/test/common/libult/ult_aub_command_stream_receiver.h b/shared/test/common/libult/ult_aub_command_stream_receiver.h index c5d885783e..0852f6be94 100644 --- a/shared/test/common/libult/ult_aub_command_stream_receiver.h +++ b/shared/test/common/libult/ult_aub_command_stream_receiver.h @@ -13,7 +13,7 @@ namespace NEO { template -class UltAubCommandStreamReceiver : public AUBCommandStreamReceiverHw, public NonCopyableAndNonMovableClass { +class UltAubCommandStreamReceiver : public AUBCommandStreamReceiverHw { using BaseClass = AUBCommandStreamReceiverHw; public: diff --git a/shared/test/common/libult/ult_command_stream_receiver.h b/shared/test/common/libult/ult_command_stream_receiver.h index f98d96cd8a..fb5d0ee118 100644 --- a/shared/test/common/libult/ult_command_stream_receiver.h +++ b/shared/test/common/libult/ult_command_stream_receiver.h @@ -46,7 +46,7 @@ struct WriteMemoryParams { }; template -class UltCommandStreamReceiver : public CommandStreamReceiverHw, public NonCopyableAndNonMovableClass { +class UltCommandStreamReceiver : public CommandStreamReceiverHw { using BaseClass = CommandStreamReceiverHw; public: