wsl/libhsakmt: refactor ipc implementation

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Tianci Yin <tianci.yin@amd.com>
Part-of: <http://10.67.69.192/wsl/rocr-runtime/-/merge_requests/85>
This commit is contained in:
Flora Cui
2025-07-01 10:42:35 +08:00
committed by Frank Min
parent 61add17468
commit 6d941db5ec
+10 -5
View File
@@ -62,9 +62,10 @@ union GpuMemoryCreateFlags {
uint64_t interprocess : 1; // physical buffer need share info between exporter and importer
uint64_t locked : 1; // lock virtual address space into RAM, preventing that memory from being paged to the swap area
uint64_t physical_contiguous : 1; // contiguous physical pages
uint64_t imported_vram_alloc_va : 1; // import buffer form dmabuf fd and allocate valid va (not from handle aperture)
uint64_t imported_sys_memfd : 1; // allocate system memory for IPC signal
uint64_t unused : 57;
uint64_t sysmem_ipc_sig_importer : 1; // allocate system memory for IPC signal
uint64_t sysmem_ipc_sig_exporter : 1; // allocate system memory for IPC signal, prepare to export
uint64_t alloc_va : 1; // allocate va. 0 for vmem import
uint64_t unused : 56;
};
uint64_t reserved;
};
@@ -78,9 +79,12 @@ union GpuMemoryDescFlags {
uint32_t is_locked : 1;
uint32_t is_queue_referenced : 1;
uint32_t is_physical_contiguous : 1;
uint32_t is_imported_vram_alloc_va : 1; // 0 - va from handle aperture; 1 - va from local heap;
uint32_t is_imported_sys_memfd : 1; // 0 - ignored; 1 - va from system heap
uint32_t unused : 23;
uint32_t is_sysmem_exporter : 1; // allocate system memory for IPC signal, prepare to export
uint32_t is_va_required :1;
uint32_t is_imported_vram_vmem :1;
uint32_t is_imported_vram_ipc :1;
uint32_t unused : 20;
};
uint32_t reserved;
@@ -171,6 +175,7 @@ public:
inline bool IsVirtual() const { return desc_.flags.is_virtual; }
inline bool IsShared() const { return desc_.flags.is_shared; }
inline bool IsExternal() const { return desc_.flags.is_external; }
inline bool IsVaAllocated() const { return desc_.flags.is_va_required; }
inline uint32_t Flags() const { return desc_.flags.reserved; }
inline int GetAllocInfo() const { return desc_.mem_flags; }