anchor.diff:                              yield CopyCommand.TransformLayout(src.[ImageAspect.Color], VkImageLayout.Preinitialized, VkImageLayout.TransferSrcOptimal)
                               yield CopyCommand.Copy(src.[ImageAspect.Color, 0, 0], result.[ImageAspect.Color, level, 0])
                                  
  +                        yield CopyCommand.SyncImage(result.[ImageAspect.Color], VkImageLayout.TransferDstOptimal, VkAccessFlags.TransferWriteBit)
  +
                           yield CopyCommand.Release(result.[ImageAspect.Color], VkImageLayout.TransferDstOptimal, device.GraphicsFamily)
                           yield CopyCommand.Callback (fun () -> levels |> Array.iter (fun i -> delete i device))
                       ]
  
positive.code:                 device.CopyEngine.Enqueue [
                      CopyCommand.TransformLayout(imageRange, VkImageLayout.Undefined, VkImageLayout.TransferDstOptimal)
                      CopyCommand.Copy(temp, imageRange.[0,0])
                      CopyCommand.Release(imageRange, VkImageLayout.TransferDstOptimal, device.GraphicsFamily)
                      CopyCommand.Callback(fun () -> device.Delete temp)
                  ]
  
negative.code:                     for (level, faces) in Seq.indexed tempImages do
                          for (face, temp) in Seq.indexed faces do
                              yield CopyCommand.Copy(temp, image.[ImageAspect.Color, level, face])
  
                      yield CopyCommand.SyncImage(imageRange, VkImageLayout.TransferDstOptimal, VkAccessFlags.TransferWriteBit)
  
                      yield CopyCommand.Release(imageRange, VkImageLayout.TransferDstOptimal, device.GraphicsFamily)
                      yield CopyCommand.Callback (fun () -> tempImages |> List.iter (List.iter device.Delete))
  