Skip to content

Commit 9cf95c0

Browse files
Refactor and reposition state base address tests
Related-To: NEO-5019 Signed-off-by: Zbigniew Zdanowicz <[email protected]>
1 parent d4eb01f commit 9cf95c0

13 files changed

+560
-582
lines changed

opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_2_tests.cpp

Lines changed: 0 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,162 +1206,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenCsrInNonDi
12061206
EXPECT_EQ(0u, surfacesForResidency.size());
12071207
}
12081208

1209-
HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenCsrWhenGeneralStateBaseAddressIsProgrammedThenDecanonizedAddressIsWritten) {
1210-
uint64_t generalStateBaseAddress = 0xffff800400010000ull;
1211-
1212-
DispatchFlags dispatchFlags = DispatchFlagsHelper::createDefaultDispatchFlags();
1213-
auto gmmHelper = pDevice->getGmmHelper();
1214-
1215-
typename FamilyType::STATE_BASE_ADDRESS sbaCmd;
1216-
StateBaseAddressHelperArgs<FamilyType> args = {
1217-
generalStateBaseAddress, // generalStateBase
1218-
0, // indirectObjectHeapBaseAddress
1219-
generalStateBaseAddress, // instructionHeapBaseAddress
1220-
0, // globalHeapsBaseAddress
1221-
0, // surfaceStateBaseAddress
1222-
&sbaCmd, // stateBaseAddressCmd
1223-
&dsh, // dsh
1224-
&ioh, // ioh
1225-
&ssh, // ssh
1226-
gmmHelper, // gmmHelper
1227-
0, // statelessMocsIndex
1228-
MemoryCompressionState::NotApplicable, // memoryCompressionState
1229-
true, // setInstructionStateBaseAddress
1230-
true, // setGeneralStateBaseAddress
1231-
false, // useGlobalHeapsBaseAddress
1232-
false, // isMultiOsContextCapable
1233-
false, // useGlobalAtomics
1234-
false, // areMultipleSubDevicesInContext
1235-
false // overrideSurfaceStateBaseAddress
1236-
};
1237-
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
1238-
1239-
EXPECT_NE(generalStateBaseAddress, sbaCmd.getGeneralStateBaseAddress());
1240-
EXPECT_EQ(gmmHelper->decanonize(generalStateBaseAddress), sbaCmd.getGeneralStateBaseAddress());
1241-
}
1242-
1243-
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroGeneralStateBaseAddressWhenProgrammingIsDisabledThenExpectCommandValueZero) {
1244-
uint64_t generalStateBaseAddress = 0x80010000ull;
1245-
1246-
typename FamilyType::STATE_BASE_ADDRESS sbaCmd;
1247-
StateBaseAddressHelperArgs<FamilyType> args = {
1248-
generalStateBaseAddress, // generalStateBase
1249-
0, // indirectObjectHeapBaseAddress
1250-
generalStateBaseAddress, // instructionHeapBaseAddress
1251-
0, // globalHeapsBaseAddress
1252-
0, // surfaceStateBaseAddress
1253-
&sbaCmd, // stateBaseAddressCmd
1254-
&dsh, // dsh
1255-
&ioh, // ioh
1256-
&ssh, // ssh
1257-
pDevice->getGmmHelper(), // gmmHelper
1258-
0, // statelessMocsIndex
1259-
MemoryCompressionState::NotApplicable, // memoryCompressionState
1260-
true, // setInstructionStateBaseAddress
1261-
false, // setGeneralStateBaseAddress
1262-
false, // useGlobalHeapsBaseAddress
1263-
false, // isMultiOsContextCapable
1264-
false, // useGlobalAtomics
1265-
false, // areMultipleSubDevicesInContext
1266-
false // overrideSurfaceStateBaseAddress
1267-
};
1268-
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
1269-
1270-
EXPECT_EQ(0ull, sbaCmd.getGeneralStateBaseAddress());
1271-
EXPECT_EQ(0u, sbaCmd.getGeneralStateBufferSize());
1272-
EXPECT_FALSE(sbaCmd.getGeneralStateBaseAddressModifyEnable());
1273-
EXPECT_FALSE(sbaCmd.getGeneralStateBufferSizeModifyEnable());
1274-
}
1275-
1276-
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenNonZeroInternalHeapBaseAddressWhenProgrammingIsDisabledThenExpectCommandValueZero) {
1277-
uint64_t internalHeapBaseAddress = 0x80010000ull;
1278-
1279-
typename FamilyType::STATE_BASE_ADDRESS sbaCmd;
1280-
StateBaseAddressHelperArgs<FamilyType> args = {
1281-
internalHeapBaseAddress, // generalStateBase
1282-
internalHeapBaseAddress, // indirectObjectHeapBaseAddress
1283-
0, // instructionHeapBaseAddress
1284-
0, // globalHeapsBaseAddress
1285-
0, // surfaceStateBaseAddress
1286-
&sbaCmd, // stateBaseAddressCmd
1287-
&dsh, // dsh
1288-
&ioh, // ioh
1289-
&ssh, // ssh
1290-
pDevice->getGmmHelper(), // gmmHelper
1291-
0, // statelessMocsIndex
1292-
MemoryCompressionState::NotApplicable, // memoryCompressionState
1293-
false, // setInstructionStateBaseAddress
1294-
true, // setGeneralStateBaseAddress
1295-
false, // useGlobalHeapsBaseAddress
1296-
false, // isMultiOsContextCapable
1297-
false, // useGlobalAtomics
1298-
false, // areMultipleSubDevicesInContext
1299-
false // overrideSurfaceStateBaseAddress
1300-
};
1301-
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
1302-
1303-
EXPECT_FALSE(sbaCmd.getInstructionBaseAddressModifyEnable());
1304-
EXPECT_EQ(0ull, sbaCmd.getInstructionBaseAddress());
1305-
EXPECT_FALSE(sbaCmd.getInstructionBufferSizeModifyEnable());
1306-
EXPECT_EQ(0u, sbaCmd.getInstructionBufferSize());
1307-
EXPECT_EQ(0u, sbaCmd.getInstructionMemoryObjectControlState());
1308-
}
1309-
1310-
HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, givenSbaProgrammingWhenHeapsAreNotProvidedThenDontProgram) {
1311-
DispatchFlags dispatchFlags = DispatchFlagsHelper::createDefaultDispatchFlags();
1312-
1313-
uint64_t internalHeapBase = 0x10000;
1314-
uint64_t instructionHeapBase = 0x10000;
1315-
uint64_t generalStateBase = 0x30000;
1316-
typename FamilyType::STATE_BASE_ADDRESS sbaCmd;
1317-
StateBaseAddressHelperArgs<FamilyType> args = {
1318-
generalStateBase, // generalStateBase
1319-
internalHeapBase, // indirectObjectHeapBaseAddress
1320-
instructionHeapBase, // instructionHeapBaseAddress
1321-
0, // globalHeapsBaseAddress
1322-
0, // surfaceStateBaseAddress
1323-
&sbaCmd, // stateBaseAddressCmd
1324-
nullptr, // dsh
1325-
nullptr, // ioh
1326-
nullptr, // ssh
1327-
pDevice->getGmmHelper(), // gmmHelper
1328-
0, // statelessMocsIndex
1329-
MemoryCompressionState::NotApplicable, // memoryCompressionState
1330-
true, // setInstructionStateBaseAddress
1331-
true, // setGeneralStateBaseAddress
1332-
false, // useGlobalHeapsBaseAddress
1333-
false, // isMultiOsContextCapable
1334-
false, // useGlobalAtomics
1335-
false, // areMultipleSubDevicesInContext
1336-
false // overrideSurfaceStateBaseAddress
1337-
};
1338-
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
1339-
1340-
EXPECT_FALSE(sbaCmd.getDynamicStateBaseAddressModifyEnable());
1341-
EXPECT_FALSE(sbaCmd.getDynamicStateBufferSizeModifyEnable());
1342-
EXPECT_EQ(0u, sbaCmd.getDynamicStateBaseAddress());
1343-
EXPECT_EQ(0u, sbaCmd.getDynamicStateBufferSize());
1344-
1345-
EXPECT_FALSE(sbaCmd.getIndirectObjectBaseAddressModifyEnable());
1346-
EXPECT_FALSE(sbaCmd.getIndirectObjectBufferSizeModifyEnable());
1347-
EXPECT_EQ(0u, sbaCmd.getIndirectObjectBaseAddress());
1348-
EXPECT_EQ(0u, sbaCmd.getIndirectObjectBufferSize());
1349-
1350-
EXPECT_FALSE(sbaCmd.getSurfaceStateBaseAddressModifyEnable());
1351-
EXPECT_EQ(0u, sbaCmd.getSurfaceStateBaseAddress());
1352-
1353-
EXPECT_TRUE(sbaCmd.getInstructionBaseAddressModifyEnable());
1354-
EXPECT_EQ(instructionHeapBase, sbaCmd.getInstructionBaseAddress());
1355-
EXPECT_TRUE(sbaCmd.getInstructionBufferSizeModifyEnable());
1356-
EXPECT_EQ(MemoryConstants::sizeOf4GBinPageEntities, sbaCmd.getInstructionBufferSize());
1357-
1358-
EXPECT_TRUE(sbaCmd.getGeneralStateBaseAddressModifyEnable());
1359-
EXPECT_TRUE(sbaCmd.getGeneralStateBufferSizeModifyEnable());
1360-
auto gmmHelper = pDevice->getGmmHelper();
1361-
EXPECT_EQ(gmmHelper->decanonize(generalStateBase), sbaCmd.getGeneralStateBaseAddress());
1362-
EXPECT_EQ(0xfffffu, sbaCmd.getGeneralStateBufferSize());
1363-
}
1364-
13651209
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCommandStreamReceiverWhenFlushTaskIsCalledThenInitializePageTableManagerRegister) {
13661210
auto csr = new MockCsrHw2<FamilyType>(*pDevice->executionEnvironment, pDevice->getRootDeviceIndex(), pDevice->getDeviceBitfield());
13671211
auto csr2 = new MockCsrHw2<FamilyType>(*pDevice->executionEnvironment, pDevice->getRootDeviceIndex(), pDevice->getDeviceBitfield());

opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -317,67 +317,6 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, wh
317317
EXPECT_NE(nullptr, bindingTablePoolAlloc);
318318
}
319319

320-
HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, givenNoHeapsProvidedWhenSBAIsProgrammedThenBaseAddressesAreNotSetAndBindlessSurfaceStateSizeSetToMax) {
321-
using STATE_BASE_ADDRESS = typename FamilyType::STATE_BASE_ADDRESS;
322-
DispatchFlags dispatchFlags = DispatchFlagsHelper::createDefaultDispatchFlags();
323-
324-
uint64_t instructionHeapBase = 0x10000;
325-
uint64_t internalHeapBase = 0x10000;
326-
uint64_t generalStateBase = 0x30000;
327-
STATE_BASE_ADDRESS sbaCmd;
328-
StateBaseAddressHelperArgs<FamilyType> args = {
329-
generalStateBase, // generalStateBase
330-
internalHeapBase, // indirectObjectHeapBaseAddress
331-
instructionHeapBase, // instructionHeapBaseAddress
332-
0, // globalHeapsBaseAddress
333-
0, // surfaceStateBaseAddress
334-
&sbaCmd, // stateBaseAddressCmd
335-
nullptr, // dsh
336-
nullptr, // ioh
337-
nullptr, // ssh
338-
pDevice->getGmmHelper(), // gmmHelper
339-
0, // statelessMocsIndex
340-
MemoryCompressionState::NotApplicable, // memoryCompressionState
341-
true, // setInstructionStateBaseAddress
342-
true, // setGeneralStateBaseAddress
343-
false, // useGlobalHeapsBaseAddress
344-
false, // isMultiOsContextCapable
345-
false, // useGlobalAtomics
346-
false, // areMultipleSubDevicesInContext
347-
false // overrideSurfaceStateBaseAddress
348-
};
349-
StateBaseAddressHelper<FamilyType>::programStateBaseAddress(args);
350-
351-
EXPECT_FALSE(sbaCmd.getDynamicStateBaseAddressModifyEnable());
352-
EXPECT_FALSE(sbaCmd.getDynamicStateBufferSizeModifyEnable());
353-
EXPECT_EQ(0u, sbaCmd.getDynamicStateBaseAddress());
354-
EXPECT_EQ(0u, sbaCmd.getDynamicStateBufferSize());
355-
356-
EXPECT_FALSE(sbaCmd.getSurfaceStateBaseAddressModifyEnable());
357-
EXPECT_EQ(0u, sbaCmd.getSurfaceStateBaseAddress());
358-
359-
EXPECT_TRUE(sbaCmd.getInstructionBaseAddressModifyEnable());
360-
EXPECT_EQ(instructionHeapBase, sbaCmd.getInstructionBaseAddress());
361-
EXPECT_TRUE(sbaCmd.getInstructionBufferSizeModifyEnable());
362-
EXPECT_EQ(MemoryConstants::sizeOf4GBinPageEntities, sbaCmd.getInstructionBufferSize());
363-
364-
EXPECT_TRUE(sbaCmd.getGeneralStateBaseAddressModifyEnable());
365-
EXPECT_TRUE(sbaCmd.getGeneralStateBufferSizeModifyEnable());
366-
if constexpr (is64bit) {
367-
auto gmmHelper = pDevice->getGmmHelper();
368-
EXPECT_EQ(gmmHelper->decanonize(internalHeapBase), sbaCmd.getGeneralStateBaseAddress());
369-
} else {
370-
EXPECT_EQ(generalStateBase, sbaCmd.getGeneralStateBaseAddress());
371-
}
372-
EXPECT_EQ(0xfffffu, sbaCmd.getGeneralStateBufferSize());
373-
374-
EXPECT_EQ(0u, sbaCmd.getBindlessSurfaceStateBaseAddress());
375-
EXPECT_FALSE(sbaCmd.getBindlessSurfaceStateBaseAddressModifyEnable());
376-
377-
auto surfaceStateCount = StateBaseAddressHelper<FamilyType>::getMaxBindlessSurfaceStates();
378-
EXPECT_EQ(surfaceStateCount, sbaCmd.getBindlessSurfaceStateSize());
379-
}
380-
381320
using isXeHPOrAbove = IsAtLeastProduct<IGFX_XE_HP_SDV>;
382321
HWTEST2_F(CommandStreamReceiverFlushTaskXeHPAndLaterTests, whenFlushAllCachesVariableIsSetAndAddPipeControlIsCalledThenFieldsAreProperlySet, isXeHPOrAbove) {
383322
using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL;

opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -443,90 +443,6 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, givenMultE
443443

444444
using StateBaseAddressXeHPAndLaterTests = XeHpCommandStreamReceiverFlushTaskTests;
445445

446-
struct CompressionParamsSupportedMatcher {
447-
template <PRODUCT_FAMILY productFamily>
448-
static constexpr bool isMatched() {
449-
if constexpr (HwMapper<productFamily>::GfxProduct::supportsCmdSet(IGFX_XE_HP_CORE)) {
450-
return TestTraits<NEO::ToGfxCoreFamily<productFamily>::get()>::surfaceStateCompressionParamsSupported;
451-
}
452-
return false;
453-
}
454-
};
455-
456-
HWTEST2_F(StateBaseAddressXeHPAndLaterTests, givenMemoryCompressionEnabledWhenAppendingSbaThenEnableStatelessCompressionForAllStatelessAccesses, CompressionParamsSupportedMatcher) {
457-
auto memoryManager = pDevice->getExecutionEnvironment()->memoryManager.get();
458-
AllocationProperties properties(pDevice->getRootDeviceIndex(), 1, AllocationType::BUFFER, pDevice->getDeviceBitfield());
459-
auto allocation = memoryManager->allocateGraphicsMemoryWithProperties(properties);
460-
IndirectHeap indirectHeap(allocation, 1);
461-
462-
for (auto memoryCompressionState : {MemoryCompressionState::NotApplicable, MemoryCompressionState::Disabled, MemoryCompressionState::Enabled}) {
463-
auto sbaCmd = FamilyType::cmdInitStateBaseAddress;
464-
StateBaseAddressHelperArgs<FamilyType> args = {
465-
0, // generalStateBase
466-
0, // indirectObjectHeapBaseAddress
467-
0, // instructionHeapBaseAddress
468-
0, // globalHeapsBaseAddress
469-
0, // surfaceStateBaseAddress
470-
&sbaCmd, // stateBaseAddressCmd
471-
nullptr, // dsh
472-
nullptr, // ioh
473-
&indirectHeap, // ssh
474-
pDevice->getRootDeviceEnvironment().getGmmHelper(), // gmmHelper
475-
0, // statelessMocsIndex
476-
memoryCompressionState, // memoryCompressionState
477-
false, // setInstructionStateBaseAddress
478-
true, // setGeneralStateBaseAddress
479-
false, // useGlobalHeapsBaseAddress
480-
false, // isMultiOsContextCapable
481-
false, // useGlobalAtomics
482-
false, // areMultipleSubDevicesInContext
483-
false // overrideSurfaceStateBaseAddress
484-
};
485-
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
486-
if (memoryCompressionState == MemoryCompressionState::Enabled) {
487-
EXPECT_EQ(FamilyType::STATE_BASE_ADDRESS::ENABLE_MEMORY_COMPRESSION_FOR_ALL_STATELESS_ACCESSES_ENABLED, sbaCmd.getEnableMemoryCompressionForAllStatelessAccesses());
488-
} else {
489-
EXPECT_EQ(FamilyType::STATE_BASE_ADDRESS::ENABLE_MEMORY_COMPRESSION_FOR_ALL_STATELESS_ACCESSES_DISABLED, sbaCmd.getEnableMemoryCompressionForAllStatelessAccesses());
490-
}
491-
}
492-
493-
memoryManager->freeGraphicsMemory(allocation);
494-
}
495-
496-
HWCMDTEST_F(IGFX_XE_HP_CORE, StateBaseAddressXeHPAndLaterTests, givenNonZeroInternalHeapBaseAddressWhenSettingIsDisabledThenExpectCommandValueZero) {
497-
auto memoryManager = pDevice->getExecutionEnvironment()->memoryManager.get();
498-
AllocationProperties properties(pDevice->getRootDeviceIndex(), 1, AllocationType::BUFFER, pDevice->getDeviceBitfield());
499-
auto allocation = memoryManager->allocateGraphicsMemoryWithProperties(properties);
500-
501-
IndirectHeap indirectHeap(allocation, 1);
502-
auto sbaCmd = FamilyType::cmdInitStateBaseAddress;
503-
uint64_t ihba = 0x80010000ull;
504-
StateBaseAddressHelperArgs<FamilyType> args = {
505-
0, // generalStateBase
506-
ihba, // indirectObjectHeapBaseAddress
507-
0, // instructionHeapBaseAddress
508-
0, // globalHeapsBaseAddress
509-
0, // surfaceStateBaseAddress
510-
&sbaCmd, // stateBaseAddressCmd
511-
nullptr, // dsh
512-
nullptr, // ioh
513-
&indirectHeap, // ssh
514-
pDevice->getRootDeviceEnvironment().getGmmHelper(), // gmmHelper
515-
0, // statelessMocsIndex
516-
MemoryCompressionState::NotApplicable, // memoryCompressionState
517-
false, // setInstructionStateBaseAddress
518-
false, // setGeneralStateBaseAddress
519-
false, // useGlobalHeapsBaseAddress
520-
false, // isMultiOsContextCapable
521-
false, // useGlobalAtomics
522-
false, // areMultipleSubDevicesInContext
523-
false // overrideSurfaceStateBaseAddress
524-
};
525-
StateBaseAddressHelper<FamilyType>::appendStateBaseAddressParameters(args, true);
526-
EXPECT_EQ(0ull, sbaCmd.getGeneralStateBaseAddress());
527-
memoryManager->freeGraphicsMemory(allocation);
528-
}
529-
530446
namespace {
531447

532448
template <typename FamilyType, typename CommandStreamReceiverType>

0 commit comments

Comments
 (0)