Subdivision shows in RealityComposerPro but not when loaded in Simulator

Hello,

I am trying to use the subdivision mesh rendering option.

I can see it working in RealityComposerPro:

But not when loading asset and displaying in Simulator:

Using this code:

import SwiftUI
import RealityKit
import RealityKitContent

struct AirspaceView: View {
	
	// MARK: - VIEW BODY
	var body: some View {
		RealityView { content in
	
			if let a = try? await Entity(named: "Models/Test/Test.usdc", in: realityKitContentBundle) {
				content.add(a)
			}
		}
	}
}

Any ideas why?

Answered by DTS Engineer in 824859022

Hello,

See Running your app in Simulator or on a device:

"When running apps in Simulator, some hardware-specific features might not be available. Frameworks that provide access to device-specific features also provide API to tell you when those features are available. Call those APIs and handle the case where a feature isn’t available. To test the feature itself, run your code on a real device."

and Developing Metal apps that run in Simulator (because Metal is "under the hood" here):

"Sometimes, this translation means that Simulator may support fewer features or different implementation limits than an actual Apple GPU. Simulator provides a device instance with capabilities similar to an Apple family 2 GPU (MTLGPUFamily.apple2), as described in the Metal Feature Set Tables. Because Simulator doesn’t support many of the features in more recent Apple family GPUs, consider whether using Simulator is worth the effort for your app based on the Metal features you use."

_ Main takeaway is that although subdivision surfaces are visible in RCP running on Mac they don't appear to be supported by the Apple family 2 GPU in the Simulator.

If the subdivision surfaces aren't rendered on actual device then that's a bug and we'd greatly appreciate a bug report.

Hello,

See Running your app in Simulator or on a device:

"When running apps in Simulator, some hardware-specific features might not be available. Frameworks that provide access to device-specific features also provide API to tell you when those features are available. Call those APIs and handle the case where a feature isn’t available. To test the feature itself, run your code on a real device."

and Developing Metal apps that run in Simulator (because Metal is "under the hood" here):

"Sometimes, this translation means that Simulator may support fewer features or different implementation limits than an actual Apple GPU. Simulator provides a device instance with capabilities similar to an Apple family 2 GPU (MTLGPUFamily.apple2), as described in the Metal Feature Set Tables. Because Simulator doesn’t support many of the features in more recent Apple family GPUs, consider whether using Simulator is worth the effort for your app based on the Metal features you use."

_ Main takeaway is that although subdivision surfaces are visible in RCP running on Mac they don't appear to be supported by the Apple family 2 GPU in the Simulator.

If the subdivision surfaces aren't rendered on actual device then that's a bug and we'd greatly appreciate a bug report.

Subdivision shows in RealityComposerPro but not when loaded in Simulator
 
 
Q