refactor: allow default setting for UseExternalAllocatorForSshAndDsh

- value of -1 selects driver default setting for external allocator

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2024-03-19 17:00:21 +00:00
committed by Compute-Runtime-Automation
parent 40471da591
commit 27b930cabc
5 changed files with 11 additions and 5 deletions

View File

@@ -22,7 +22,10 @@ bool ApiSpecificConfig::isStatelessCompressionSupported() {
}
bool ApiSpecificConfig::getGlobalBindlessHeapConfiguration() {
return debugManager.flags.UseExternalAllocatorForSshAndDsh.get();
if (debugManager.flags.UseExternalAllocatorForSshAndDsh.get() != -1) {
return debugManager.flags.UseExternalAllocatorForSshAndDsh.get();
}
return false;
}
bool ApiSpecificConfig::getBindlessMode(const ReleaseHelper *releaseHelper) {

View File

@@ -59,7 +59,6 @@ DECLARE_DEBUG_VARIABLE(bool, ForceImplicitFlush, false, "Flush after each enqueu
DECLARE_DEBUG_VARIABLE(bool, ForcePipeControlPriorToWalker, false, "Force pipe control prior to walker")
DECLARE_DEBUG_VARIABLE(bool, ZebinAppendElws, false, "Append cross-thread data with enqueue local work size")
DECLARE_DEBUG_VARIABLE(bool, ZebinIgnoreIcbeVersion, true, "Ignore IGC\'s ICBE version")
DECLARE_DEBUG_VARIABLE(bool, UseExternalAllocatorForSshAndDsh, false, "Use 32 bit external allocator for ssh and dsh in Level Zero")
DECLARE_DEBUG_VARIABLE(bool, UseBindlessDebugSip, false, "Use bindless debug system routine")
DECLARE_DEBUG_VARIABLE(bool, CleanStateInPreamble, false, "Ensures clean state in preamble")
DECLARE_DEBUG_VARIABLE(bool, EnableStatelessCompressionWithUnifiedMemory, false, "Enable stateless compression with unified memory")
@@ -473,6 +472,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, ForceFineGrainedSVMSupport, -1, "-1: default, 0:
DECLARE_DEBUG_VARIABLE(int32_t, ForcePipeSupport, -1, "-1: default, 0: disabled, 1: enabled")
DECLARE_DEBUG_VARIABLE(int32_t, UseAsyncDrmExec, -1, "-1: default, 0: Disabled 1: Enabled. If enabled, pass EXEC_OBJECT_ASYNC to exec ioctl.")
DECLARE_DEBUG_VARIABLE(int32_t, UseBindlessMode, -1, "Use precompiled builtins in bindless mode, -1: api dependent, 0: disabled, 1: enabled")
DECLARE_DEBUG_VARIABLE(int32_t, UseExternalAllocatorForSshAndDsh, -1, "Use 32 bit external allocator for ssh and dsh in Level Zero, -1: default, 0: disabled, 1: enabled")
DECLARE_DEBUG_VARIABLE(int32_t, OverrideSlmSize, -1, "Force different slm size than default in kB")
DECLARE_DEBUG_VARIABLE(int32_t, UseCyclesPerSecondTimer, 0, "0: default behavior, 0: disabled: Report L0 timer in nanosecond units, 1: enabled: Report L0 timer in cycles per second")
DECLARE_DEBUG_VARIABLE(int32_t, WaitLoopCount, -1, "-1: use default, >=0: number of iterations in wait loop")

View File

@@ -259,7 +259,7 @@ void MemoryManager::freeGraphicsMemory(GraphicsAllocation *gfxAllocation, bool i
return;
}
if (ApiSpecificConfig::getGlobalBindlessHeapConfiguration() && executionEnvironment.rootDeviceEnvironments[gfxAllocation->getRootDeviceIndex()]->getBindlessHeapsHelper() != nullptr) {
if (executionEnvironment.rootDeviceEnvironments.size() > 0 && executionEnvironment.rootDeviceEnvironments[gfxAllocation->getRootDeviceIndex()]->getBindlessHeapsHelper() != nullptr) {
executionEnvironment.rootDeviceEnvironments[gfxAllocation->getRootDeviceIndex()]->getBindlessHeapsHelper()->releaseSSToReusePool(gfxAllocation->getBindlessInfo());
}
const bool hasFragments = gfxAllocation->fragmentsStorage.fragmentCount != 0;

View File

@@ -242,7 +242,7 @@ LogWaitingForCompletion = 0
ForceUserptrAlignment = -1
ForceCommandBufferAlignment = -1
ForceDefaultHeapSize = -1
UseExternalAllocatorForSshAndDsh = 0
UseExternalAllocatorForSshAndDsh = -1
DirectSubmissionDrmContext = -1
DirectSubmissionOverrideBlitterSupport = -1
DirectSubmissionOverrideRenderSupport = -1

View File

@@ -26,7 +26,10 @@ bool ApiSpecificConfig::isStatelessCompressionSupported() {
return isStatelessCompressionSupportedForUlts;
}
bool ApiSpecificConfig::getGlobalBindlessHeapConfiguration() {
return debugManager.flags.UseExternalAllocatorForSshAndDsh.get();
if (debugManager.flags.UseExternalAllocatorForSshAndDsh.get() != -1) {
return debugManager.flags.UseExternalAllocatorForSshAndDsh.get();
}
return false;
}
bool ApiSpecificConfig::getBindlessMode(const ReleaseHelper *) {
if (debugManager.flags.UseBindlessMode.get() != -1) {