SWDEV-239327 - Dont call hsa_amd_memory_pool_free from ~amd::Memory() for obj created by passing devptr.
Change-Id: I315fd502df6bb1bf66dd24eac9325f1439e432ad
[ROCm/clr commit: 1b0882e061]
Этот коммит содержится в:
@@ -654,10 +654,12 @@ void Buffer::destroy() {
|
||||
}
|
||||
const bool isFineGrain = memFlags & CL_MEM_SVM_FINE_GRAIN_BUFFER;
|
||||
|
||||
if (isFineGrain) {
|
||||
dev().hostFree(deviceMemory_, size());
|
||||
} else {
|
||||
dev().memFree(deviceMemory_, size());
|
||||
if (kind_ != MEMORY_KIND_PTRGIVEN) {
|
||||
if (isFineGrain) {
|
||||
dev().hostFree(deviceMemory_, size());
|
||||
} else {
|
||||
dev().memFree(deviceMemory_, size());
|
||||
}
|
||||
}
|
||||
|
||||
if ((deviceMemory_ != nullptr) &&
|
||||
@@ -743,6 +745,7 @@ bool Buffer::create() {
|
||||
owner()->setSvmPtr(deviceMemory_);
|
||||
} else {
|
||||
deviceMemory_ = owner()->getSvmPtr();
|
||||
kind_ = MEMORY_KIND_PTRGIVEN;
|
||||
}
|
||||
|
||||
if (!isFineGrain && (owner()->parent() != nullptr) &&
|
||||
|
||||
@@ -35,7 +35,8 @@ class Memory : public device::Memory {
|
||||
MEMORY_KIND_NORMAL = 0,
|
||||
MEMORY_KIND_LOCK,
|
||||
MEMORY_KIND_GART,
|
||||
MEMORY_KIND_INTEROP
|
||||
MEMORY_KIND_INTEROP,
|
||||
MEMORY_KIND_PTRGIVEN
|
||||
};
|
||||
|
||||
Memory(const roc::Device& dev, amd::Memory& owner);
|
||||
|
||||
Ссылка в новой задаче
Block a user