SWDEV-314254 - Fix for hipMemcpy3D test crash
Change-Id: Iac70bfe0d351cfb5b56fefc9a6487d3f26f2b4ef
Цей коміт міститься в:
зафіксовано
Sarbojit Sarkar
джерело
84af5eed4e
коміт
aedbad0109
@@ -834,6 +834,8 @@ class Memory : public amd::HeapObject {
|
||||
|
||||
virtual uint64_t virtualAddress() const { return 0; }
|
||||
|
||||
virtual uint64_t originalDeviceAddress() const { return 0; }
|
||||
|
||||
//! Returns CPU pointer to HW state
|
||||
virtual const address cpuSrd() const { return nullptr; }
|
||||
|
||||
|
||||
@@ -102,6 +102,8 @@ class Memory : public device::Memory {
|
||||
|
||||
virtual uint64_t virtualAddress() const override { return reinterpret_cast<uint64_t>(getDeviceMemory()); }
|
||||
|
||||
virtual uint64_t originalDeviceAddress() const { return virtualAddress(); }
|
||||
|
||||
// Accessors for indirect map memory object
|
||||
amd::Memory* mapMemory() const { return mapMemory_; }
|
||||
|
||||
@@ -219,6 +221,7 @@ class Image : public roc::Memory {
|
||||
|
||||
amd::Image* CopyImageBuffer() const { return copyImageBuffer_; }
|
||||
|
||||
virtual uint64_t originalDeviceAddress() const { return reinterpret_cast<uint64_t>(originalDeviceMemory_); }
|
||||
private:
|
||||
//! Disable copy constructor
|
||||
Image(const Buffer&);
|
||||
|
||||
@@ -507,14 +507,14 @@ bool TwoMemoryArgsCommand::validatePeerMemory(){
|
||||
// explicit allow access is needed for P2P access
|
||||
device::Memory* mem1 = memory1_->getDeviceMemory(*srcDevices[0]);
|
||||
if (!mem1->getAllowedPeerAccess() && srcDevices.size() == 1) {
|
||||
void* src = reinterpret_cast<void*>(mem1->virtualAddress());
|
||||
void* src = reinterpret_cast<void*>(mem1->originalDeviceAddress());
|
||||
accessAllowed = srcDevices[0]->deviceAllowAccess(src);
|
||||
mem1->setAllowedPeerAccess(true);
|
||||
}
|
||||
|
||||
device::Memory* mem2 = memory2_->getDeviceMemory(*dstDevices[0]);
|
||||
if (!mem2->getAllowedPeerAccess() && dstDevices.size() == 1) {
|
||||
void* dst = reinterpret_cast<void*>(mem2->virtualAddress());
|
||||
void* dst = reinterpret_cast<void*>(mem2->originalDeviceAddress());
|
||||
accessAllowed &= dstDevices[0]->deviceAllowAccess(dst);
|
||||
mem2->setAllowedPeerAccess(true);
|
||||
}
|
||||
|
||||
Посилання в новій задачі
Заблокувати користувача