diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp index d8792e7b09..99893fa9d1 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp @@ -92,6 +92,7 @@ HWTEST2_F(WalkerDispatchTestDg2AndLater, givenDebugVariableSetWhenProgramCompute HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchingThenProgramPostSyncData, matcherDG2AndLater) { using DefaultWalkerType = typename FamilyType::DefaultWalkerType; + using POSTSYNC_DATA = typename DefaultWalkerType::PostSyncType; MockKernelWithInternals kernel1(*device); MockKernelWithInternals kernel2(*device); @@ -125,7 +126,7 @@ HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchin auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); auto walker = genCmdCast(*hwParser.itorWalker); - EXPECT_EQ(FamilyType::POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); + EXPECT_EQ(POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); EXPECT_TRUE(walker->getPostSync().getDataportPipelineFlush()); EXPECT_TRUE(walker->getPostSync().getDataportSubsliceCacheFlush()); EXPECT_EQ(expectedMocs, walker->getPostSync().getMocs()); @@ -135,7 +136,7 @@ HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchin auto secondWalkerItor = NEO::UnitTestHelper::findWalkerTypeCmd(++hwParser.itorWalker, hwParser.cmdList.end()); auto secondWalker = genCmdCast(*secondWalkerItor); - EXPECT_EQ(FamilyType::POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, secondWalker->getPostSync().getOperation()); + EXPECT_EQ(POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, secondWalker->getPostSync().getOperation()); EXPECT_TRUE(secondWalker->getPostSync().getDataportPipelineFlush()); EXPECT_TRUE(secondWalker->getPostSync().getDataportSubsliceCacheFlush()); EXPECT_EQ(expectedMocs, walker->getPostSync().getMocs()); 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 7b2d6cedb8..15a10e7e88 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 @@ -452,6 +452,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenWorkDimTh HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchingThenProgramPostSyncData) { using DefaultWalkerType = typename FamilyType::DefaultWalkerType; + using PostSyncType = typename DefaultWalkerType::PostSyncType; MockKernelWithInternals kernel1(*device); MockKernelWithInternals kernel2(*device); @@ -484,7 +485,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestamp auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); auto walker = genCmdCast(*hwParser.itorWalker); - EXPECT_EQ(FamilyType::POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); + EXPECT_EQ(PostSyncType::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); EXPECT_TRUE(walker->getPostSync().getDataportPipelineFlush()); EXPECT_EQ(expectedMocs, walker->getPostSync().getMocs()); auto contextStartAddress = TimestampPacketHelper::getContextStartGpuAddress(*timestampPacketContainer.peekNodes()[0]); @@ -493,7 +494,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestamp auto secondWalkerItor = NEO::UnitTestHelper::findWalkerTypeCmd(++hwParser.itorWalker, hwParser.cmdList.end()); auto secondWalker = genCmdCast(*secondWalkerItor); - EXPECT_EQ(FamilyType::POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, secondWalker->getPostSync().getOperation()); + EXPECT_EQ(PostSyncType::OPERATION::OPERATION_WRITE_TIMESTAMP, secondWalker->getPostSync().getOperation()); EXPECT_TRUE(secondWalker->getPostSync().getDataportPipelineFlush()); EXPECT_EQ(expectedMocs, walker->getPostSync().getMocs()); contextStartAddress = TimestampPacketHelper::getContextStartGpuAddress(*timestampPacketContainer.peekNodes()[1]); diff --git a/shared/source/command_container/command_encoder_enablers.inl b/shared/source/command_container/command_encoder_enablers.inl index 9ea1285e8c..314cc13a90 100644 --- a/shared/source/command_container/command_encoder_enablers.inl +++ b/shared/source/command_container/command_encoder_enablers.inl @@ -14,24 +14,24 @@ template void NEO::EncodeDispatchKernel::encodeAdditionalWalkerFields::adjustTimestampPacket(Family::DefaultWalkerType &walkerCmd, const EncodeDispatchKernelArgs &args); template void NEO::EncodeDispatchKernel::setupPostSyncForRegularEvent(Family::DefaultWalkerType &walkerCmd, const EncodeDispatchKernelArgs &args); template void NEO::EncodeDispatchKernel::setupPostSyncForInOrderExec(Family::DefaultWalkerType &walkerCmd, const EncodeDispatchKernelArgs &args); -template void NEO::EncodeDispatchKernel::setGrfInfo(Family::INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, uint32_t grfCount, const size_t &sizeCrossThreadData, const size_t &sizePerThreadData, const RootDeviceEnvironment &rootDeviceEnvironment); -template void NEO::EncodeDispatchKernel::setupPreferredSlmSize(Family::INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, const RootDeviceEnvironment &rootDeviceEnvironment, const uint32_t threadsPerThreadGroup, uint32_t slmTotalSize, SlmPolicy slmPolicy); -template void NEO::EncodeDispatchKernel::encodeThreadGroupDispatch(Family::INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor, const Device &device, const HardwareInfo &hwInfo, const uint32_t *threadGroupDimensions, const uint32_t threadGroupCount, const uint32_t grfCount, const uint32_t threadsPerThreadGroup, Family::DefaultWalkerType &walkerCmd); +template void NEO::EncodeDispatchKernel::setGrfInfo(Family::DefaultWalkerType::InterfaceDescriptorType *pInterfaceDescriptor, uint32_t grfCount, const size_t &sizeCrossThreadData, const size_t &sizePerThreadData, const RootDeviceEnvironment &rootDeviceEnvironment); +template void NEO::EncodeDispatchKernel::setupPreferredSlmSize(Family::DefaultWalkerType::InterfaceDescriptorType *pInterfaceDescriptor, const RootDeviceEnvironment &rootDeviceEnvironment, const uint32_t threadsPerThreadGroup, uint32_t slmTotalSize, SlmPolicy slmPolicy); +template void NEO::EncodeDispatchKernel::encodeThreadGroupDispatch(Family::DefaultWalkerType::InterfaceDescriptorType &interfaceDescriptor, const Device &device, const HardwareInfo &hwInfo, const uint32_t *threadGroupDimensions, const uint32_t threadGroupCount, const uint32_t grfCount, const uint32_t threadsPerThreadGroup, Family::DefaultWalkerType &walkerCmd); template void NEO::EncodeDispatchKernel::setupPostSyncMocs(Family::DefaultWalkerType &walkerCmd, const RootDeviceEnvironment &rootDeviceEnvironment, bool dcFlush); template void NEO::EncodeDispatchKernel::encode(CommandContainer &container, EncodeDispatchKernelArgs &args); template void NEO::EncodeDispatchKernel::encodeThreadData(Family::DefaultWalkerType &walkerCmd, const uint32_t *startWorkGroup, const uint32_t *numWorkGroups, const uint32_t *workGroupSizes, uint32_t simd, uint32_t localIdDimensions, uint32_t threadsPerThreadGroup, uint32_t threadExecutionMask, bool localIdsGenerationByRuntime, bool inlineDataProgrammingRequired, bool isIndirect, uint32_t requiredWorkGroupOrder, const RootDeviceEnvironment &rootDeviceEnvironment); template void NEO::EncodeDispatchKernel::adjustWalkOrder(Family::DefaultWalkerType &walkerCmd, uint32_t requiredWorkGroupOrder, const RootDeviceEnvironment &rootDeviceEnvironment); -template void NEO::EncodeDispatchKernel::programBarrierEnable(Family::INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor, uint32_t value, const HardwareInfo &hwInfo); +template void NEO::EncodeDispatchKernel::programBarrierEnable(Family::DefaultWalkerType::InterfaceDescriptorType &interfaceDescriptor, uint32_t value, const HardwareInfo &hwInfo); template void NEO::EncodeDispatchKernel::setScratchAddress(uint64_t &scratchAddress, uint32_t requiredScratchSlot0Size, uint32_t requiredScratchSlot1Size, IndirectHeap *ssh, CommandStreamReceiver &submissionCsr); template void NEO::EncodeDispatchKernel::setScratchAddress(uint64_t &scratchAddress, uint32_t requiredScratchSlot0Size, uint32_t requiredScratchSlot1Size, IndirectHeap *ssh, CommandStreamReceiver &submissionCsr); template void NEO::EncodeDispatchKernel::programInlineDataHeapless(uint8_t *inlineDataPtr, EncodeDispatchKernelArgs &args, CommandContainer &container, uint64_t offsetThreadData, uint64_t scratchPtr); -template void NEO::EncodeDispatchKernel::encodeEuSchedulingPolicy(Family::INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, const KernelDescriptor &kernelDesc, int32_t defaultPipelinedThreadArbitrationPolicy); +template void NEO::EncodeDispatchKernel::encodeEuSchedulingPolicy(Family::DefaultWalkerType::InterfaceDescriptorType *pInterfaceDescriptor, const KernelDescriptor &kernelDesc, int32_t defaultPipelinedThreadArbitrationPolicy); template uint64_t NEO::EncodeDispatchKernel::getScratchAddressForImmediatePatching(CommandContainer &container, EncodeDispatchKernelArgs &args); template void NEO::EncodeDispatchKernel::patchScratchAddressInImplicitArgs(ImplicitArgs &implicitArgs, uint64_t scratchAddress, bool scratchPtrPatchingRequired); template void NEO::EncodeDispatchKernel::forceComputeWalkerPostSyncFlushWithWrite(Family::DefaultWalkerType &walkerCmd); template void NEO::EncodeDispatchKernel::setWalkerRegionSettings(Family::DefaultWalkerType &walkerCmd, const HardwareInfo &hwInfo, uint32_t partitionCount, uint32_t workgroupSize, uint32_t maxWgCountPerTile, bool requiredWalkOrder); -template void NEO::EncodeDispatchKernel::overrideDefaultValues(Family::DefaultWalkerType &walkerCmd, Family::INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor); +template void NEO::EncodeDispatchKernel::overrideDefaultValues(Family::DefaultWalkerType &walkerCmd, Family::DefaultWalkerType::InterfaceDescriptorType &interfaceDescriptor); template void NEO::EncodeDispatchKernel::encodeWalkerPostSyncFields(Family::DefaultWalkerType &walkerCmd, const EncodeWalkerArgs &walkerArgs); template void NEO::EncodeDispatchKernel::encodeComputeDispatchAllWalker(Family::DefaultWalkerType &walkerCmd, const EncodeWalkerArgs &walkerArgs); diff --git a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp index b33c338a7a..c7305cf6f4 100644 --- a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp +++ b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp @@ -68,7 +68,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenSlmTotalSizeGraterTha HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenXeHpAndLaterWhenDispatchingKernelThenSetDenormMode) { using DefaultWalkerType = typename FamilyType::DefaultWalkerType; - using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA; + using INTERFACE_DESCRIPTOR_DATA = typename DefaultWalkerType::InterfaceDescriptorType; uint32_t dims[] = {2, 1, 1}; std::unique_ptr dispatchInterface(new MockDispatchKernelEncoder()); @@ -371,8 +371,8 @@ HWTEST2_F(CommandEncodeStatesTest, giveNumSamplersOneWhenDispatchKernelThensampl } HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenEventAllocationWhenDispatchingKernelThenPostSyncIsAdded) { - using POSTSYNC_DATA = typename FamilyType::POSTSYNC_DATA; using DefaultWalkerType = typename FamilyType::DefaultWalkerType; + using POSTSYNC_DATA = typename DefaultWalkerType::PostSyncType; uint32_t dims[] = {2, 1, 1}; std::unique_ptr dispatchInterface(new MockDispatchKernelEncoder()); uint64_t eventAddress = MemoryConstants::cacheLineSize * 123; @@ -716,14 +716,14 @@ HWTEST2_F(CommandEncodeStatesTest, givenInterfaceDescriptorDataWhenForceThreadGr } HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenInterfaceDescriptorDataWhenForceThreadGroupDispatchSizeVariableIsSetThenThreadGroupDispatchSizeIsChanged) { - using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA; using DefaultWalkerType = typename FamilyType::DefaultWalkerType; + using INTERFACE_DESCRIPTOR_DATA = typename DefaultWalkerType::InterfaceDescriptorType; INTERFACE_DESCRIPTOR_DATA iddArg; DefaultWalkerType walkerCmd{}; walkerCmd.setThreadGroupIdXDimension(1); walkerCmd.setThreadGroupIdYDimension(1); walkerCmd.setThreadGroupIdZDimension(1); - iddArg = FamilyType::cmdInitInterfaceDescriptorData; + iddArg = FamilyType::template getInitInterfaceDescriptor(); iddArg.setNumberOfThreadsInGpgpuThreadGroup(1u); const uint32_t forceThreadGroupDispatchSize = 1; @@ -1369,8 +1369,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesDynamicImplicitScaling, givenImp } HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenNonTimestampEventWhenTimestampPostSyncRequiredThenTimestampPostSyncIsAdded) { - using POSTSYNC_DATA = typename FamilyType::POSTSYNC_DATA; using DefaultWalkerType = typename FamilyType::DefaultWalkerType; + using POSTSYNC_DATA = typename DefaultWalkerType::PostSyncType; uint32_t dims[] = {2, 1, 1}; std::unique_ptr dispatchInterface(new MockDispatchKernelEncoder()); uint64_t eventAddress = MemoryConstants::cacheLineSize * 123;