mirror of
https://github.com/yattee/yattee.git
synced 2026-07-21 14:52:03 +00:00
Fix tvOS GL render pipeline defects behind A10X IOFence crash
Apple TV 4K 1st gen on tvOS 26 crashes to the home screen with a "blocked by IOFence" gpuEvent at playback start (#949) and stutters with a starved demuxer cache (#947). Defensive fixes in the shared iOS/tvOS OpenGL path: - Drain in-flight GPU work (glFinish) before destroying the renderbuffer, so a pending presentRenderbuffer fence can't hold the CAEAGLLayer IOSurface being torn down or reallocated - Never leave the EAGLContext current on the main thread: framebuffer create/destroy and the background glFinish now unbind on exit, and setup no longer binds the context on main at all - Disable retained backing on tvOS; it exists only for iOS PiP frame capture and adds per-frame IOSurface fence pressure - Report swaps to mpv after each present so display-vdrop (the tvOS default video-sync) gets swap-timing feedback, matching macOS Add verbose-gated diagnostics for remote triage: playback stats every 10s (cache fill/rate, dropped frames, hwdec, avsync) and a rate-limited slow-frame warning in performRender. Addresses #949 and #947
This commit is contained in:
@@ -24,6 +24,10 @@ enum MPVLogging {
|
||||
private static var _lastCheckTime: UInt64 = 0
|
||||
private static let cacheDurationNanos: UInt64 = 1_000_000_000 // 1 second
|
||||
|
||||
/// Whether verbose MPV logging is enabled (cached, safe from any thread).
|
||||
/// Exposed for callers that gate their own logging on the same setting.
|
||||
static var verboseEnabled: Bool { isEnabled() }
|
||||
|
||||
/// Check if verbose logging is enabled (cached for performance).
|
||||
/// Safe to call from any thread.
|
||||
private static func isEnabled() -> Bool {
|
||||
|
||||
Reference in New Issue
Block a user