@@ -691,6 +691,9 @@ void GPUChainTracking::ConvertNativeToClusterDataLegacy()
691691 GPUReconstructionConvert::ConvertNativeToClusterData (mClusterNativeAccess .get (), mIOMem .clusterData , mIOPtrs .nClusterData , processors ()->calibObjects .fastTransform , param ().continuousMaxTimeBin );
692692 for (unsigned int i = 0 ; i < NSLICES; i++) {
693693 mIOPtrs .clusterData [i] = mIOMem .clusterData [i].get ();
694+ if (GetDeviceProcessingSettings ().registerStandaloneInputMemory ) {
695+ mRec ->registerMemoryForGPU (mIOMem .clusterData [i].get (), mIOPtrs .nClusterData [i] * sizeof (*mIOPtrs .clusterData [i]));
696+ }
694697 }
695698 mIOPtrs .clustersNative = nullptr ;
696699 mIOMem .clustersNative .reset (nullptr );
@@ -709,11 +712,25 @@ void GPUChainTracking::ConvertRun2RawToNative()
709712 mIOMem .clusterData [i].reset (nullptr );
710713 }
711714 mIOPtrs .clustersNative = mClusterNativeAccess .get ();
715+ if (GetDeviceProcessingSettings ().registerStandaloneInputMemory ) {
716+ mRec ->registerMemoryForGPU (mIOMem .clustersNative .get (), mClusterNativeAccess ->nClustersTotal * sizeof (*mClusterNativeAccess ->clustersLinear ));
717+ }
712718}
713719
714720void GPUChainTracking::ConvertZSEncoder (bool zs12bit)
715721{
716- GPUReconstructionConvert::RunZSEncoder (mIOPtrs .tpcPackedDigits , mIOPtrs .tpcZS , param (), zs12bit);
722+ GPUTrackingInOutZS* tmp;
723+ GPUReconstructionConvert::RunZSEncoder (mIOPtrs .tpcPackedDigits , tmp, param (), zs12bit);
724+ mIOPtrs .tpcZS = tmp;
725+ if (GetDeviceProcessingSettings ().registerStandaloneInputMemory ) {
726+ for (unsigned int i = 0 ; i < NSLICES; i++) {
727+ for (unsigned int j = 0 ; j < GPUTrackingInOutZS::NENDPOINTS; j++) {
728+ for (unsigned int k = 0 ; k < tmp->slice [i].count [j]; k++) {
729+ mRec ->registerMemoryForGPU (tmp->slice [i].zsPtr [j][k], tmp->slice [i].nZSPtr [j][k] * TPCZSHDR::TPC_ZS_PAGE_SIZE);
730+ }
731+ }
732+ }
733+ }
717734}
718735
719736void GPUChainTracking::ConvertZSFilter (bool zs12bit)
0 commit comments