Skip to content

External brightness changes can be delayed by a slow DDC display #72

Description

@DEOWL-kan

What happened

With two external displays connected, brightness changes in Crisp can occasionally take several seconds or tens of seconds to reach the monitor. When one display has a slow or unresponsive DDC/CI channel, brightness changes for the other healthy display are delayed as well.

The slider should respond immediately, and each external display should process DDC brightness changes independently so one failing channel cannot block another monitor.

Steps to reproduce

  1. Connect two AOC U32N10 external displays.
  2. Open Crisp and expand both external display controls.
  3. Adjust brightness repeatedly until one display enters the intermittent slow-DDC state.
  4. While that display is still processing the DDC request, adjust brightness on the other display.
  5. Observe that the second display can wait behind the first request instead of updating independently.

Crisp version

1.5.0

macOS version

macOS 26.5.1 (25F80)

Mac model and chip

MacBook Pro (Mac17,8), Apple M5 Pro

Monitor(s) and how they are connected

Two AOC U32N10 4K displays connected as separate external display links; one landscape and one rotated 90 degrees. macOS System Information does not report the cable or adapter transport for either display.

Anything else

A direct channel probe reproduced the difference clearly: one IOAVServiceReadI2C request failed after 12.131 seconds, while the other display completed the same operation in about 10 ms. Crisp used one global serial DDC queue, so the slow request blocked unrelated external-display brightness work.

A fix is proposed in PR #71.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions