iOS13 SceneKit Ошибка - Очистка никогда не освобождаемой текстуры - PullRequest
0 голосов
/ 08 октября 2019

У меня есть приложение ARKit, которое отлично работает на iOS 12.x. На iOS 13 я сталкиваюсь со следующей ошибкой в ​​журнале консоли:

[SceneKit] Error: Purging never freed texture <AGXA9FamilyTexture: 0x11d688240>
    label = <none> 
    textureType = MTLTextureType2D 
    pixelFormat = MTLPixelFormatR16Float 
    width = 240 
    height = 1 
    depth = 1 
    arrayLength = 1 
    mipmapLevelCount = 1 
    sampleCount = 1 
    cpuCacheMode = MTLCPUCacheModeDefaultCache 
    storageMode = MTLStorageModePrivate 
    hazardTrackingMode = MTLHazardTrackingModeTracked 
    resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModePrivate MTLResourceHazardTrackingModeTracked  
    usage = MTLTextureUsageShaderRead MTLTextureUsageShaderWrite 
    shareable = 0 
    framebufferOnly = 0 
    purgeableState = MTLPurgeableStateNonVolatile 
    swizzle = [MTLTextureSwizzleRed, MTLTextureSwizzleGreen, MTLTextureSwizzleBlue, MTLTextureSwizzleAlpha] 
    isCompressed = 0 
    parentTexture = <null> 
    parentRelativeLevel = 0 
    parentRelativeSlice = 0 
    buffer = <null> 
    bufferOffset = 512 
    bufferBytesPerRow = 0 
    allowGPUOptimizedContents = YES
    label = <none>

Он повторяется каждые несколько миллисекунд и загромождает весь журнал. Я не смог сузить, откуда это происходит.

Интересно, что это происходит даже тогда, когда в сцене нет ни одного узла. Если я удаляю весь sceneView из вида, то он исчезает ... (не вариант)

У кого-нибудь есть идея или намек, как отследить это?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Я исправил эту проблему, обновив настройку камеры сцены:

var sceneView: ARSCNView!
...
sceneView.pointOfView?.camera?.wantsHDR = false

Надеюсь, это поможет.

0 голосов
/ 09 октября 2019

Я нашел строку кода проблемы. В iOS 13 любой вызов

SceneView.snapshot()

приводит к этой ошибке. Документы Apple гласят:

Этот метод является поточно-ориентированным и может вызываться в любое время.

, но, похоже, это изменилось в iOS13. Я отправлю сообщение об ошибке, не надеясь на быстрое решение; -)

...