2017-12-21 00:45:38 +01:00
|
|
|
/*
|
2019-01-07 09:29:49 +01:00
|
|
|
* Copyright (C) 2017-2019 Intel Corporation
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
2018-09-18 09:11:08 +02:00
|
|
|
* SPDX-License-Identifier: MIT
|
2017-12-21 00:45:38 +01:00
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2018-11-02 10:01:56 +01:00
|
|
|
#include "runtime/memory_manager/graphics_allocation.h"
|
2019-02-27 11:39:32 +01:00
|
|
|
|
|
|
|
|
#include "runtime/helpers/aligned_memory.h"
|
2018-12-20 17:38:38 +01:00
|
|
|
#include "runtime/os_interface/debug_settings_manager.h"
|
2017-12-21 00:45:38 +01:00
|
|
|
|
2018-11-02 10:01:56 +01:00
|
|
|
namespace OCLRT {
|
2018-12-20 17:38:38 +01:00
|
|
|
|
|
|
|
|
void GraphicsAllocation::setAllocationType(AllocationType allocationType) {
|
|
|
|
|
DebugManager.logAllocation(this);
|
|
|
|
|
this->allocationType = allocationType;
|
|
|
|
|
}
|
|
|
|
|
|
2019-02-26 11:37:51 +01:00
|
|
|
GraphicsAllocation::GraphicsAllocation(AllocationType allocationType, void *cpuPtrIn, uint64_t gpuAddress, uint64_t baseAddress,
|
|
|
|
|
size_t sizeIn, MemoryPool::Type pool, bool multiOsContextCapable)
|
2019-02-11 10:02:27 +01:00
|
|
|
: gpuBaseAddress(baseAddress),
|
|
|
|
|
size(sizeIn),
|
|
|
|
|
cpuPtr(cpuPtrIn),
|
|
|
|
|
gpuAddress(gpuAddress),
|
2019-02-26 11:37:51 +01:00
|
|
|
memoryPool(pool),
|
|
|
|
|
allocationType(allocationType),
|
2019-02-11 10:02:27 +01:00
|
|
|
multiOsContextCapable(multiOsContextCapable) {}
|
|
|
|
|
|
2019-02-26 11:37:51 +01:00
|
|
|
GraphicsAllocation::GraphicsAllocation(AllocationType allocationType, void *cpuPtrIn, size_t sizeIn, osHandle sharedHandleIn,
|
|
|
|
|
MemoryPool::Type pool, bool multiOsContextCapable)
|
2019-02-11 10:02:27 +01:00
|
|
|
: size(sizeIn),
|
|
|
|
|
cpuPtr(cpuPtrIn),
|
|
|
|
|
gpuAddress(castToUint64(cpuPtrIn)),
|
|
|
|
|
sharedHandle(sharedHandleIn),
|
2019-02-26 11:37:51 +01:00
|
|
|
memoryPool(pool),
|
|
|
|
|
allocationType(allocationType),
|
2019-02-11 10:02:27 +01:00
|
|
|
multiOsContextCapable(multiOsContextCapable) {}
|
2018-11-02 10:01:56 +01:00
|
|
|
|
|
|
|
|
GraphicsAllocation::~GraphicsAllocation() = default;
|
|
|
|
|
|
|
|
|
|
void GraphicsAllocation::updateTaskCount(uint32_t newTaskCount, uint32_t contextId) {
|
2018-11-07 08:33:55 +00:00
|
|
|
if (usageInfos[contextId].taskCount == objectNotUsed) {
|
2018-11-02 10:01:56 +01:00
|
|
|
registeredContextsNum++;
|
|
|
|
|
}
|
2018-11-07 08:33:55 +00:00
|
|
|
if (newTaskCount == objectNotUsed) {
|
2018-11-02 10:01:56 +01:00
|
|
|
registeredContextsNum--;
|
|
|
|
|
}
|
2018-11-06 11:38:49 +01:00
|
|
|
usageInfos[contextId].taskCount = newTaskCount;
|
2018-11-02 10:01:56 +01:00
|
|
|
}
|
2018-12-20 17:38:38 +01:00
|
|
|
|
|
|
|
|
std::string GraphicsAllocation::getAllocationInfoString() const {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
2018-11-07 08:33:55 +00:00
|
|
|
constexpr uint32_t GraphicsAllocation::objectNotUsed;
|
|
|
|
|
constexpr uint32_t GraphicsAllocation::objectNotResident;
|
2018-11-02 10:01:56 +01:00
|
|
|
} // namespace OCLRT
|