anchor.diff:          let arr = Array.zeroCreate cnt.[0]
           b.Download(0L, arr, 0L, arr.LongLength)
   
  -        let r = Array.zeroCreate blocks
  -        ranges.Download(r)
      
   
  -        printfn "%A (%A) %A" arr.[0] r.[0] cnt.[0]
  +        printfn "%A (%A) %A" arr.[0] offsets.[0] cnt.[0]
   
   
           
  
positive.code:         let b = device.CreateBuffer<uint32>(64L * int64 blocks)
          let counter = device.CreateBuffer<int>(Array.zeroCreate 1)
  
          input.["channel"] <- 0
          input.["data"] <- targetBuffer
          input.["ranges"] <- ranges
          input.["counter"] <- counter
          input.["mask"] <- b
          input.Flush()
          
          device.perform {
              do! Command.Bind encode
              do! Command.SetInputs input
              do! Command.Dispatch blocks
          }
  
          let cnt = Array.zeroCreate 1
          counter.Download(cnt)
  
negative.code: 
          let image = PixImage<byte>(Col.Format.RGBA, V2i(32,32))
          image.GetMatrix<C4b>().SetByCoord(fun (c : V2l) ->
              if c.X > 16L then C4b.Red
              else C4b.Green
          ) |> ignore
  
          let alignedSize = V2i(next image.Size.X 8, next image.Size.Y 8)
  