anchor.diff:                  |> List.map (fun i ->
                       let texName = sprintf "%s_texture%d.dds" sbasename i
                       let texPath = Path.Combine(baseDir, texName)
  +                    // log.Info "Saving texture %d to %s" i texPath
                       if saveTexture(i, texPath) then
                           i,(texName,texPath)
                       else
  
positive.code: 
              // lock vb and ib
              let vbDS = vb.Lock(0, vb.Description.SizeInBytes, LockFlags.ReadOnly)
              if not vbDS.CanRead then failwith "Failed to lock vertex buffer for reading"
              use vbReader = new BinaryReader(vbDS) // disposable
  
              let ibDS = ib.Lock(0, ib.Description.Size, LockFlags.ReadOnly)
              if not ibDS.CanRead then failwith "Failed to lock index buffer for reading"
              use ibReader = new BinaryReader(ibDS) // disposable
  
  
negative.code: 
              // index buffer
              if sd.IndexBuffer = 0n then failwith "Index buffer is null"
              ib <- new IndexBuffer(sd.IndexBuffer) // do not dispose, native code owns it
              let ibDesc = ib.Description
              log.Info"IndexBuffer: Format: %A, Usage: %A, Pool: %A, Size: %d" ibDesc.Format ibDesc.Usage ibDesc.Pool ibDesc.Size
  
  