SpriteKit framerate drop on iOS 26.4 (ongoing for months)

I have noticed that the performance drop on SpriteKit-based projects running on iOS 26 is still ongoing

With iOS 26 back in Sep 2025 a framerate problem was introduced. My app was always running smoothly with 60fps even on very old devices suddenly started to stutter with 40fps - and lower on a rather normal iPhone 13.

This problem continued with BETA 26.1 The problem was fixed in 26.2. But 26.3 brought the problem back and its still ongoing with 26.4 of yesterday

This is easily reproducible with a very simple example

//
//  BareboneSpriteKitApp.swift
//  BareboneSpriteKit
//
//  Created by Bernd Beyreuther on 24.02.26.
//

import SwiftUI
import SpriteKit

@main
struct BareboneSpriteKitApp: App {
    var body: some Scene {
        WindowGroup {
            BareboneSceneView()
        }
    }
}

final class BareboneScene: SKScene {
    override func didMove(to view: SKView) {
        size = view.bounds.size
        scaleMode = .resizeFill
        anchorPoint = CGPoint(x: 0.5, y: 0.5)
        backgroundColor = .darkGray

        let  s = SKSpriteNode(color: .cyan, size: CGSize(width: 64, height: 64))
        addChild(s)
        let action = SKAction.rotate(byAngle: .pi, duration: 2)
        s.run(.repeatForever(action))
        
        let  t = SKLabelNode(text: deviceInfoString())
        t.fontSize = 15
        t.position.y = -100
        addChild(t)
    }
}

struct BareboneSceneView: View {
    var body: some View {
        SpriteView(
            scene: BareboneScene(),
            debugOptions: [.showsFPS]
        )
        .ignoresSafeArea()
    }
}

func deviceInfoString() -> String {
    let os = ProcessInfo.processInfo.operatingSystemVersion
    let osString = "iOS \(os.majorVersion).\(os.minorVersion).\(os.patchVersion)"

    let model = UIDevice.current.model // "iPhone", "iPad"
    let machine = {
        var sysinfo = utsname()
        uname(&sysinfo)
        return withUnsafePointer(to: &sysinfo.machine) { ptr -> String in
            ptr.withMemoryRebound(to: CChar.self, capacity: 1) { cptr in
                String(cString: cptr)
            }
        }
    }() // z.B. "iPhone15,2"

    return "Model Identifier: \(model) (\(machine)),  \(osString)"
}

I file a bugreport via Feedback Assistant FB22038921

The problem is no around for such a long time ! This is deeply concerning, because it questions if it is really feasable to continue to develop using Spritekit ?

Answered by DTS Engineer in 888060022

Thank you for filing FB22038921 and for the clear reproducer.

Looking at your bug, it remains open, and we've assigned an engineer to investigate it. Please continue testing your software in new system software updates and beta releases as they become available, and update the status of your bug whenever you do a new test. The most recent beta releases are at https://developer.apple.com/download/.

Thank you for filing FB22038921 and for the clear reproducer.

Looking at your bug, it remains open, and we've assigned an engineer to investigate it. Please continue testing your software in new system software updates and beta releases as they become available, and update the status of your bug whenever you do a new test. The most recent beta releases are at https://developer.apple.com/download/.

SpriteKit framerate drop on iOS 26.4 (ongoing for months)
 
 
Q