mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-11 16:45:25 +08:00
Add support for gem create extension to create VM_PRIVATE BOs
Add support for PRELIM_I915_GEM_CREATE_EXT_VM_PRIVATE extension to create VM_PRIVATE BOs. Related-to: NEO-6730 Signed-off-by: Naklicki, Mateusz <mateusz.naklicki@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
dc2e1dfdb0
commit
58ec879c46
@@ -156,6 +156,14 @@ int DrmMockPrelimContext::handlePrelimRequest(DrmIoctl request, void *arg) {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
prelim_drm_i915_gem_create_ext_vm_private *vmPrivateExt = nullptr;
|
||||
if (extension->base.next_extension != 0) {
|
||||
vmPrivateExt = reinterpret_cast<prelim_drm_i915_gem_create_ext_vm_private *>(extension->base.next_extension);
|
||||
if (vmPrivateExt->base.name != PRELIM_I915_GEM_CREATE_EXT_VM_PRIVATE) {
|
||||
return EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
auto data = reinterpret_cast<MemoryClassInstance *>(extension->param.data);
|
||||
if (!data) {
|
||||
return EINVAL;
|
||||
@@ -165,6 +173,9 @@ int DrmMockPrelimContext::handlePrelimRequest(DrmIoctl request, void *arg) {
|
||||
createExt->handle = createExtHandle;
|
||||
receivedCreateGemExt = CreateGemExt{createExt->size, createExtHandle};
|
||||
receivedCreateGemExt->setParamExt = CreateGemExt::SetParam{extension->param.handle, extension->param.size, extension->param.param};
|
||||
if (vmPrivateExt != nullptr) {
|
||||
receivedCreateGemExt->vmPrivateExt = CreateGemExt::VmPrivate{vmPrivateExt->vm_id};
|
||||
}
|
||||
|
||||
receivedCreateGemExt->memoryRegions.clear();
|
||||
for (uint32_t i = 0; i < extension->param.size; i++) {
|
||||
|
||||
@@ -43,6 +43,11 @@ struct CreateGemExt {
|
||||
uint16_t memoryInstance{0};
|
||||
};
|
||||
std::vector<MemoryClassInstance> memoryRegions{};
|
||||
|
||||
struct VmPrivate {
|
||||
uint32_t vmId{std::numeric_limits<uint32_t>::max()};
|
||||
};
|
||||
VmPrivate vmPrivateExt{};
|
||||
};
|
||||
|
||||
struct GemContextParamAcc {
|
||||
|
||||
Reference in New Issue
Block a user