feature: control bindless compilation mode based on release

- check releaseHelper support when selecting bindless mode, if not
disabled, prefer bindless mode in L0 API
- bindless mode can be forced with DebugVariable: UseBindlessMode

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2023-10-18 18:37:50 +00:00
committed by Compute-Runtime-Automation
parent 096e424428
commit 5a4fa180d6
18 changed files with 51 additions and 22 deletions

View File

@@ -1467,6 +1467,7 @@ HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
struct CommandListPrivateHeapsBindlessSshFixture : public CommandListPrivateHeapsFixture {
void setUp() {
DebugManager.flags.UseExternalAllocatorForSshAndDsh.set(true);
DebugManager.flags.UseBindlessMode.set(true);
CommandListPrivateHeapsFixture::setUp();
}

View File

@@ -75,7 +75,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandListAppendLaunchKernel, givenFunctionWhenBind
auto cmd = genCmdCast<MEDIA_INTERFACE_DESCRIPTOR_LOAD *>(*itorMIDL);
ASSERT_NE(cmd, nullptr);
auto dsh = NEO::ApiSpecificConfig::getBindlessMode() ? device->getNEODevice()->getBindlessHeapsHelper()->getHeap(BindlessHeapsHelper::GLOBAL_DSH) : commandList->getCmdContainer().getIndirectHeap(NEO::HeapType::DYNAMIC_STATE);
auto dsh = commandList->getCmdContainer().getIndirectHeap(NEO::HeapType::DYNAMIC_STATE);
auto idd = static_cast<INTERFACE_DESCRIPTOR_DATA *>(ptrOffset(dsh->getCpuBase(), cmd->getInterfaceDescriptorDataStartAddress()));
if (NEO::EncodeSurfaceState<FamilyType>::doBindingTablePrefetch()) {