diff --git a/runtime/command_queue/gpgpu_walker.h b/runtime/command_queue/gpgpu_walker.h index 2ff45a5e77..ebbffb2cd4 100644 --- a/runtime/command_queue/gpgpu_walker.h +++ b/runtime/command_queue/gpgpu_walker.h @@ -28,6 +28,8 @@ namespace NEO { +struct RootDeviceEnvironment; + template using WALKER_TYPE = typename GfxFamily::WALKER_TYPE; template @@ -134,7 +136,7 @@ class GpgpuWalkerHelper { WALKER_TYPE *walkerCmd, TagNode *timestampPacketNode, TimestampPacketStorage::WriteOperationType writeOperationType, - const HardwareInfo &hwInfo); + const RootDeviceEnvironment &rootDeviceEnvironment); static void dispatchScheduler( LinearStream &commandStream, diff --git a/runtime/command_queue/gpgpu_walker_bdw_plus.inl b/runtime/command_queue/gpgpu_walker_bdw_plus.inl index 155ea51c53..f6bbb0027e 100644 --- a/runtime/command_queue/gpgpu_walker_bdw_plus.inl +++ b/runtime/command_queue/gpgpu_walker_bdw_plus.inl @@ -6,6 +6,7 @@ */ #pragma once +#include "core/execution_environment/root_device_environment.h" #include "core/helpers/simd_helper.h" #include "runtime/command_queue/gpgpu_walker_base.inl" #include "runtime/device/cl_device.h" @@ -177,12 +178,12 @@ void GpgpuWalkerHelper::setupTimestampPacket( WALKER_TYPE *walkerCmd, TagNode *timestampPacketNode, TimestampPacketStorage::WriteOperationType writeOperationType, - const HardwareInfo &hwInfo) { + const RootDeviceEnvironment &rootDeviceEnvironment) { if (TimestampPacketStorage::WriteOperationType::AfterWalker == writeOperationType) { uint64_t address = timestampPacketNode->getGpuAddress() + offsetof(TimestampPacketStorage, packets[0].contextEnd); PipeControlHelper::obtainPipeControlAndProgramPostSyncOperation(*cmdStream, - PIPE_CONTROL::POST_SYNC_OPERATION_WRITE_IMMEDIATE_DATA, address, 0, false, hwInfo); + PIPE_CONTROL::POST_SYNC_OPERATION_WRITE_IMMEDIATE_DATA, address, 0, false, *rootDeviceEnvironment.getHardwareInfo()); } } diff --git a/runtime/command_queue/hardware_interface_base.inl b/runtime/command_queue/hardware_interface_base.inl index b3bc3b5ada..c9b1739198 100644 --- a/runtime/command_queue/hardware_interface_base.inl +++ b/runtime/command_queue/hardware_interface_base.inl @@ -177,7 +177,7 @@ void HardwareInterface::dispatchKernelCommands(CommandQueue &commandQ if (commandQueue.getGpgpuCommandStreamReceiver().peekTimestampPacketWriteEnabled()) { auto timestampPacketNode = currentTimestampPacketNodes->peekNodes().at(currentDispatchIndex); - GpgpuWalkerHelper::setupTimestampPacket(&commandStream, nullptr, timestampPacketNode, TimestampPacketStorage::WriteOperationType::BeforeWalker, commandQueue.getDevice().getHardwareInfo()); + GpgpuWalkerHelper::setupTimestampPacket(&commandStream, nullptr, timestampPacketNode, TimestampPacketStorage::WriteOperationType::BeforeWalker, commandQueue.getDevice().getRootDeviceEnvironment()); } programWalker(commandStream, kernel, commandQueue, currentTimestampPacketNodes, dsh, ioh, ssh, globalWorkSizes, diff --git a/runtime/command_queue/hardware_interface_bdw_plus.inl b/runtime/command_queue/hardware_interface_bdw_plus.inl index 0ccb9e7deb..c3da9a0edf 100644 --- a/runtime/command_queue/hardware_interface_bdw_plus.inl +++ b/runtime/command_queue/hardware_interface_bdw_plus.inl @@ -111,7 +111,7 @@ inline void HardwareInterface::programWalker( if (currentTimestampPacketNodes && commandQueue.getGpgpuCommandStreamReceiver().peekTimestampPacketWriteEnabled()) { auto timestampPacketNode = currentTimestampPacketNodes->peekNodes().at(currentDispatchIndex); - GpgpuWalkerHelper::setupTimestampPacket(&commandStream, walkerCmd, timestampPacketNode, TimestampPacketStorage::WriteOperationType::AfterWalker, commandQueue.getDevice().getHardwareInfo()); + GpgpuWalkerHelper::setupTimestampPacket(&commandStream, walkerCmd, timestampPacketNode, TimestampPacketStorage::WriteOperationType::AfterWalker, commandQueue.getDevice().getRootDeviceEnvironment()); } auto isCcsUsed = EngineHelpers::isCcs(commandQueue.getGpgpuEngine().osContext->getEngineType());