Use different DRM Context for each OsContext on Linux

Change-Id: I543df4accdeba6c69b7dcf86d4238d12dafe92fe
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2018-12-11 08:21:56 +01:00
parent 9fcc06f0c5
commit cfafe943eb
18 changed files with 311 additions and 178 deletions

View File

@@ -24,5 +24,15 @@ OsContext::~OsContext() = default;
OsContextLinux::OsContextImpl(Drm &drm, EngineInstanceT engineType) : drm(drm) {
engineFlag = DrmEngineMapper::engineNodeMap(engineType.type);
this->drmContextId = drm.createDrmContext();
if (drm.isPreemptionSupported() &&
engineType.type == gpgpuEngineInstances[EngineInstanceConstants::lowPriorityGpgpuEngineIndex].type &&
engineType.id == gpgpuEngineInstances[EngineInstanceConstants::lowPriorityGpgpuEngineIndex].id) {
drm.setLowPriorityContextParam(this->drmContextId);
}
}
OsContextLinux::~OsContextImpl() {
drm.destroyDrmContext(drmContextId);
}
} // namespace OCLRT