Support creating textures from user ptr with offset
Change-Id: Ied0af9a842fc6ef067e068a9d89dde63ff5dfce1
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user