Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

[macOS] Choppy video playback on M4/M2 chips when OSD/UI is hidden #27710

@csrednicki

Description

@csrednicki

Bug report

Describe the bug

There is a persistent issue reported by multiple users on Reddit regarding video playback on Apple Silicon Macs (specifically M4 and M2 chips).

Video playback becomes choppy/stutters significantly when the User Interface (OSD) is not rendering (i.e., when the menu/overlay fades out). As soon as the UI is engaged (mouse moved, subtitles appear, or debug overlay is enabled), the playback becomes smooth again.

This suggests an issue with the rendering loop or power management/display sync when Kodi switches to a "video-only" rendering path on newer Apple Silicon chips.

Expected Behavior

Video playback should remain smooth and consistent regardless of whether the On-Screen Display (OSD) is visible or hidden.

Actual Behavior

  • When starting a video, playback is smooth while the OSD is visible.
  • As soon as the OSD fades out (UI stops rendering), the video becomes choppy/stutters.
  • Engaging the UI (moving the mouse, showing the volume bar, or enabling debug info overlay) immediately fixes the stutter.

Possible Fix

A user on Reddit found a workaround that confirms the theory that the issue is related to the UI rendering path. By forcing Kodi to always render a minimal UI element (a hidden or small pixel), the issue disappears.

The workaround involves adding a dummy label to VideoFullScreen.xml in the skin files:

<control type="label" id="9999">
    <description>Hardcoded dot always visible to force UI render</description>
    <left>1</left>
    <top>1</top>
    <width>500</width>
    <height>50</height>
    <label>.</label>
    <font>font20_title</font>
    <textcolor>FF808080</textcolor>
    <align>left</align>
    <aligny>top</aligny>
</control>

Another user noted that activating Hardware Acceleration (VTB) fixes the stutter, but it breaks Tone Mapping (colors appear washed out/incorrect), making it an inviable solution for HDR content.

To Reproduce

Steps to reproduce the behavior:

  1. Use a Mac with an M4 (Mac Mini, MacBook Air) or M2 chip.
  2. Open Kodi (versions 21.x or 22).
  3. Play a video file (users reported 1080p files specifically struggling, though some 4K works. In my case it was 1080p with AV1 codec).
  4. Wait for the playback OSD to disappear.
  5. Observe stuttering/choppy video.
  6. Move the mouse to bring up the OSD -> Observe playback smoothing out.

Debuglog

Note from the reporter: I am submitting this report on behalf of the community based on detailed findings in the r/kodi subreddit, as this specific M4/M2 issue seems to be unknown to the dev team. If a log is strictly required to keep this open, please let me know, and I will try to direct the affected users here.

The detailed discussion and confirmation from multiple users can be found here:
https://www.reddit.com/r/kodi/comments/1q3v8gz/macos_m4_mac_mini_choppy_video_playback_only_when/

Screenshots

N/A (The issue is video motion stutter, hard to capture in screenshots).

Additional context or screenshots (if appropriate)

  • Affected Hardware: Mac Mini M4, MacBook Air M4, Mac Mini M2.
  • Affected Versions: Kodi 21.3.0 (Omega), Kodi 22 (Piers).
  • Connection: Occurs on local files (USB-C external drive) as well as SMB.
  • Hypothesis: The system might be switching out of Metal rendering or dropping into a lower power state when no UI changes are detected, affecting the frame pacing.

Your Environment

Used Operating system:

  • Android

  • iOS

  • tvOS

  • Linux

  • macOS

  • Windows

  • Windows UWP

  • Operating system version/name: macOS Sequoia / Tahoe (likely, given M4 hardware)

  • Kodi version: 21.3.0 and v22 (Nightly)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Triage: Needed(managed by bot!) issue that was just created and needs someone looking at it

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions