Add struct argument for input/output in StateBaseAddressHelper

This refactor makes future interface changes easier

Related-To: NEO-5019

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2022-08-11 13:36:02 +00:00
committed by Compute-Runtime-Automation
parent 9b1afe4067
commit ceb9d81f87
21 changed files with 734 additions and 567 deletions

View File

@@ -52,23 +52,27 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
auto indirectObjectHeapBaseAddress = neoDevice->getMemoryManager()->getInternalHeapBaseAddress(device->getRootDeviceIndex(), useLocalMemoryForIndirectHeap);
auto instructionHeapBaseAddress = neoDevice->getMemoryManager()->getInternalHeapBaseAddress(device->getRootDeviceIndex(), neoDevice->getMemoryManager()->isLocalMemoryUsedForIsa(neoDevice->getRootDeviceIndex()));
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(&sbaCmd,
nullptr,
nullptr,
nullptr,
gsba,
true,
(device->getMOCS(cachedMOCSAllowed, false) >> 1),
indirectObjectHeapBaseAddress,
instructionHeapBaseAddress,
globalHeapsBase,
true,
useGlobalSshAndDsh,
neoDevice->getGmmHelper(),
false,
NEO::MemoryCompressionState::NotApplicable,
false,
1u);
NEO::StateBaseAddressHelperArgs<GfxFamily> args = {
gsba, // generalStateBase
indirectObjectHeapBaseAddress, // indirectObjectHeapBaseAddress
instructionHeapBaseAddress, // instructionHeapBaseAddress
globalHeapsBase, // globalHeapsBaseAddress
&sbaCmd, // stateBaseAddressCmd
nullptr, // dsh
nullptr, // ioh
nullptr, // ssh
neoDevice->getGmmHelper(), // gmmHelper
(device->getMOCS(cachedMOCSAllowed, false) >> 1), // statelessMocsIndex
NEO::MemoryCompressionState::NotApplicable, // memoryCompressionState
true, // setInstructionStateBaseAddress
true, // setGeneralStateBaseAddress
useGlobalSshAndDsh, // useGlobalHeapsBaseAddress
false, // isMultiOsContextCapable
false, // useGlobalAtomics
false // areMultipleSubDevicesInContext
};
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(args);
*sbaCmdBuf = sbaCmd;
csr->setGSBAStateDirty(false);

View File

@@ -43,23 +43,27 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
auto sbaCmdBuf = static_cast<STATE_BASE_ADDRESS *>(NEO::StateBaseAddressHelper<GfxFamily>::getSpaceForSbaCmd(commandStream));
STATE_BASE_ADDRESS sbaCmd;
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(&sbaCmd,
nullptr,
nullptr,
nullptr,
0,
true,
(device->getMOCS(cachedMOCSAllowed, false) >> 1),
indirectObjectStateBaseAddress,
instructionStateBaseAddress,
globalHeapsBase,
true,
true,
neoDevice->getGmmHelper(),
multiOsContextCapable,
NEO::MemoryCompressionState::NotApplicable,
false,
1u);
NEO::StateBaseAddressHelperArgs<GfxFamily> args = {
0, // generalStateBase
indirectObjectStateBaseAddress, // indirectObjectHeapBaseAddress
instructionStateBaseAddress, // instructionHeapBaseAddress
globalHeapsBase, // globalHeapsBaseAddress
&sbaCmd, // stateBaseAddressCmd
nullptr, // dsh
nullptr, // ioh
nullptr, // ssh
neoDevice->getGmmHelper(), // gmmHelper
(device->getMOCS(cachedMOCSAllowed, false) >> 1), // statelessMocsIndex
NEO::MemoryCompressionState::NotApplicable, // memoryCompressionState
true, // setInstructionStateBaseAddress
true, // setGeneralStateBaseAddress
true, // useGlobalHeapsBaseAddress
multiOsContextCapable, // isMultiOsContextCapable
false, // useGlobalAtomics
false // areMultipleSubDevicesInContext
};
NEO::StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(args);
*sbaCmdBuf = sbaCmd;
auto &hwInfoConfig = *NEO::HwInfoConfig::get(hwInfo.platform.eProductFamily);