anchor.diff:                  async {
                       while true do
                           do! Async.Sleep(1000)
  -                        printfn "active = %A / desired = %A / count = %A / inactiveCnt=%d / inactive=%A" progress.ActiveNodeCount progress.ExpectedNodeCount geometries.Count inactive.Count inactiveSize
  +                        printfn "active = %A / desired = %A / count = %A / inactiveCnt=%d / inactive=%A / rasterizeTime=%f [seconds]" progress.activeNodeCount.Value progress.expectedNodeCount.Value geometries.Count inactive.Count inactiveSize (float progress.rasterizeTime.Value / float TimeSpan.TicksPerSecond)
                           ()
                   }
   
   
  -//            let t = 
  -//                [| for i in 0 .. 8 do 
  -//                    let t = System.Threading.Thread(ThreadStart(deltaProcessing))   // todo cancell
  -//                    t.Priority <- ThreadPriority.BelowNormal
  -//                    t.Start()
  -//                |]
               for i in 1..4 do
                   Async.StartAsTask(deltaProcessing, cancellationToken = cancel.Token) |> ignore
               Async.StartAsTask(pruning, cancellationToken = cancel.Token) |> ignore
  
positive.code:             member x.Progress = progress
  
          let pointCloud (data : ILodData) (info : PointCloudInfo) =
              PointCloud(data, info, { ActiveNodeCount = ref 0; ExpectedNodeCount = ref 0 }) :> ISg
  
          let pointCloud' (data : ILodData) (info : PointCloudInfo) (progress : Progress) =
              PointCloud(data, info, progress) :> ISg
              
  
  namespace Aardvark.SceneGraph.Semantics
  
  open System
  open System.Threading
  open System.Threading.Tasks
  open Aardvark.Base
  open Aardvark.Base.Ag
  open Aardvark.Base.Rendering
  open Aardvark.Base.Incremental
  open Aardvark.SceneGraph
  
  
  module PointCloudRenderObjectSemantics = 
  
      [<CustomEquality; NoComparison>]
      type GeometryRef = { node : LodDataNode; geometry : IndexedGeometry; range : Range1i } with
  
negative.code:             view.AddMarkingCallback (fun () -> r.Put ()) |> ignore
              proj.AddMarkingCallback (fun () -> r.Put ()) |> ignore
              wantedNearPlaneDistance.AddMarkingCallback (fun () -> r.Put ()) |> ignore
              for a in node.Data.Dependencies do a.AddMarkingCallback (fun () -> r.Put ()) |> ignore
  
              r.Put()
  
  