diff --git a/level_zero/core/source/cmdqueue/cmdqueue_hw_base.inl b/level_zero/core/source/cmdqueue/cmdqueue_hw_base.inl index d1342ba0a6..24e8d7836d 100644 --- a/level_zero/core/source/cmdqueue/cmdqueue_hw_base.inl +++ b/level_zero/core/source/cmdqueue/cmdqueue_hw_base.inl @@ -68,7 +68,8 @@ void CommandQueueHw::programStateBaseAddress(uint64_t gsba, bool false, NEO::MemoryCompressionState::NotApplicable, false, - 1u); + 1u, + nullptr); *sbaCmdBuf = sbaCmd; csr->setGSBAStateDirty(false); diff --git a/level_zero/core/source/cmdqueue/cmdqueue_xe_hp_core_and_later.inl b/level_zero/core/source/cmdqueue/cmdqueue_xe_hp_core_and_later.inl index fa1c8fa807..61260fe29f 100644 --- a/level_zero/core/source/cmdqueue/cmdqueue_xe_hp_core_and_later.inl +++ b/level_zero/core/source/cmdqueue/cmdqueue_xe_hp_core_and_later.inl @@ -51,7 +51,8 @@ void CommandQueueHw::programStateBaseAddress(uint64_t gsba, bool multiOsContextCapable, NEO::MemoryCompressionState::NotApplicable, false, - 1u); + 1u, + nullptr); *sbaCmdBuf = sbaCmd; auto &hwInfoConfig = *NEO::HwInfoConfig::get(hwInfo.platform.eProductFamily); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp index c1ff8702ea..e436831240 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp @@ -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()); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp index 30587cae7c..543259352a 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp @@ -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()); diff --git a/shared/source/command_container/command_encoder_bdw_and_later.inl b/shared/source/command_container/command_encoder_bdw_and_later.inl index 38014e3ab0..99066170b1 100644 --- a/shared/source/command_container/command_encoder_bdw_and_later.inl +++ b/shared/source/command_container/command_encoder_bdw_and_later.inl @@ -384,7 +384,8 @@ void EncodeStateBaseAddress::encode(CommandContainer &container, STATE_B false, MemoryCompressionState::NotApplicable, useGlobalAtomics, - 1u); + 1u, + nullptr); auto pCmd = reinterpret_cast(container.getCommandStream()->getSpace(sizeof(STATE_BASE_ADDRESS))); *pCmd = sbaCmd; diff --git a/shared/source/command_container/command_encoder_xehp_and_later.inl b/shared/source/command_container/command_encoder_xehp_and_later.inl index d5f9a3d62e..d9d7f72edb 100644 --- a/shared/source/command_container/command_encoder_xehp_and_later.inl +++ b/shared/source/command_container/command_encoder_xehp_and_later.inl @@ -490,7 +490,8 @@ void EncodeStateBaseAddress::encode(CommandContainer &container, STATE_B multiOsContextCapable, MemoryCompressionState::NotApplicable, useGlobalAtomics, - 1u); + 1u, + nullptr); auto pCmd = reinterpret_cast(container.getCommandStream()->getSpace(sizeof(STATE_BASE_ADDRESS))); *pCmd = sbaCmd; diff --git a/shared/source/command_stream/command_stream_receiver_hw_base.inl b/shared/source/command_stream/command_stream_receiver_hw_base.inl index 9407d4b121..f35ebdd398 100644 --- a/shared/source/command_stream/command_stream_receiver_hw_base.inl +++ b/shared/source/command_stream/command_stream_receiver_hw_base.inl @@ -421,7 +421,8 @@ CompletionStamp CommandStreamReceiverHw::flushTask( isMultiOsContextCapable(), memoryCompressionState, dispatchFlags.useGlobalAtomics, - dispatchFlags.areMultipleSubDevicesInContext); + dispatchFlags.areMultipleSubDevicesInContext, + logicalStateHelper.get()); if (pCmd) { *pCmd = cmd; diff --git a/shared/source/gen8/state_base_address_gen8.cpp b/shared/source/gen8/state_base_address_gen8.cpp index 2f4af702d2..328d26a245 100644 --- a/shared/source/gen8/state_base_address_gen8.cpp +++ b/shared/source/gen8/state_base_address_gen8.cpp @@ -29,7 +29,8 @@ void StateBaseAddressHelper::programStateBaseAddress( bool isMultiOsContextCapable, MemoryCompressionState memoryCompressionState, bool useGlobalAtomics, - bool areMultipleSubDevicesInContext) { + bool areMultipleSubDevicesInContext, + LogicalStateHelper *logicalStateHelper) { *stateBaseAddress = BDWFamily::cmdInitStateBaseAddress; diff --git a/shared/source/helpers/state_base_address.h b/shared/source/helpers/state_base_address.h index 424a4a4d99..f67e6391ae 100644 --- a/shared/source/helpers/state_base_address.h +++ b/shared/source/helpers/state_base_address.h @@ -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); diff --git a/shared/source/helpers/state_base_address_base.inl b/shared/source/helpers/state_base_address_base.inl index 3d325a098d..7370345d37 100644 --- a/shared/source/helpers/state_base_address_base.inl +++ b/shared/source/helpers/state_base_address_base.inl @@ -35,7 +35,8 @@ void StateBaseAddressHelper::programStateBaseAddress( bool isMultiOsContextCapable, MemoryCompressionState memoryCompressionState, bool useGlobalAtomics, - bool areMultipleSubDevicesInContext) { + bool areMultipleSubDevicesInContext, + LogicalStateHelper *logicalStateHelper) { *stateBaseAddress = GfxFamily::cmdInitStateBaseAddress; bool overrideBindlessSurfaceStateBase = true; diff --git a/shared/test/common/helpers/state_base_address_tests.cpp b/shared/test/common/helpers/state_base_address_tests.cpp index 1ad75ec931..6a96f87abf 100644 --- a/shared/test/common/helpers/state_base_address_tests.cpp +++ b/shared/test/common/helpers/state_base_address_tests.cpp @@ -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()); }