Pass LogicalStateHelper to SBA helper

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2022-07-01 11:43:41 +00:00
committed by Compute-Runtime-Automation
parent de1c0b968a
commit 76d905b1f2
11 changed files with 37 additions and 18 deletions

View File

@ -68,7 +68,8 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
false,
NEO::MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
*sbaCmdBuf = sbaCmd;
csr->setGSBAStateDirty(false);

View File

@ -51,7 +51,8 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
multiOsContextCapable,
NEO::MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
*sbaCmdBuf = sbaCmd;
auto &hwInfoConfig = *NEO::HwInfoConfig::get(hwInfo.platform.eProductFamily);

View File

@ -1229,7 +1229,8 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenCsrWhenGen
false,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_NE(generalStateBaseAddress, sbaCmd.getGeneralStateBaseAddress());
EXPECT_EQ(gmmHelper->decanonize(generalStateBaseAddress), sbaCmd.getGeneralStateBaseAddress());
@ -1255,7 +1256,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroGeneralStateBaseAddres
false,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_EQ(0ull, sbaCmd.getGeneralStateBaseAddress());
EXPECT_EQ(0u, sbaCmd.getGeneralStateBufferSize());
@ -1283,7 +1285,8 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroInternalHeapBaseAddres
false,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_FALSE(sbaCmd.getInstructionBaseAddressModifyEnable());
EXPECT_EQ(0ull, sbaCmd.getInstructionBaseAddress());
@ -1316,7 +1319,8 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenSbaProgram
false,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_FALSE(sbaCmd.getDynamicStateBaseAddressModifyEnable());
EXPECT_FALSE(sbaCmd.getDynamicStateBufferSizeModifyEnable());

View File

@ -341,7 +341,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, gi
false,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_FALSE(sbaCmd.getDynamicStateBaseAddressModifyEnable());
EXPECT_FALSE(sbaCmd.getDynamicStateBufferSizeModifyEnable());

View File

@ -384,7 +384,8 @@ void EncodeStateBaseAddress<Family>::encode(CommandContainer &container, STATE_B
false,
MemoryCompressionState::NotApplicable,
useGlobalAtomics,
1u);
1u,
nullptr);
auto pCmd = reinterpret_cast<STATE_BASE_ADDRESS *>(container.getCommandStream()->getSpace(sizeof(STATE_BASE_ADDRESS)));
*pCmd = sbaCmd;

View File

@ -490,7 +490,8 @@ void EncodeStateBaseAddress<Family>::encode(CommandContainer &container, STATE_B
multiOsContextCapable,
MemoryCompressionState::NotApplicable,
useGlobalAtomics,
1u);
1u,
nullptr);
auto pCmd = reinterpret_cast<STATE_BASE_ADDRESS *>(container.getCommandStream()->getSpace(sizeof(STATE_BASE_ADDRESS)));
*pCmd = sbaCmd;

View File

@ -421,7 +421,8 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
isMultiOsContextCapable(),
memoryCompressionState,
dispatchFlags.useGlobalAtomics,
dispatchFlags.areMultipleSubDevicesInContext);
dispatchFlags.areMultipleSubDevicesInContext,
logicalStateHelper.get());
if (pCmd) {
*pCmd = cmd;

View File

@ -29,7 +29,8 @@ void StateBaseAddressHelper<BDWFamily>::programStateBaseAddress(
bool isMultiOsContextCapable,
MemoryCompressionState memoryCompressionState,
bool useGlobalAtomics,
bool areMultipleSubDevicesInContext) {
bool areMultipleSubDevicesInContext,
LogicalStateHelper *logicalStateHelper) {
*stateBaseAddress = BDWFamily::cmdInitStateBaseAddress;

View File

@ -15,6 +15,7 @@ enum class MemoryCompressionState;
class GmmHelper;
class IndirectHeap;
class LinearStream;
class LogicalStateHelper;
struct DispatchFlags;
struct HardwareInfo;
@ -41,7 +42,8 @@ struct StateBaseAddressHelper {
bool isMultiOsContextCapable,
MemoryCompressionState memoryCompressionState,
bool useGlobalAtomics,
bool areMultipleSubDevicesInContext);
bool areMultipleSubDevicesInContext,
LogicalStateHelper *logicalStateHelper);
static void appendIohParameters(STATE_BASE_ADDRESS *stateBaseAddress, const IndirectHeap *ioh, bool useGlobalHeapsBaseAddress, uint64_t indirectObjectHeapBaseAddress);

View File

@ -35,7 +35,8 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
bool isMultiOsContextCapable,
MemoryCompressionState memoryCompressionState,
bool useGlobalAtomics,
bool areMultipleSubDevicesInContext) {
bool areMultipleSubDevicesInContext,
LogicalStateHelper *logicalStateHelper) {
*stateBaseAddress = GfxFamily::cmdInitStateBaseAddress;
bool overrideBindlessSurfaceStateBase = true;

View File

@ -68,7 +68,8 @@ HWTEST2_F(SBATest, WhenProgramStateBaseAddressParametersIsCalledThenSBACmdHasBin
true,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_EQ(ssh.getMaxAvailableSpace() / 64 - 1, cmd->getBindlessSurfaceStateSize());
EXPECT_EQ(ssh.getHeapGpuBase(), cmd->getBindlessSurfaceStateBaseAddress());
@ -105,7 +106,8 @@ HWTEST2_F(SbaForBindlessTests, givenGlobalBindlessBaseAddressWhenProgramStateBas
true,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_TRUE(cmd->getBindlessSurfaceStateBaseAddressModifyEnable());
EXPECT_EQ(cmd->getBindlessSurfaceStateBaseAddress(), globalBindlessHeapsBaseAddress);
@ -144,7 +146,8 @@ HWTEST2_F(SbaForBindlessTests, givenGlobalBindlessBaseAddressWhenPassingIndirect
true,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_EQ(cmd->getIndirectObjectBaseAddress(), indirectObjectBaseAddress);
}
@ -202,7 +205,8 @@ HWTEST2_F(SBATest, givenGlobalBindlessBaseAddressWhenSshIsPassedThenBindlessSurf
true,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_EQ(cmd->getBindlessSurfaceStateBaseAddress(), globalBindlessHeapsBaseAddress);
}
HWTEST2_F(SBATest, givenSurfaceStateHeapWhenNotUsingGlobalHeapBaseThenBindlessSurfaceBaseIsSshBase, IsAtLeastSkl) {
@ -233,7 +237,8 @@ HWTEST2_F(SBATest, givenSurfaceStateHeapWhenNotUsingGlobalHeapBaseThenBindlessSu
true,
MemoryCompressionState::NotApplicable,
false,
1u);
1u,
nullptr);
EXPECT_EQ(ssh.getHeapGpuBase(), cmd->getBindlessSurfaceStateBaseAddress());
}