Set global heap size to constant value
Related-To: NEO-5055 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
parent
d7aba6747c
commit
0950f5a23e
|
@ -529,6 +529,7 @@ void EncodeStateBaseAddress<Family>::encode(EncodeStateBaseAddressArgs<Family> &
|
|||
auto ioh = args.container->isHeapDirty(HeapType::INDIRECT_OBJECT) ? args.container->getIndirectHeap(HeapType::INDIRECT_OBJECT) : nullptr;
|
||||
auto ssh = args.container->isHeapDirty(HeapType::SURFACE_STATE) ? args.container->getIndirectHeap(HeapType::SURFACE_STATE) : nullptr;
|
||||
auto isDebuggerActive = device.isDebuggerActive() || device.getDebugger() != nullptr;
|
||||
bool setGeneralStateBaseAddress = args.sbaProperties ? false : true;
|
||||
|
||||
StateBaseAddressHelperArgs<Family> stateBaseAddressHelperArgs = {
|
||||
0, // generalStateBaseAddress
|
||||
|
@ -547,7 +548,7 @@ void EncodeStateBaseAddress<Family>::encode(EncodeStateBaseAddressArgs<Family> &
|
|||
args.l1CachePolicyDebuggerActive, // l1CachePolicyDebuggerActive
|
||||
NEO::MemoryCompressionState::NotApplicable, // memoryCompressionState
|
||||
true, // setInstructionStateBaseAddress
|
||||
true, // setGeneralStateBaseAddress
|
||||
setGeneralStateBaseAddress, // setGeneralStateBaseAddress
|
||||
false, // useGlobalHeapsBaseAddress
|
||||
args.multiOsContextCapable, // isMultiOsContextCapable
|
||||
args.useGlobalAtomics, // useGlobalAtomics
|
||||
|
|
|
@ -36,7 +36,7 @@ void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
|
|||
args.stateBaseAddressCmd->setGeneralStateBaseAddress(args.gmmHelper->decanonize(baseAddress));
|
||||
args.stateBaseAddressCmd->setGeneralStateBaseAddressModifyEnable(true);
|
||||
args.stateBaseAddressCmd->setGeneralStateBufferSizeModifyEnable(true);
|
||||
args.stateBaseAddressCmd->setGeneralStateBufferSize(static_cast<uint32_t>(args.sbaProperties->indirectObjectSize.value));
|
||||
args.stateBaseAddressCmd->setGeneralStateBufferSize(0xfffff);
|
||||
}
|
||||
if (args.sbaProperties->surfaceStateBaseAddress.value != StreamProperty64::initValue) {
|
||||
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
|
||||
|
|
|
@ -535,3 +535,29 @@ HWTEST2_F(CommandEncodeStatesTest, givenSbaPropertiesWhenBindingBaseAddressSetTh
|
|||
EXPECT_EQ(bindingTablePoolBaseAddress, bindTablePoolCmd->getBindingTablePoolBaseAddress());
|
||||
EXPECT_EQ(bindingTablePoolSize, bindTablePoolCmd->getBindingTablePoolBufferSize());
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandEncodeStatesTest, givenSbaPropertiesWhenGeneralBaseAddressSetThenExpectAddressFromPropertiesUsedNotFromContainer, IsAtLeastXeHpCore) {
|
||||
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
|
||||
|
||||
auto indirectHeapBaseAddress = cmdContainer->getIndirectObjectHeapBaseAddress();
|
||||
auto indirectHeapBaseAddressProperties = indirectHeapBaseAddress + 0x10000;
|
||||
|
||||
StateBaseAddressProperties sbaProperties;
|
||||
sbaProperties.setPropertiesIndirectState(indirectHeapBaseAddressProperties, MemoryConstants::kiloByte);
|
||||
|
||||
STATE_BASE_ADDRESS sba;
|
||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, 4);
|
||||
args.sbaProperties = &sbaProperties;
|
||||
|
||||
EncodeStateBaseAddress<FamilyType>::encode(args);
|
||||
|
||||
GenCmdList commands;
|
||||
CmdParse<FamilyType>::parseCommandBuffer(commands,
|
||||
cmdContainer->getCommandStream()->getCpuBase(),
|
||||
cmdContainer->getCommandStream()->getUsed());
|
||||
auto itorSbaCmd = find<STATE_BASE_ADDRESS *>(commands.begin(), commands.end());
|
||||
ASSERT_NE(commands.end(), itorSbaCmd);
|
||||
|
||||
auto sbaCmd = reinterpret_cast<STATE_BASE_ADDRESS *>(*itorSbaCmd);
|
||||
EXPECT_EQ(indirectHeapBaseAddressProperties, sbaCmd->getGeneralStateBaseAddress());
|
||||
}
|
||||
|
|
|
@ -638,6 +638,7 @@ HWTEST2_F(SbaTest, givenStateBaseAddressPropertiesWhenSettingIndirectStateAndGlo
|
|||
|
||||
constexpr uint64_t indirectHeapBase = 0x10000;
|
||||
constexpr uint32_t indirectHeapSize = 0x10;
|
||||
constexpr uint32_t constGlobalHeapSize = 0xfffff;
|
||||
|
||||
auto gmmHelper = pDevice->getGmmHelper();
|
||||
StateBaseAddressProperties sbaProperties;
|
||||
|
@ -665,7 +666,7 @@ HWTEST2_F(SbaTest, givenStateBaseAddressPropertiesWhenSettingIndirectStateAndGlo
|
|||
EXPECT_TRUE(sbaCmd.getGeneralStateBaseAddressModifyEnable());
|
||||
EXPECT_TRUE(sbaCmd.getGeneralStateBufferSizeModifyEnable());
|
||||
EXPECT_EQ(indirectHeapBase, sbaCmd.getGeneralStateBaseAddress());
|
||||
EXPECT_EQ(indirectHeapSize, sbaCmd.getGeneralStateBufferSize());
|
||||
EXPECT_EQ(constGlobalHeapSize, sbaCmd.getGeneralStateBufferSize());
|
||||
|
||||
EXPECT_FALSE(sbaCmd.getDisableSupportForMultiGpuAtomicsForStatelessAccesses());
|
||||
|
||||
|
|
Loading…
Reference in New Issue