Post

Replies

Boosts

Views

Activity

SpriteKit FPS drops significantly on iOS 26.3.1 when touching screen, even in minimal scene
Title: SpriteKit FPS drops significantly on iOS 26.3.1 when touching screen, even in a minimal scene Summary: On a real device running iOS 26.3.1, FPS drops significantly in a very simple SpriteKit scene when touching or moving a finger on the screen. This happens even with a minimal setup where update(_:), touchesBegan, and touchesMoved are not overridden. Because the issue reproduces in a minimal scene, I suspect a performance regression in SpriteKit and/or iOS rather than in app-specific logic. Environment: OS: iOS 26.3.1 Device: iPhone 12 Xcode: 26.3 Build Configuration: Release Framework: SpriteKit FPS measurement: SKView.showsFPS = true Steps to Reproduce: Present a minimal SpriteKit scene. Enable SKView.showsFPS = true. Add only a very small number of nodes to the scene. Do not override update(_:), touchesBegan, or touchesMoved. Repeatedly tap the screen or move a finger around. Actual Result: The scene stays around 60 FPS when idle. FPS drops significantly when touching or moving a finger on the screen. The drop appears to get worse as the node count increases. The issue still reproduces even if touchesMoved is empty or not overridden at all. Expected Result: A minimal scene like this should remain close to 60 FPS even while touching the screen. At minimum, FPS should not drop this much when the app does not perform meaningful touch handling. Notes: Time Profiler does not point to a clear heavy app-specific function; instead, frame time worsens during touch interaction. Since this also reproduces in a minimal scene, I do not believe the root cause is only in my game logic. Similar reports exist describing SpriteKit framerate drops on recent iOS versions, including cases where the issue appears in very simple scenes. Minimal Reproducible Code: import SpriteKit final class TestScene: SKScene { override func didMove(to view: SKView) { backgroundColor = .black scaleMode = .resizeFill let textures = [ SKTexture(imageNamed: "title1"), SKTexture(imageNamed: "title2"), SKTexture(imageNamed: "title3"), SKTexture(imageNamed: "title4"), SKTexture(imageNamed: "title5"), ] let node = SKSpriteNode(texture: textures[0]) node.position = CGPoint(x: size.width * 0.5, y: size.height * 0.5) addChild(node) let anim = SKAction.animate( with: textures, timePerFrame: 8.0 / 60.0, resize: false, restore: false ) node.run(.repeatForever(anim)) } } import UIKit import SpriteKit final class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let skView = SKView(frame: view.bounds) skView.showsFPS = true skView.showsNodeCount = true skView.ignoresSiblingOrder = true skView.preferredFrameRate = 60 view.addSubview(skView) let scene = TestScene(size: skView.bounds.size) skView.presentScene(scene) } }
0
0
43
15h
SpriteKit FPS drops significantly on iOS 26.3.1 when touching screen, even in minimal scene
Title: SpriteKit FPS drops significantly on iOS 26.3.1 when touching screen, even in a minimal scene Summary: On a real device running iOS 26.3.1, FPS drops significantly in a very simple SpriteKit scene when touching or moving a finger on the screen. This happens even with a minimal setup where update(_:), touchesBegan, and touchesMoved are not overridden. Because the issue reproduces in a minimal scene, I suspect a performance regression in SpriteKit and/or iOS rather than in app-specific logic. Environment: OS: iOS 26.3.1 Device: iPhone 12 Xcode: 26.3 Build Configuration: Release Framework: SpriteKit FPS measurement: SKView.showsFPS = true Steps to Reproduce: Present a minimal SpriteKit scene. Enable SKView.showsFPS = true. Add only a very small number of nodes to the scene. Do not override update(_:), touchesBegan, or touchesMoved. Repeatedly tap the screen or move a finger around. Actual Result: The scene stays around 60 FPS when idle. FPS drops significantly when touching or moving a finger on the screen. The drop appears to get worse as the node count increases. The issue still reproduces even if touchesMoved is empty or not overridden at all. Expected Result: A minimal scene like this should remain close to 60 FPS even while touching the screen. At minimum, FPS should not drop this much when the app does not perform meaningful touch handling. Notes: Time Profiler does not point to a clear heavy app-specific function; instead, frame time worsens during touch interaction. Since this also reproduces in a minimal scene, I do not believe the root cause is only in my game logic. Similar reports exist describing SpriteKit framerate drops on recent iOS versions, including cases where the issue appears in very simple scenes. Minimal Reproducible Code: import SpriteKit final class TestScene: SKScene { override func didMove(to view: SKView) { backgroundColor = .black scaleMode = .resizeFill let textures = [ SKTexture(imageNamed: "title1"), SKTexture(imageNamed: "title2"), SKTexture(imageNamed: "title3"), SKTexture(imageNamed: "title4"), SKTexture(imageNamed: "title5"), ] let node = SKSpriteNode(texture: textures[0]) node.position = CGPoint(x: size.width * 0.5, y: size.height * 0.5) addChild(node) let anim = SKAction.animate( with: textures, timePerFrame: 8.0 / 60.0, resize: false, restore: false ) node.run(.repeatForever(anim)) } } import UIKit import SpriteKit final class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let skView = SKView(frame: view.bounds) skView.showsFPS = true skView.showsNodeCount = true skView.ignoresSiblingOrder = true skView.preferredFrameRate = 60 view.addSubview(skView) let scene = TestScene(size: skView.bounds.size) skView.presentScene(scene) } }
Replies
0
Boosts
0
Views
43
Activity
15h