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]
Ta zmiana jest zawarta w:
%! (template.HTML=
kjayapra-amd)złożyło 2020-06-05 18:42:03 -04:00
1 rodzic
d4a985dcd3
złożenie
01737d2472
2 plików zmienionych
+9
-5
Żadne pliki nie pasują do Twojego wyszukiwania
@@ -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);
|
||||
|
||||
Reference in new issue
Zablokuj użytkownika