SWDEV-333557 - 1.Add support for IPC memory to enable hipIpcGetMemHandle() and hipIpcOpenMemHandle() in PAL path. Set interprocess flag for device allocations in HIP PAL. 2.Fix PAL IPC path with ResourceCache and SubAllocation 3.Minor fixes for IpcBuffer constructor and IpcAttach 4.Remove redundant checks that may go wrong
Change-Id: Ie9d99847c7c2c7b3b2aaefaaf60d23bf71b68635
Dieser Commit ist enthalten in:
@@ -94,6 +94,7 @@ Memory::Memory(Context& context, Type type, Flags flags, size_t size, void* svmP
|
||||
vDev_(NULL),
|
||||
mapCount_(0),
|
||||
svmHostAddress_(svmPtr),
|
||||
resOffset_(0),
|
||||
flagsEx_(0),
|
||||
lockMemoryOps_("Memory Ops Lock", true) {
|
||||
svmPtrCommited_ = (flags & CL_MEM_SVM_FINE_GRAIN_BUFFER) ? true : false;
|
||||
@@ -117,6 +118,7 @@ Memory::Memory(Memory& parent, Flags flags, size_t origin, size_t size, Type typ
|
||||
vDev_(NULL),
|
||||
mapCount_(0),
|
||||
svmHostAddress_(parent.getSvmPtr()),
|
||||
resOffset_(0),
|
||||
flagsEx_(0),
|
||||
lockMemoryOps_("Memory Ops Lock", true) {
|
||||
svmPtrCommited_ = parent.isSvmPtrCommited();
|
||||
|
||||
@@ -194,6 +194,7 @@ class Memory : public amd::RuntimeObject {
|
||||
device::VirtualDevice* vDev_; //!< Memory object belongs to a virtual device only
|
||||
std::atomic_uint mapCount_; //!< Keep track of number of mappings for a memory object
|
||||
void* svmHostAddress_; //!< svm host address;
|
||||
size_t resOffset_; //!< resource offset
|
||||
union {
|
||||
struct {
|
||||
uint32_t isParent_ : 1; //!< This object is a parent
|
||||
@@ -372,6 +373,10 @@ class Memory : public amd::RuntimeObject {
|
||||
|
||||
void* getSvmPtr() const { return svmHostAddress_; } //!< svm pointer accessor;
|
||||
void setSvmPtr(void* ptr) { svmHostAddress_ = ptr; } //!< svm pointer setter;
|
||||
|
||||
size_t getOffset() const { return resOffset_; } //!< resource offset accessor;
|
||||
void setOffset(size_t offset) { resOffset_ = offset; } //!< resource offset setter;
|
||||
|
||||
bool isSvmPtrCommited() const {
|
||||
return svmPtrCommited_;
|
||||
} //!< svm host address committed accessor;
|
||||
@@ -679,8 +684,9 @@ public:
|
||||
class IpcBuffer : public Buffer {
|
||||
public:
|
||||
IpcBuffer(Context& context, Flags flags, size_t offset, size_t size, const void* handle)
|
||||
: Buffer(context, flags, offset, size), handle_(handle) {
|
||||
: Buffer(context, flags, size), handle_(handle) {
|
||||
setIpcShared(true);
|
||||
setOffset(offset);
|
||||
}
|
||||
|
||||
virtual void initDeviceMemory();
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren