Files
compute-runtime/runtime/sharings/unified/unified_sharing.cpp
Maciej Dziuban 603bce2164 Unified memory sharing 1/n
This change introduces creating and releasing buffers from
memory handle. Currently Windows NT Handles are supported.

Change-Id: I61b89d97946ce61617ad98922b7e9731d4a754a9
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-3771
2019-11-06 10:43:34 +01:00

42 lines
1.2 KiB
C++

/*
* Copyright (C) 2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "runtime/sharings/unified/unified_sharing.h"
#include "core/helpers/string.h"
#include "runtime/context/context.h"
#include "runtime/helpers/timestamp_packet.h"
#include "runtime/sharings/sharing_factory.h"
#include <unordered_map>
namespace NEO {
const uint32_t UnifiedSharingFunctions::sharingId = SharingType::UNIFIED_SHARING;
UnifiedSharing::UnifiedSharing(UnifiedSharingFunctions *sharingFunctions, UnifiedSharingHandleType memoryType)
: sharingFunctions(sharingFunctions),
memoryType(memoryType) {
}
int UnifiedSharing::synchronizeHandler(UpdateData &updateData) {
synchronizeObject(updateData);
return CL_SUCCESS;
}
void UnifiedSharing::resolveGraphicsAllocationChange(osHandle currentSharedHandle, UpdateData *updateData) {
updateData->synchronizationStatus = SynchronizeStatus::ACQUIRE_SUCCESFUL;
}
template <>
UnifiedSharingFunctions *Context::getSharing() {
UNRECOVERABLE_IF(UnifiedSharingFunctions::sharingId >= sharingFunctions.size())
return reinterpret_cast<UnifiedSharingFunctions *>(sharingFunctions[UnifiedSharingFunctions::sharingId].get());
}
} // namespace NEO