From fa69b7539df009e475fc471c5e3737f1b4a1093b Mon Sep 17 00:00:00 2001 From: Lukasz Jobczyk Date: Tue, 11 May 2021 11:12:49 +0000 Subject: [PATCH] Create special drm context when new residency model available Signed-off-by: Lukasz Jobczyk --- shared/source/debug_settings/debug_variables_base.inl | 2 +- shared/source/os_interface/linux/drm_neo.cpp | 4 ++-- shared/source/os_interface/linux/drm_neo.h | 4 ++-- shared/source/os_interface/linux/drm_query.cpp | 2 +- shared/source/os_interface/linux/drm_query_dg1.cpp | 2 +- shared/source/os_interface/linux/os_context_linux.cpp | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/shared/source/debug_settings/debug_variables_base.inl b/shared/source/debug_settings/debug_variables_base.inl index 894d2e4106..85b8b0dccf 100644 --- a/shared/source/debug_settings/debug_variables_base.inl +++ b/shared/source/debug_settings/debug_variables_base.inl @@ -163,7 +163,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionSemaphoreAddressing, -1, "-1: do DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionDisableCpuCacheFlush, -1, "-1: do not override, 0: disable, 1: enable") DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionEnableDebugBuffer, 0, "0: diagnostic feature disabled - dispatch regular workload, 1: dispatch diagnostic buffer - mode 1 - single SDI command, 2: dispatch diagnostic buffer - mode 2 - no command") DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionDiagnosticExecutionCount, 30, "Number of executions of EnableDebugBuffer modes within diagnostic run") -DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionDrmContext, -1, "Create special drm context: -1: default, on contexts where direct submission enabled, 0: disable, 1: enable") +DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionDrmContext, -1, "Create special drm context: -1: default, when new residency model available, 0: disable, 1: enable") DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionLowPriorityBlitter, -1, "Create low priority context for blitter: -1: default, when direct submission enabled on BCS, 0: disable, create normal drm context 1: enable, create low priority context for BCS") DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionOverrideBlitterSupport, -1, "Overrides default blitter support: -1: do not override, 0: disable engine support, 1: enable engine support with init start, 2: enable engine support without init start") DECLARE_DEBUG_VARIABLE(int32_t, DirectSubmissionOverrideRenderSupport, -1, "Overrides default render support: -1: do not override, 0: disable engine support, 1: enable engine support with init start, 2: enable engine support without init start") diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 2ca79be40b..8dbb2d5f2d 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -242,10 +242,10 @@ void Drm::setNonPersistentContext(uint32_t drmContextId) { ioctl(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, &contextParam); } -uint32_t Drm::createDrmContext(uint32_t drmVmId, bool isDirectSubmission) { +uint32_t Drm::createDrmContext(uint32_t drmVmId, bool isSpecialContextRequested) { drm_i915_gem_context_create_ext gcc = {}; - this->appendDrmContextFlags(gcc, isDirectSubmission); + this->appendDrmContextFlags(gcc, isSpecialContextRequested); auto retVal = ioctl(DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT, &gcc); UNRECOVERABLE_IF(retVal != 0); diff --git a/shared/source/os_interface/linux/drm_neo.h b/shared/source/os_interface/linux/drm_neo.h index c709c28687..f18e4eb93a 100644 --- a/shared/source/os_interface/linux/drm_neo.h +++ b/shared/source/os_interface/linux/drm_neo.h @@ -99,8 +99,8 @@ class Drm { ADAPTER_BDF getAdapterBDF() const; int createDrmVirtualMemory(uint32_t &drmVmId); void destroyDrmVirtualMemory(uint32_t drmVmId); - uint32_t createDrmContext(uint32_t drmVmId, bool isDirectSubmission); - void appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isDirectSubmission); + uint32_t createDrmContext(uint32_t drmVmId, bool isSpecialContextRequested); + void appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isSpecialContextRequested); void destroyDrmContext(uint32_t drmContextId); int queryVmId(uint32_t drmContextId, uint32_t &vmId); void setLowPriorityContextParam(uint32_t drmContextId); diff --git a/shared/source/os_interface/linux/drm_query.cpp b/shared/source/os_interface/linux/drm_query.cpp index eba9030f8e..20c1b9aa7c 100644 --- a/shared/source/os_interface/linux/drm_query.cpp +++ b/shared/source/os_interface/linux/drm_query.cpp @@ -71,7 +71,7 @@ bool Drm::isVmBindAvailable() { return this->bindAvailable; } -void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isDirectSubmission) { +void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isSpecialContextRequested) { } void Drm::setupCacheInfo(const HardwareInfo &hwInfo) { diff --git a/shared/source/os_interface/linux/drm_query_dg1.cpp b/shared/source/os_interface/linux/drm_query_dg1.cpp index eccbb6b2cc..22f1a90e00 100644 --- a/shared/source/os_interface/linux/drm_query_dg1.cpp +++ b/shared/source/os_interface/linux/drm_query_dg1.cpp @@ -80,7 +80,7 @@ bool Drm::isVmBindAvailable() { return this->bindAvailable; } -void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isDirectSubmission) { +void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isSpecialContextRequested) { } void Drm::setupCacheInfo(const HardwareInfo &hwInfo) { diff --git a/shared/source/os_interface/linux/os_context_linux.cpp b/shared/source/os_interface/linux/os_context_linux.cpp index c60f6d5443..22d01bb6aa 100644 --- a/shared/source/os_interface/linux/os_context_linux.cpp +++ b/shared/source/os_interface/linux/os_context_linux.cpp @@ -50,7 +50,7 @@ void OsContextLinux::initializeContext() { for (auto deviceIndex = 0u; deviceIndex < deviceBitfield.size(); deviceIndex++) { if (deviceBitfield.test(deviceIndex)) { auto drmVmId = drm.getVirtualMemoryAddressSpace(deviceIndex); - auto drmContextId = drm.createDrmContext(drmVmId, this->isDirectSubmissionActive()); + auto drmContextId = drm.createDrmContext(drmVmId, drm.isVmBindAvailable()); if (drm.areNonPersistentContextsSupported()) { drm.setNonPersistentContext(drmContextId); }