@@ -304,6 +304,10 @@ int32_t SetupReconstruction()
304304
305305 chainTracking->mConfigQA = &configStandalone.QA ;
306306 chainTracking->mConfigDisplay = &configStandalone.display ;
307+ if (configStandalone.testSyncAsync ) {
308+ chainTrackingAsync->mConfigQA = &configStandalone.QA ;
309+ chainTrackingAsync->mConfigDisplay = &configStandalone.display ;
310+ }
307311
308312 GPUSettingsGRP grp = rec->GetGRPSettings ();
309313 GPUSettingsRec recSet;
@@ -426,6 +430,7 @@ int32_t SetupReconstruction()
426430 }
427431 }
428432
433+ bool runAsyncQA = procSet.runQA ;
429434 if (configStandalone.testSyncAsync || configStandalone.testSync ) {
430435 // Set settings for synchronous
431436 if (configStandalone.rundEdx == -1 ) {
@@ -434,6 +439,7 @@ int32_t SetupReconstruction()
434439 recSet.useMatLUT = false ;
435440 if (configStandalone.testSyncAsync ) {
436441 procSet.eventDisplay = nullptr ;
442+ procSet.runQA = false ;
437443 }
438444 }
439445 if (configStandalone.proc .rtc .optSpecialCode == -1 ) {
@@ -455,7 +461,7 @@ int32_t SetupReconstruction()
455461 steps.inputs .setBits (GPUDataTypes::InOutType::TPCCompressedClusters, true );
456462 steps.outputs .setBits (GPUDataTypes::InOutType::TPCCompressedClusters, false );
457463 procSet.runMC = false ;
458- procSet.runQA = false ;
464+ procSet.runQA = runAsyncQA ;
459465 procSet.eventDisplay = eventDisplay.get ();
460466 procSet.runCompressionStatistics = 0 ;
461467 procSet.rtc .optSpecialCode = 0 ;
@@ -749,7 +755,6 @@ int32_t main(int argc, char** argv)
749755 recAsync->SetDebugLevelTmp (configStandalone.proc .debugLevel );
750756 }
751757 chainTrackingAsync = recAsync->AddChain <GPUChainTracking>();
752- chainTrackingAsync->SetQAFromForeignChain (chainTracking);
753758 }
754759 if (configStandalone.proc .doublePipeline ) {
755760 if (configStandalone.proc .debugLevel >= 3 ) {
@@ -959,6 +964,9 @@ int32_t main(int argc, char** argv)
959964 }
960965
961966 rec->Finalize ();
967+ if (configStandalone.testSyncAsync ) {
968+ recAsync->Finalize ();
969+ }
962970 if (configStandalone.outputcontrolmem && rec->IsGPU ()) {
963971 if (rec->unregisterMemoryForGPU (outputmemory.get ()) || (configStandalone.proc .doublePipeline && recPipeline->unregisterMemoryForGPU (outputmemoryPipeline.get ()))) {
964972 printf (" Error unregistering memory\n " );
0 commit comments