From 125e2a0ff8d50f2f0a26f7afcb12af3c5ce51d0e Mon Sep 17 00:00:00 2001 From: Maciej Dziuban Date: Fri, 8 Nov 2019 11:33:09 +0100 Subject: [PATCH] Unified memory sharing 2/n Move acquire/release handling to a base class Related-To: NEO-3771 Change-Id: I0127e393ce30c0b214b3c9cad590751ad9e386bc Signed-off-by: Maciej Dziuban --- runtime/sharings/unified/unified_buffer.cpp | 7 ------- runtime/sharings/unified/unified_buffer.h | 2 -- runtime/sharings/unified/unified_sharing.cpp | 8 +++----- runtime/sharings/unified/unified_sharing.h | 4 ++-- unit_tests/sharings/unified/unified_sharing_tests.cpp | 2 ++ 5 files changed, 7 insertions(+), 16 deletions(-) diff --git a/runtime/sharings/unified/unified_buffer.cpp b/runtime/sharings/unified/unified_buffer.cpp index 270a93dabf..9a5ca650f4 100644 --- a/runtime/sharings/unified/unified_buffer.cpp +++ b/runtime/sharings/unified/unified_buffer.cpp @@ -31,14 +31,7 @@ Buffer *UnifiedBuffer::createSharedUnifiedBuffer(Context *context, cl_mem_flags return Buffer::createSharedBuffer(context, flags, sharingHandler, graphicsAllocation); } -void UnifiedBuffer::synchronizeObject(UpdateData &updateData) { - // Acquiring is not implemented yet -} - GraphicsAllocation *UnifiedBuffer::createGraphicsAllocation(Context *context, void *handle) { auto graphicsAllocation = context->getMemoryManager()->createGraphicsAllocationFromNTHandle(handle, 0); return graphicsAllocation; } - -void UnifiedBuffer::releaseResource(MemObj *memObject) { -} diff --git a/runtime/sharings/unified/unified_buffer.h b/runtime/sharings/unified/unified_buffer.h index ac9a08f5a5..8fa2b2aa02 100644 --- a/runtime/sharings/unified/unified_buffer.h +++ b/runtime/sharings/unified/unified_buffer.h @@ -18,10 +18,8 @@ class UnifiedBuffer : public UnifiedSharing { public: static Buffer *createSharedUnifiedBuffer(Context *context, cl_mem_flags flags, UnifiedSharingMemoryDescription description, cl_int *errcodeRet); - void synchronizeObject(UpdateData &updateData) override; protected: - void releaseResource(MemObj *memObject) override; static GraphicsAllocation *createGraphicsAllocation(Context *context, void *handle); }; } // namespace NEO diff --git a/runtime/sharings/unified/unified_sharing.cpp b/runtime/sharings/unified/unified_sharing.cpp index 43b25065e1..c4a855753c 100644 --- a/runtime/sharings/unified/unified_sharing.cpp +++ b/runtime/sharings/unified/unified_sharing.cpp @@ -23,13 +23,11 @@ UnifiedSharing::UnifiedSharing(UnifiedSharingFunctions *sharingFunctions, Unifie memoryType(memoryType) { } -int UnifiedSharing::synchronizeHandler(UpdateData &updateData) { - synchronizeObject(updateData); - return CL_SUCCESS; +void UnifiedSharing::synchronizeObject(UpdateData &updateData) { + updateData.synchronizationStatus = SynchronizeStatus::ACQUIRE_SUCCESFUL; } -void UnifiedSharing::resolveGraphicsAllocationChange(osHandle currentSharedHandle, UpdateData *updateData) { - updateData->synchronizationStatus = SynchronizeStatus::ACQUIRE_SUCCESFUL; +void UnifiedSharing::releaseResource(MemObj *memObject) { } template <> diff --git a/runtime/sharings/unified/unified_sharing.h b/runtime/sharings/unified/unified_sharing.h index cc56a0de19..79297f5e1a 100644 --- a/runtime/sharings/unified/unified_sharing.h +++ b/runtime/sharings/unified/unified_sharing.h @@ -36,8 +36,8 @@ class UnifiedSharing : public SharingHandler { UnifiedSharingHandleType getExternalMemoryType() { return memoryType; } protected: - int synchronizeHandler(UpdateData &updateData) override; - void resolveGraphicsAllocationChange(osHandle currentSharedHandle, UpdateData *updateData) override; + void synchronizeObject(UpdateData &updateData) override; + void releaseResource(MemObj *memObject) override; private: UnifiedSharingFunctions *sharingFunctions; diff --git a/unit_tests/sharings/unified/unified_sharing_tests.cpp b/unit_tests/sharings/unified/unified_sharing_tests.cpp index 3e87f54ef6..5d02c3c7e4 100644 --- a/unit_tests/sharings/unified/unified_sharing_tests.cpp +++ b/unit_tests/sharings/unified/unified_sharing_tests.cpp @@ -111,9 +111,11 @@ TEST_F(UnifiedSharingTestsWithMemoryManager, givenUnifiedSharingHandlerWhenAcqui unsigned int synchronizeObjectCalled = 0u; unsigned int releaseResourceCalled = 0u; void synchronizeObject(UpdateData &updateData) override { + UnifiedSharing::synchronizeObject(updateData); synchronizeObjectCalled++; } void releaseResource(MemObj *memObject) override { + UnifiedSharing::releaseResource(memObject); releaseResourceCalled++; }; };