mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-23 11:03:02 +08:00
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:
@@ -137,24 +137,27 @@ void Drm::checkPreemptionSupport() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void Drm::createLowPriorityContext() {
|
||||
drm_i915_gem_context_create gcc = {};
|
||||
auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &gcc);
|
||||
UNRECOVERABLE_IF(retVal != 0);
|
||||
lowPriorityContextId = gcc.ctx_id;
|
||||
|
||||
void Drm::setLowPriorityContextParam(uint32_t drmContextId) {
|
||||
drm_i915_gem_context_param gcp = {};
|
||||
gcp.ctx_id = lowPriorityContextId;
|
||||
gcp.ctx_id = drmContextId;
|
||||
gcp.param = I915_CONTEXT_PARAM_PRIORITY;
|
||||
gcp.value = -1023;
|
||||
|
||||
retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, &gcp);
|
||||
auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, &gcp);
|
||||
UNRECOVERABLE_IF(retVal != 0);
|
||||
}
|
||||
|
||||
void Drm::destroyLowPriorityContext() {
|
||||
uint32_t Drm::createDrmContext() {
|
||||
drm_i915_gem_context_create gcc = {};
|
||||
auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &gcc);
|
||||
UNRECOVERABLE_IF(retVal != 0);
|
||||
|
||||
return gcc.ctx_id;
|
||||
}
|
||||
|
||||
void Drm::destroyDrmContext(uint32_t drmContextId) {
|
||||
drm_i915_gem_context_destroy destroy = {};
|
||||
destroy.ctx_id = lowPriorityContextId;
|
||||
destroy.ctx_id = drmContextId;
|
||||
auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, &destroy);
|
||||
UNRECOVERABLE_IF(retVal != 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user