Add state base address transition for global stateless heap command lists

Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2023-03-07 13:42:52 +00:00
committed by Compute-Runtime-Automation
parent 86e739e9dc
commit f003666ad7
16 changed files with 1379 additions and 66 deletions

View File

@@ -2448,27 +2448,30 @@ void CommandListCoreFamily<gfxCoreFamily>::updateStreamPropertiesForRegularComma
int32_t currentMocsState = static_cast<int32_t>(device->getMOCS(!kernelImp.getKernelRequiresUncachedMocs(), false) >> 1);
bool checkSsh = false;
if (currentSurfaceStateBaseAddress == NEO::StreamProperty64::initValue || commandContainer.isHeapDirty(NEO::IndirectHeap::Type::SURFACE_STATE)) {
auto ssh = commandContainer.getIndirectHeap(NEO::IndirectHeap::Type::SURFACE_STATE);
currentSurfaceStateBaseAddress = ssh->getHeapGpuBase();
currentSurfaceStateSize = ssh->getHeapSizeInPages();
currentBindingTablePoolBaseAddress = currentSurfaceStateBaseAddress;
currentBindingTablePoolSize = currentSurfaceStateSize;
checkSsh = true;
}
bool checkDsh = false;
if (this->dynamicHeapRequired && (currentDynamicStateBaseAddress == NEO::StreamProperty64::initValue || commandContainer.isHeapDirty(NEO::IndirectHeap::Type::DYNAMIC_STATE))) {
auto dsh = commandContainer.getIndirectHeap(NEO::IndirectHeap::Type::DYNAMIC_STATE);
currentDynamicStateBaseAddress = dsh->getHeapGpuBase();
currentDynamicStateSize = dsh->getHeapSizeInPages();
bool checkIoh = false;
checkDsh = true;
if (this->cmdListHeapAddressModel == NEO::HeapAddressModel::PrivateHeaps) {
if (currentSurfaceStateBaseAddress == NEO::StreamProperty64::initValue || commandContainer.isHeapDirty(NEO::IndirectHeap::Type::SURFACE_STATE)) {
auto ssh = commandContainer.getIndirectHeap(NEO::IndirectHeap::Type::SURFACE_STATE);
currentSurfaceStateBaseAddress = ssh->getHeapGpuBase();
currentSurfaceStateSize = ssh->getHeapSizeInPages();
currentBindingTablePoolBaseAddress = currentSurfaceStateBaseAddress;
currentBindingTablePoolSize = currentSurfaceStateSize;
checkSsh = true;
}
if (this->dynamicHeapRequired && (currentDynamicStateBaseAddress == NEO::StreamProperty64::initValue || commandContainer.isHeapDirty(NEO::IndirectHeap::Type::DYNAMIC_STATE))) {
auto dsh = commandContainer.getIndirectHeap(NEO::IndirectHeap::Type::DYNAMIC_STATE);
currentDynamicStateBaseAddress = dsh->getHeapGpuBase();
currentDynamicStateSize = dsh->getHeapSizeInPages();
checkDsh = true;
}
}
bool checkIoh = false;
if (currentIndirectObjectBaseAddress == NEO::StreamProperty64::initValue) {
auto ioh = commandContainer.getIndirectHeap(NEO::IndirectHeap::Type::INDIRECT_OBJECT);
currentIndirectObjectBaseAddress = ioh->getHeapGpuBase();
@@ -2484,8 +2487,11 @@ void CommandListCoreFamily<gfxCoreFamily>::updateStreamPropertiesForRegularComma
requiredStreamState.pipelineSelect.setPropertySystolicMode(kernelAttributes.flags.usesSystolicPipelineSelectMode, rootDeviceEnvironment);
requiredStreamState.stateBaseAddress.setPropertyStatelessMocs(currentMocsState);
requiredStreamState.stateBaseAddress.setPropertiesSurfaceState(currentBindingTablePoolBaseAddress, currentBindingTablePoolSize,
currentSurfaceStateBaseAddress, currentSurfaceStateSize, rootDeviceEnvironment);
if (checkSsh) {
requiredStreamState.stateBaseAddress.setPropertiesSurfaceState(currentBindingTablePoolBaseAddress, currentBindingTablePoolSize,
currentSurfaceStateBaseAddress, currentSurfaceStateSize, rootDeviceEnvironment);
}
if (checkDsh) {
requiredStreamState.stateBaseAddress.setPropertiesDynamicState(currentDynamicStateBaseAddress, currentDynamicStateSize);
}

View File

@@ -143,7 +143,9 @@ NEO::CompletionStamp CommandListCoreFamilyImmediate<gfxCoreFamily>::flushRegular
NEO::IndirectHeap *ssh = nullptr;
if (!NEO::ApiSpecificConfig::getBindlessConfiguration()) {
if (this->immediateCmdListHeapSharing) {
if (this->cmdListHeapAddressModel == NEO::HeapAddressModel::GlobalStateless) {
ssh = this->csr->getGlobalStatelessHeap();
} else if (this->immediateCmdListHeapSharing) {
auto &sshReserveConfig = this->commandContainer.getSurfaceStateHeapReserve();
if (sshReserveConfig.indirectHeapReservation->getGraphicsAllocation()) {
ssh = sshReserveConfig.indirectHeapReservation;

View File

@@ -141,7 +141,8 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
NEO::IndirectHeap *ssh = nullptr;
NEO::IndirectHeap *dsh = nullptr;
if (this->immediateCmdListHeapSharing || this->stateBaseAddressTracking) {
if ((this->immediateCmdListHeapSharing || this->stateBaseAddressTracking) &&
(this->cmdListHeapAddressModel == NEO::HeapAddressModel::PrivateHeaps)) {
auto kernelInfo = kernelImmutableData->getKernelInfo();
auto &sshReserveConfig = commandContainer.getSurfaceStateHeapReserve();

View File

@@ -189,17 +189,39 @@ struct CommandQueueHw : public CommandQueueImp {
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline size_t estimateStateBaseAddressCmdDispatchSize();
inline size_t estimateStateBaseAddressCmdDispatchSize(bool bindingTableBaseAddress);
inline size_t estimateStateBaseAddressCmdSizeForMultipleCommandLists(bool &baseAddressStateDirty,
CommandList *commandList,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline size_t estimateStateBaseAddressCmdSizeForGlobalStatelessCommandList(bool &baseAddressStateDirty,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline size_t estimateStateBaseAddressCmdSizeForPrivateHeapCommandList(bool &baseAddressStateDirty,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline void programRequiredStateBaseAddressForCommandList(CommandListExecutionContext &ctx,
NEO::LinearStream &commandStream,
CommandList *commandList,
NEO::StreamProperties &csrState,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline void programRequiredStateBaseAddressForGlobalStatelessCommandList(CommandListExecutionContext &ctx,
NEO::LinearStream &commandStream,
CommandList *commandList,
NEO::StreamProperties &csrState,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline void programRequiredStateBaseAddressForPrivateHeapCommandList(CommandListExecutionContext &ctx,
NEO::LinearStream &commandStream,
CommandList *commandList,
NEO::StreamProperties &csrState,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal);
inline void updateBaseAddressState(CommandList *lastCommandList);
size_t alignedChildStreamPadding{};

View File

@@ -20,6 +20,7 @@
#include "shared/source/execution_environment/root_device_environment.h"
#include "shared/source/helpers/definitions/mi_flush_args.h"
#include "shared/source/helpers/gfx_core_helper.h"
#include "shared/source/helpers/heap_base_address_model.h"
#include "shared/source/helpers/logical_state_helper.h"
#include "shared/source/helpers/pause_on_gpu_properties.h"
#include "shared/source/helpers/pipe_control_args.h"
@@ -662,7 +663,7 @@ size_t CommandQueueHw<gfxCoreFamily>::estimateLinearStreamSizeComplementary(
streamPropertiesCopy, requiredStreamState, finalStreamState);
linearStreamSizeEstimate += estimatePipelineSelectCmdSizeForMultipleCommandLists(streamPropertiesCopy, requiredStreamState, finalStreamState, gpgpuEnabledCopy);
linearStreamSizeEstimate += estimateScmCmdSizeForMultipleCommandLists(streamPropertiesCopy, requiredStreamState, finalStreamState);
linearStreamSizeEstimate += estimateStateBaseAddressCmdSizeForMultipleCommandLists(baseAdresStateDirtyCopy, streamPropertiesCopy, requiredStreamState, finalStreamState);
linearStreamSizeEstimate += estimateStateBaseAddressCmdSizeForMultipleCommandLists(baseAdresStateDirtyCopy, cmdList, streamPropertiesCopy, requiredStreamState, finalStreamState);
}
}
@@ -1237,6 +1238,49 @@ void CommandQueueHw<gfxCoreFamily>::programRequiredStateBaseAddressForCommandLis
if (!this->stateBaseAddressTracking) {
return;
}
auto heapModel = commandList->getCmdListHeapAddressModel();
if (heapModel == NEO::HeapAddressModel::GlobalStateless) {
programRequiredStateBaseAddressForGlobalStatelessCommandList(ctx, commandStream, commandList, csrState, cmdListRequired, cmdListFinal);
} else {
programRequiredStateBaseAddressForPrivateHeapCommandList(ctx, commandStream, commandList, csrState, cmdListRequired, cmdListFinal);
}
}
template <GFXCORE_FAMILY gfxCoreFamily>
void CommandQueueHw<gfxCoreFamily>::programRequiredStateBaseAddressForGlobalStatelessCommandList(CommandListExecutionContext &ctx,
NEO::LinearStream &commandStream,
CommandList *commandList,
NEO::StreamProperties &csrState,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal) {
auto &rootDeviceEnvironment = device->getNEODevice()->getRootDeviceEnvironment();
auto globalStatelessHeap = this->csr->getGlobalStatelessHeap();
csrState.stateBaseAddress.setProperties(cmdListRequired.stateBaseAddress);
csrState.stateBaseAddress.setPropertiesSurfaceState(-1, -1, globalStatelessHeap->getHeapGpuBase(), globalStatelessHeap->getHeapSizeInPages(), rootDeviceEnvironment);
if (ctx.gsbaStateDirty || csrState.stateBaseAddress.isDirty()) {
auto indirectHeap = commandList->getCmdContainer().getIndirectHeap(NEO::HeapType::INDIRECT_OBJECT);
auto scratchSpaceController = this->csr->getScratchSpaceController();
programStateBaseAddress(scratchSpaceController->calculateNewGSH(),
indirectHeap->getGraphicsAllocation()->isAllocatedInLocalMemoryPool(),
commandStream,
ctx.cachedMOCSAllowed,
&csrState);
ctx.gsbaStateDirty = false;
}
csrState.stateBaseAddress.setProperties(cmdListFinal.stateBaseAddress);
}
template <GFXCORE_FAMILY gfxCoreFamily>
void CommandQueueHw<gfxCoreFamily>::programRequiredStateBaseAddressForPrivateHeapCommandList(CommandListExecutionContext &ctx,
NEO::LinearStream &commandStream,
CommandList *commandList,
NEO::StreamProperties &csrState,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal) {
csrState.stateBaseAddress.setProperties(cmdListRequired.stateBaseAddress);
@@ -1259,14 +1303,19 @@ template <GFXCORE_FAMILY gfxCoreFamily>
void CommandQueueHw<gfxCoreFamily>::updateBaseAddressState(CommandList *lastCommandList) {
auto csrHw = static_cast<NEO::CommandStreamReceiverHw<GfxFamily> *>(csr);
auto &commandContainer = lastCommandList->getCmdContainer();
auto dsh = commandContainer.getIndirectHeap(NEO::HeapType::DYNAMIC_STATE);
if (dsh != nullptr) {
csrHw->getDshState().updateAndCheck(dsh);
}
auto ssh = commandContainer.getIndirectHeap(NEO::HeapType::SURFACE_STATE);
if (ssh != nullptr) {
csrHw->getSshState().updateAndCheck(ssh);
if (lastCommandList->getCmdListHeapAddressModel() == NEO::HeapAddressModel::GlobalStateless) {
csrHw->getSshState().updateAndCheck(csr->getGlobalStatelessHeap());
} else {
auto dsh = commandContainer.getIndirectHeap(NEO::HeapType::DYNAMIC_STATE);
if (dsh != nullptr) {
csrHw->getDshState().updateAndCheck(dsh);
}
auto ssh = commandContainer.getIndirectHeap(NEO::HeapType::SURFACE_STATE);
if (ssh != nullptr) {
csrHw->getSshState().updateAndCheck(ssh);
}
}
auto ioh = commandContainer.getIndirectHeap(NEO::HeapType::INDIRECT_OBJECT);
@@ -1275,6 +1324,7 @@ void CommandQueueHw<gfxCoreFamily>::updateBaseAddressState(CommandList *lastComm
template <GFXCORE_FAMILY gfxCoreFamily>
size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSizeForMultipleCommandLists(bool &baseAddressStateDirty,
CommandList *commandList,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal) {
@@ -1282,7 +1332,48 @@ size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSizeForMultiple
return 0;
}
auto singleSbaDispatchSize = estimateStateBaseAddressCmdDispatchSize();
size_t estimatedSize = 0;
auto heapModel = commandList->getCmdListHeapAddressModel();
if (heapModel == NEO::HeapAddressModel::GlobalStateless) {
estimatedSize = estimateStateBaseAddressCmdSizeForGlobalStatelessCommandList(baseAddressStateDirty, csrStateCopy, cmdListRequired, cmdListFinal);
} else {
estimatedSize = estimateStateBaseAddressCmdSizeForPrivateHeapCommandList(baseAddressStateDirty, csrStateCopy, cmdListRequired, cmdListFinal);
}
return estimatedSize;
}
template <GFXCORE_FAMILY gfxCoreFamily>
size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSizeForGlobalStatelessCommandList(bool &baseAddressStateDirty,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal) {
auto &rootDeviceEnvironment = device->getNEODevice()->getRootDeviceEnvironment();
auto globalStatelessHeap = this->csr->getGlobalStatelessHeap();
size_t estimatedSize = 0;
csrStateCopy.stateBaseAddress.setProperties(cmdListRequired.stateBaseAddress);
csrStateCopy.stateBaseAddress.setPropertiesSurfaceState(-1, -1, globalStatelessHeap->getHeapGpuBase(), globalStatelessHeap->getHeapSizeInPages(), rootDeviceEnvironment);
if (baseAddressStateDirty || csrStateCopy.stateBaseAddress.isDirty()) {
bool useBtiCommand = csrStateCopy.stateBaseAddress.bindingTablePoolBaseAddress.value != NEO::StreamProperty64::initValue;
estimatedSize += estimateStateBaseAddressCmdDispatchSize(useBtiCommand);
baseAddressStateDirty = false;
}
csrStateCopy.stateBaseAddress.setProperties(cmdListFinal.stateBaseAddress);
return estimatedSize;
}
template <GFXCORE_FAMILY gfxCoreFamily>
size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSizeForPrivateHeapCommandList(bool &baseAddressStateDirty,
NEO::StreamProperties &csrStateCopy,
const NEO::StreamProperties &cmdListRequired,
const NEO::StreamProperties &cmdListFinal) {
auto singleSbaDispatchSize = estimateStateBaseAddressCmdDispatchSize(true);
size_t estimatedSize = 0;
csrStateCopy.stateBaseAddress.setProperties(cmdListRequired.stateBaseAddress);

View File

@@ -98,7 +98,7 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
}
template <GFXCORE_FAMILY gfxCoreFamily>
inline size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdDispatchSize() {
inline size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdDispatchSize(bool bindingTableBaseAddress) {
using STATE_BASE_ADDRESS = typename GfxFamily::STATE_BASE_ADDRESS;
size_t size = sizeof(STATE_BASE_ADDRESS) + NEO::MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier(false) +
@@ -113,7 +113,7 @@ inline size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdDispatch
template <GFXCORE_FAMILY gfxCoreFamily>
size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSize() {
return estimateStateBaseAddressCmdDispatchSize();
return estimateStateBaseAddressCmdDispatchSize(true);
}
template <GFXCORE_FAMILY gfxCoreFamily>

View File

@@ -118,22 +118,25 @@ void CommandQueueHw<gfxCoreFamily>::programStateBaseAddress(uint64_t gsba, bool
}
template <GFXCORE_FAMILY gfxCoreFamily>
inline size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdDispatchSize() {
inline size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdDispatchSize(bool bindingTableBaseAddress) {
using STATE_BASE_ADDRESS = typename GfxFamily::STATE_BASE_ADDRESS;
using _3DSTATE_BINDING_TABLE_POOL_ALLOC = typename GfxFamily::_3DSTATE_BINDING_TABLE_POOL_ALLOC;
size_t size = sizeof(STATE_BASE_ADDRESS) + NEO::MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier(false) + sizeof(_3DSTATE_BINDING_TABLE_POOL_ALLOC);
size_t size = sizeof(STATE_BASE_ADDRESS) + NEO::MemorySynchronizationCommands<GfxFamily>::getSizeForSingleBarrier(false);
if (this->doubleSbaWa) {
size += sizeof(STATE_BASE_ADDRESS);
}
if (bindingTableBaseAddress) {
size += sizeof(_3DSTATE_BINDING_TABLE_POOL_ALLOC);
}
return size;
}
template <GFXCORE_FAMILY gfxCoreFamily>
size_t CommandQueueHw<gfxCoreFamily>::estimateStateBaseAddressCmdSize() {
if (NEO::ApiSpecificConfig::getBindlessConfiguration()) {
return estimateStateBaseAddressCmdDispatchSize();
return estimateStateBaseAddressCmdDispatchSize(true);
}
return 0;
}

View File

@@ -150,14 +150,27 @@ void CmdListStateComputeModeStateFixture::setUp() {
}
void CommandListStateBaseAddressFixture::setUp() {
constexpr uint32_t storeAllocations = 4;
DebugManager.flags.EnableStateBaseAddressTracking.set(1);
DebugManager.flags.SetAmountOfReusableAllocations.set(storeAllocations);
DebugManager.flags.ForceL1Caching.set(0);
ModuleMutableCommandListFixture::setUp();
this->dshRequired = device->getDeviceInfo().imageSupport;
this->expectedSbaCmds = commandList->doubleSbaWa ? 2 : 1;
}
uint32_t CommandListStateBaseAddressFixture::getMocs(bool l3On) {
return device->getMOCS(l3On, false) >> 1;
}
void CommandListPrivateHeapsFixture::setUp() {
constexpr uint32_t storeAllocations = 4;
DebugManager.flags.SelectCmdListHeapAddressModel.set(static_cast<int32_t>(NEO::HeapAddressModel::PrivateHeaps));
DebugManager.flags.SetAmountOfReusableAllocations.set(storeAllocations);
CommandListStateBaseAddressFixture::setUp();
for (uint32_t i = 0; i < storeAllocations; i++) {
auto heapAllocation = neoDevice->getMemoryManager()->allocateGraphicsMemoryWithProperties({device->getRootDeviceIndex(), true, 2 * MB,
NEO::AllocationType::LINEAR_STREAM, false, false,
@@ -175,13 +188,6 @@ void CommandListStateBaseAddressFixture::setUp() {
mockKernelImmData->kernelDescriptor->payloadMappings.bindingTable.tableOffset = 64;
kernel->surfaceStateHeapDataSize = 64;
kernel->surfaceStateHeapData.reset(new uint8_t[128]);
this->dshRequired = device->getDeviceInfo().imageSupport;
this->expectedSbaCmds = commandList->doubleSbaWa ? 2 : 1;
}
uint32_t CommandListStateBaseAddressFixture::getMocs(bool l3On) {
return device->getMOCS(l3On, false) >> 1;
}
void CommandListGlobalHeapsFixtureInit::setUp() {

View File

@@ -129,6 +129,10 @@ struct CommandListStateBaseAddressFixture : public ModuleMutableCommandListFixtu
bool dshRequired = false;
};
struct CommandListPrivateHeapsFixture : public CommandListStateBaseAddressFixture {
void setUp();
};
struct CommandListGlobalHeapsFixtureInit : public CommandListStateBaseAddressFixture {
void setUp();
void setUpParams(int32_t globalHeapMode);

View File

@@ -1059,9 +1059,9 @@ HWTEST2_F(CommandListCreate, givenAllValuesTbxAndSyncModeFlagsWhenCheckingWaitli
EXPECT_TRUE(cmdList.eventWaitlistSyncRequired());
}
using CommandListStateBaseAddressTest = Test<CommandListStateBaseAddressFixture>;
using CommandListStateBaseAddressPrivateHeapTest = Test<CommandListPrivateHeapsFixture>;
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenRegularCmdListAppendKernelAndExecuteThenBaseAddressStateIsStoredInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -1228,7 +1228,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
ASSERT_EQ(0u, sbaCmds.size());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenRegularCmdListAppendKernelChangesHeapsAndExecuteThenFinalBaseAddressStateIsStoredInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -1420,7 +1420,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ((statlessMocs << 1), sbaCmd->getStatelessDataPortAccessMemoryObjectControlState());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenImmediateCmdListAppendKernelChangesHeapsAndExecuteThenFinalBaseAddressStateIsStoredInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -1577,7 +1577,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ(ssBaseAddress, sbaCmd->getSurfaceStateBaseAddress());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenRegularCmdListAppendKernelAndExecuteAndImmediateCmdListAppendKernelSharingCsrThenBaseAddressStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -1788,7 +1788,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ(ssBaseAddressImmediate, sbaCmd->getSurfaceStateBaseAddress());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenImmediateCmdListAppendKernelAndRegularCmdListAppendKernelAndExecuteSharingCsrThenBaseAddressStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -1986,7 +1986,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ((statlessMocs << 1), sbaCmd->getStatelessDataPortAccessMemoryObjectControlState());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenRegularCmdListAppendUncachedKernelFirstAndExecuteAndImmediateCmdListAppendUncachedKerneThenMocsStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -2067,7 +2067,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
ASSERT_EQ(0u, sbaList.size());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenRegularCmdListAppendCachedKernelFirstAndExecuteAndImmediateCmdListAppendUncachedKerneThenMocsStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -2141,7 +2141,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ((uncachedStatlessMocs << 1), sbaCmd->getStatelessDataPortAccessMemoryObjectControlState());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenImmediateCmdListAppendUncachedKerneAndRegularCmdListAppendCachedKernelAndExecuteThenMocsStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -2215,7 +2215,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ((cachedStatlessMocs << 1), sbaCmd->getStatelessDataPortAccessMemoryObjectControlState());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenStateBaseAddressTrackingWhenImmediateCmdListAppendCachedKerneAndRegularCmdListAppendUncachedKernelAndExecuteThenMocsStateIsUpdatedInCsr,
IsAtLeastSkl) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
@@ -2289,7 +2289,7 @@ HWTEST2_F(CommandListStateBaseAddressTest,
EXPECT_EQ((uncachedStatlessMocs << 1), sbaCmd->getStatelessDataPortAccessMemoryObjectControlState());
}
HWTEST2_F(CommandListStateBaseAddressTest,
HWTEST2_F(CommandListStateBaseAddressPrivateHeapTest,
givenSbaPropertiesWhenBindingBaseAddressSetThenExpectPropertiesDataDispatched, IsAtLeastXeHpCore) {
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
using _3DSTATE_BINDING_TABLE_POOL_ALLOC = typename FamilyType::_3DSTATE_BINDING_TABLE_POOL_ALLOC;