@@ -165,14 +165,8 @@ void GpgpuWalkerHelper<GfxFamily>::dispatchStoreRegisterCommand(
165165
166166template <typename GfxFamily>
167167void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterCommands(
168- CommandQueue &commandQueue,
169- TagNode<HwPerfCounter> &hwPerfCounter,
170168 LinearStream *commandStream,
171- bool start) {
172-
173- uint64_t baseAddress = hwPerfCounter.getGpuAddress ();
174- baseAddress += start ? offsetof (HwPerfCounter, HWPerfCounters.HwPerfReportBegin .Gp )
175- : offsetof (HwPerfCounter, HWPerfCounters.HwPerfReportEnd .Gp );
169+ uint64_t baseAddress) {
176170
177171 // Read General Purpose counters
178172 for (auto i = 0u ; i < NEO::INSTR_GENERAL_PURPOSE_COUNTERS_COUNT; i++) {
@@ -186,19 +180,15 @@ void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterComm
186180template <typename GfxFamily>
187181void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersUserCounterCommands(
188182 CommandQueue &commandQueue,
189- TagNode<HwPerfCounter> &hwPerfCounter,
190183 LinearStream *commandStream,
191- bool start ) {
184+ uint64_t baseAddress ) {
192185
193- uint64_t baseAddr = hwPerfCounter.getGpuAddress ();
194- baseAddr += start ? offsetof (HwPerfCounter, HWPerfCounters.HwPerfReportBegin .User )
195- : offsetof (HwPerfCounter, HWPerfCounters.HwPerfReportEnd .User );
196186 auto userRegs = &commandQueue.getPerfCountersConfigData ()->ReadRegs ;
197187
198188 for (uint32_t i = 0 ; i < userRegs->RegsCount ; i++) {
199189 uint32_t regAddr = userRegs->Reg [i].Offset ;
200190 // offset between base (low) registers is cl_ulong wide
201- uint64_t address = baseAddr + i * sizeof (cl_ulong);
191+ uint64_t address = baseAddress + i * sizeof (cl_ulong);
202192 dispatchStoreRegisterCommand (commandStream, address, regAddr);
203193
204194 if (userRegs->Reg [i].BitSize > 32 ) {
@@ -240,7 +230,7 @@ void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersCommandsStart(
240230 // Read Core Frequency
241231 GpgpuWalkerHelper<GfxFamily>::dispatchStoreRegisterCommand (commandStream, hwPerfCounter.getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters.CoreFreqBegin ), INSTR_MMIO_RPSTAT1);
242232
243- GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterCommands (commandQueue , hwPerfCounter, commandStream, true );
233+ GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterCommands (commandStream , hwPerfCounter. getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters. HwPerfReportBegin . Gp ) );
244234
245235 auto pReportPerfCount = commandStream->getSpaceForCmd <MI_REPORT_PERF_COUNT>();
246236 *pReportPerfCount = GfxFamily::cmdInitReportPerfCount;
@@ -252,7 +242,7 @@ void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersCommandsStart(
252242
253243 PipeControlHelper<GfxFamily>::obtainPipeControlAndProgramPostSyncOperation (commandStream, PIPE_CONTROL::POST_SYNC_OPERATION_WRITE_TIMESTAMP, address, 0llu, false );
254244
255- GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersUserCounterCommands (commandQueue, hwPerfCounter, commandStream, true );
245+ GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersUserCounterCommands (commandQueue, commandStream, hwPerfCounter. getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters. HwPerfReportBegin . User ) );
256246
257247 commandQueue.sendPerfCountersConfig ();
258248}
@@ -286,15 +276,15 @@ void GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersCommandsEnd(
286276 address = hwPerfCounter.getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters.HwPerfReportEnd .Oa );
287277 pReportPerfCount->setMemoryAddress (address);
288278
289- GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterCommands (commandQueue , hwPerfCounter, commandStream, false );
279+ GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersGeneralPurposeCounterCommands (commandStream , hwPerfCounter. getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters. HwPerfReportEnd . Gp ) );
290280
291281 // Store value of NOOPID register
292282 GpgpuWalkerHelper<GfxFamily>::dispatchStoreRegisterCommand (commandStream, hwPerfCounter.getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters.DMAFenceIdEnd ), INSTR_MMIO_NOOPID);
293283
294284 // Read Core Frequency
295285 GpgpuWalkerHelper<GfxFamily>::dispatchStoreRegisterCommand (commandStream, hwPerfCounter.getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters.CoreFreqEnd ), INSTR_MMIO_RPSTAT1);
296286
297- GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersUserCounterCommands (commandQueue, hwPerfCounter, commandStream, false );
287+ GpgpuWalkerHelper<GfxFamily>::dispatchPerfCountersUserCounterCommands (commandQueue, commandStream, hwPerfCounter. getGpuAddress () + offsetof (HwPerfCounter, HWPerfCounters. HwPerfReportEnd . User ) );
298288
299289 perfCounters->setCpuTimestamp ();
300290}
0 commit comments