mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-20 13:11:34 +08:00
Move Drm function
Related-To: NEO-5570 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
ec7a0bfbcc
commit
d223508cad
@ -37,12 +37,17 @@ Drm *Drm::create(std::unique_ptr<HwDeviceId> hwDeviceId, RootDeviceEnvironment &
|
||||
}
|
||||
auto drm = new DrmMockDefault(rootDeviceEnvironment);
|
||||
|
||||
const HardwareInfo *hwInfo = rootDeviceEnvironment.getHardwareInfo();
|
||||
if (HwHelper::get(hwInfo->platform.eRenderCoreFamily).getEnableLocalMemory(*hwInfo)) {
|
||||
drm->queryMemoryInfo();
|
||||
}
|
||||
|
||||
if (drm->isVmBindAvailable() && rootDeviceEnvironment.executionEnvironment.isDebuggingEnabled()) {
|
||||
drm->setPerContextVMRequired(true);
|
||||
}
|
||||
|
||||
if (!drm->isPerContextVMRequired()) {
|
||||
drm->createVirtualMemoryAddressSpace(HwHelper::getSubDevicesCount(rootDeviceEnvironment.getHardwareInfo()));
|
||||
drm->createVirtualMemoryAddressSpace(HwHelper::getSubDevicesCount(hwInfo));
|
||||
}
|
||||
return drm;
|
||||
}
|
||||
|
@ -234,15 +234,6 @@ void Drm::destroyDrmContext(uint32_t drmContextId) {
|
||||
UNRECOVERABLE_IF(retVal != 0);
|
||||
}
|
||||
|
||||
int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
|
||||
drm_i915_gem_vm_control ctl = {};
|
||||
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
|
||||
if (ret == 0) {
|
||||
drmVmId = ctl.vm_id;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Drm::destroyDrmVirtualMemory(uint32_t drmVmId) {
|
||||
drm_i915_gem_vm_control ctl = {};
|
||||
ctl.vm_id = drmVmId;
|
||||
@ -449,7 +440,7 @@ std::unique_ptr<uint8_t[]> Drm::query(uint32_t queryId, uint32_t queryItemFlags,
|
||||
|
||||
bool Drm::createVirtualMemoryAddressSpace(uint32_t vmCount) {
|
||||
for (auto i = 0u; i < vmCount; i++) {
|
||||
uint32_t id = 0;
|
||||
uint32_t id = i;
|
||||
if (0 != createDrmVirtualMemory(id)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "shared/source/os_interface/linux/cache_info_impl.h"
|
||||
#include "shared/source/os_interface/linux/drm_engine_mapper.h"
|
||||
#include "shared/source/os_interface/linux/engine_info_impl.h"
|
||||
#include "shared/source/os_interface/linux/sys_calls.h"
|
||||
|
||||
#include "drm_neo.h"
|
||||
#include "drm_query_flags.h"
|
||||
@ -77,4 +78,13 @@ void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
|
||||
this->cacheInfo.reset(new CacheInfoImpl());
|
||||
}
|
||||
|
||||
int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
|
||||
drm_i915_gem_vm_control ctl = {};
|
||||
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
|
||||
if (ret == 0) {
|
||||
drmVmId = ctl.vm_id;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "shared/source/os_interface/linux/drm_engine_mapper.h"
|
||||
#include "shared/source/os_interface/linux/engine_info_impl.h"
|
||||
#include "shared/source/os_interface/linux/memory_info_impl.h"
|
||||
#include "shared/source/os_interface/linux/sys_calls.h"
|
||||
|
||||
#include "drm_neo.h"
|
||||
#include "drm_query_flags.h"
|
||||
@ -86,4 +87,13 @@ void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
|
||||
this->cacheInfo.reset(new CacheInfoImpl());
|
||||
}
|
||||
|
||||
int Drm::createDrmVirtualMemory(uint32_t &drmVmId) {
|
||||
drm_i915_gem_vm_control ctl = {};
|
||||
auto ret = SysCalls::ioctl(getFileDescriptor(), DRM_IOCTL_I915_GEM_VM_CREATE, &ctl);
|
||||
if (ret == 0) {
|
||||
drmVmId = ctl.vm_id;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
Reference in New Issue
Block a user