feature: global bindless surface state base support

- program global bindless ssba when external allocator used (
UseExternalAllocatorForSshAndDsh)

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2023-06-26 17:49:16 +00:00
committed by Compute-Runtime-Automation
parent 11c96559a9
commit 4aba0f0340
21 changed files with 572 additions and 108 deletions

View File

@@ -1816,6 +1816,11 @@ inline void CommandStreamReceiverHw<GfxFamily>::programStateBaseAddressCommon(
auto stateBaseAddressCmdOffset = csrCommandStream.getUsed();
auto instructionHeapBaseAddress = getMemoryManager()->getInternalHeapBaseAddress(rootDeviceIndex, getMemoryManager()->isLocalMemoryUsedForIsa(rootDeviceIndex));
auto bindlessSurfStateBase = 0ull;
if (device.getBindlessHeapsHelper()) {
bindlessSurfStateBase = device.getBindlessHeapsHelper()->getGlobalHeapsBase();
}
STATE_BASE_ADDRESS stateBaseAddressCmd;
StateBaseAddressHelperArgs<GfxFamily> args = {
@@ -1824,6 +1829,7 @@ inline void CommandStreamReceiverHw<GfxFamily>::programStateBaseAddressCommon(
instructionHeapBaseAddress, // instructionHeapBaseAddress
0, // globalHeapsBaseAddress
0, // surfaceStateBaseAddress
bindlessSurfStateBase, // bindlessSurfaceStateBaseAddress
&stateBaseAddressCmd, // stateBaseAddressCmd
sbaProperties, // sbaProperties
dsh, // dsh