Support creating textures from user ptr with offset

Change-Id: Ied0af9a842fc6ef067e068a9d89dde63ff5dfce1
This commit is contained in:
Vlad Sytchenko
2020-05-26 14:26:19 -04:00
parent 8db45328d9
commit ba2d3fbbb3
3 changed files with 31 additions and 9 deletions
+21
View File
@@ -43,6 +43,27 @@ amd::Memory* getMemoryObject(const void* ptr, size_t& offset) {
return memObj;
}
// ================================================================================================
amd::Memory* getMemoryObjectWithOffset(const void* ptr, const size_t size) {
size_t offset;
amd::Memory* memObj = getMemoryObject(ptr, offset);
if (memObj != nullptr) {
assert(size <= (memObj->getSize() - offset));
memObj = new (memObj->getContext()) amd::Buffer(*memObj, memObj->getMemFlags(), offset, size);
if (memObj == nullptr) {;
return nullptr;
}
if (!memObj->create(nullptr)) {
memObj->release();
return nullptr;
}
}
return memObj;
}
// ================================================================================================
hipError_t ihipFree(void *ptr)
{