ARKit Demo Crashing

Hi All -


I downloaded Xcode 9 & iOS 11 to my iPad, but the Demo App (ARKit) is crashing on launch with the following error messgae:


"failed assertion `MTLRenderPassDescriptor MTLStoreActionMultisampleResolve store action for the depth attachment is not supported by device'"


Is there a list of supported devices ?

Replies

I beleive ARKit supports only devices with Apple's A9 Processors!


Tools i've used to run the sample :

XCode 9 beta

IOS 11

6s PLUS 64 GB

TY I'll track down an A9 Test phone

My test too not working!!
Setup: XCode 9 beta, iOS 11 and 6 PLUS

@ravinleague was correct you need an A9 device per the WWDC ARKit Session. The 6+ has the A8 chip ... you need a newer device

On readme.md from ARKitExample project.

"Getting Started

ARKit is available on any iOS 11 device, but the world tracking features that enable high-quality AR experiences require a device with the A9 or later processor."


"available on any device" ;P

On my Xcode9, iOS11 and iPhone 6 not works!

You can fix the crash related to MTLStoreActionMultisampleResolve by changing the antialiasing mode to none in line 64 of ViewController.swift:


sceneView.antialiasingMode = .none


However, once the app runs, it may show you a message about an unsupported configuration depending on your device. I haven't seen any tables or other information mapping ARKit feature support to the different devices other than what's written in Building a Basic AR Experience:


  • On iOS devices with an A9 processor or later, the
    ARWorldTrackingSessionConfiguration
    subclass provides high-precision motion tracking and enables features to help you place virtual content in relation to real-world surfaces.
  • On other devices supported by ARKit, the
    ARSessionConfiguration
    base class provides basic motion tracking that permits slightly less immersive AR experiences.

Anybody have an idea about this crash?


I am using iPAD AIR.

I have used the following code to check the eligibility

if ARSessionConfiguration.isSupported {
              print("Supported")
        } else {
            print("config not supported")
        }


It says "Supported" device. Then it crashed with the following error 😠


017-06-27 19:56:50.705071+0530 ARKitExample[5812:546012] -[MTLTextureDescriptorInternal validateWithDevice:], line 778: error 'MTLTextureDescriptor has invalid pixelFormat (520).'
-[MTLTextureDescriptorInternal validateWithDevice:]:778: failed assertion `MTLTextureDescriptor has invalid pixelFormat (520).'


I changed mode to this one


sceneView.antialiasingMode = .none

Still, It crashes.

I managed to dowload and lauch the ARKit demo app doing this:



1. Comment the following code of ViewController.swift:

        if ARWorldTrackingSessionConfiguration.isSupported {
            /
            resetTracking()
        } else {
            /
            let sessionErrorMsg = "This app requires world tracking. World tracking is only available on iOS devices with A9 processor or newer. " +
            "Please quit the application."
            displayErrorMessage(title: "Unsupported platform", message: sessionErrorMsg, allowRestart: false)
        }


2. Uncomment just the following line:

            resetTracking()


You will still get this error message:

`MTLRenderPassDescriptor MTLStoreActionMultisampleResolve store action for the depth attachment is not supported by device'


3. Stop the running app on Xcode

4. Unplug your device

5. Launch the app from your iPhone (without A9 or A10 processor) 😉


It worked for me on my iPhone6

It would be crashing because of an unsupported texture pack which the app uses and it would cause it to crash meaning you can't use it and the script in the app should also be checked to see if it supports your device because it could be unsupported script type.