diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp index 8f7ef4cd3a..63e6285390 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp @@ -9,6 +9,7 @@ #include "shared/source/command_container/walker_partition_xehp_and_later.h" #include "shared/source/command_stream/linear_stream.h" #include "shared/source/gmm_helper/gmm_helper.h" +#include "shared/source/helpers/compiler_product_helper.h" #include "shared/source/helpers/gfx_core_helper.h" #include "shared/source/helpers/simd_helper.h" #include "shared/source/helpers/timestamp_packet.h" @@ -66,6 +67,9 @@ struct XeHPAndLaterDispatchWalkerBasicFixture : public LinearStreamFixture { for (uint32_t i = sizeGrfDwords; i < sizeGrfDwords * 2; i++) { crossThreadDataTwoGrf[i] = i + 2; } + + auto &compilerProductHelper = device->getCompilerProductHelper(); + heaplessEnabled = compilerProductHelper.isHeaplessModeEnabled(); } DebugManagerStateRestore restore; @@ -84,6 +88,8 @@ struct XeHPAndLaterDispatchWalkerBasicFixture : public LinearStreamFixture { std::unique_ptr device; std::unique_ptr context; std::unique_ptr kernel; + + bool heaplessEnabled = false; }; using XeHPAndLaterDispatchWalkerBasicTest = Test; @@ -1172,7 +1178,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, GivenPipeContr size_t numPipeControls = MemorySynchronizationCommands::isBarrierWaRequired(device->getRootDeviceEnvironment()) ? 2 : 1; - auto baseSize = sizeof(WalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); @@ -1232,7 +1238,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, GivenPipeContr size_t numPipeControls = MemorySynchronizationCommands::isBarrierWaRequired(device->getRootDeviceEnvironment()) ? 2 : 1; - auto baseSize = sizeof(WalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); @@ -1287,7 +1293,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, whenWalkerPart DispatchInfo dispatchInfo{}; dispatchInfo.setNumberOfWorkgroups({32, 1, 1}); - auto baseSize = sizeof(typename FamilyType::DefaultWalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); @@ -1304,7 +1310,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, whenPipeContro size_t numPipeControls = MemorySynchronizationCommands::isBarrierWaRequired(device->getRootDeviceEnvironment()) ? 2 : 1; - auto baseSize = sizeof(typename FamilyType::DefaultWalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); @@ -1324,7 +1330,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, GivenPipeContr size_t numPipeControls = MemorySynchronizationCommands::isBarrierWaRequired(device->getRootDeviceEnvironment()) ? 2 : 1; - auto baseSize = sizeof(WalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); @@ -1357,7 +1363,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, GivenPipeContr size_t numPipeControls = MemorySynchronizationCommands::isBarrierWaRequired(device->getRootDeviceEnvironment()) ? 2 : 1; - auto baseSize = sizeof(WalkerType) + + auto baseSize = UnitTestHelper::getWalkerSize(this->heaplessEnabled) + (sizeof(typename FamilyType::PIPE_CONTROL) * numPipeControls) + HardwareCommandsHelper::getSizeRequiredCS() + EncodeMemoryPrefetch::getSizeForMemoryPrefetch(kernel->kernelInfo.heapInfo.kernelHeapSize, device->getRootDeviceEnvironment()); diff --git a/shared/test/common/helpers/unit_test_helper.h b/shared/test/common/helpers/unit_test_helper.h index 404772a669..6c97420a31 100644 --- a/shared/test/common/helpers/unit_test_helper.h +++ b/shared/test/common/helpers/unit_test_helper.h @@ -110,6 +110,8 @@ struct UnitTestHelper { static GenCmdList::iterator findWalkerTypeCmd(GenCmdList::iterator begin, GenCmdList::iterator end); static std::vector findAllWalkerTypeCmds(GenCmdList::iterator begin, GenCmdList::iterator end); static typename GfxFamily::WalkerVariant getWalkerVariant(void *walkerItor); + + static size_t getWalkerSize(bool isHeaplessEnabled); }; } // namespace NEO diff --git a/shared/test/common/helpers/unit_test_helper.inl b/shared/test/common/helpers/unit_test_helper.inl index 3488f17bf1..b80ca1c5c7 100644 --- a/shared/test/common/helpers/unit_test_helper.inl +++ b/shared/test/common/helpers/unit_test_helper.inl @@ -12,6 +12,7 @@ #include "shared/test/common/cmd_parse/hw_parse.h" #include "gtest/gtest.h" +#include "unit_test_helper.h" namespace NEO { @@ -124,4 +125,10 @@ typename GfxFamily::WalkerVariant UnitTestHelper::getWalkerVariant(vo return {}; } +template +size_t UnitTestHelper::getWalkerSize(bool isHeaplessEnabled) { + using DefaultWalkerType = typename GfxFamily::DefaultWalkerType; + return sizeof(DefaultWalkerType); +} + } // namespace NEO