Skip to content

DXGI DDA Grabber: LED flickering triggered by mouse movement (QT grabber unaffected) #2002

@gitf3nix

Description

@gitf3nix
  • I confirm that this is an issue rather than a question.

Bug report

Steps to reproduce

  1. Go to Capturing Hardware → Screen Capture
  2. Set "Gefundenes Aufnahmegerät" to DXGI DDA
  3. Enable screen capture, save settings
  4. Move the mouse on an otherwise static desktop → LEDs flicker visibly

Additional tests performed:

  • Switch grabber to QT: LEDs are stable, no flickering (but cursor flickers on desktop — known issue Blinking / flickering cursor with QT screen capture on Windows #1328)
  • Switch back to DXGI DDA: LEDs flicker again on mouse movement
  • Run any effect (bypasses grabber): LEDs perfectly stable, no flickering
  • Change capture frequency from 144 Hz to 25 Hz: no change, LEDs still flicker
  • Change image decimation factor from 8 to 12: no change, LEDs still flicker
  • Windows cursor shadow and cursor trails are both disabled: no change

What is expected?

Mouse movement on a static desktop should not cause visible LED color changes. The QT grabber handles this correctly — LEDs remain stable during mouse movement.

What is actually happening?

Every mouse movement triggers visible LED flickering when using the DXGI DDA grabber. The flickering occurs regardless of capture frequency or decimation settings. This did not happen with the old DDA grabber in version 2.0.16.

The rewritten DDA grabber (introduced in 2.2.0) likely composites the cursor into the captured frame, so every cursor movement produces a slightly different image on an otherwise static desktop. The image processing interprets these minimal pixel differences as color changes and sends them to the LEDs.

A possible fix would be to either:

  • Exclude the pointer/cursor from the DDA capture (skip DXGI_OUTDUPL_POINTER_SHAPE compositing)
  • Ignore frames where only the pointer position changed (check DXGI_OUTDUPL_FRAME_INFO.LastMouseUpdateTime vs. LastPresentTime)

Hardware: NVIDIA RTX 4060 (Laptop, Lenovo Legion 14), Driver 595.76, Monitor 3440x1440 @ 144 Hz, SK6812 RGBW LEDs via WLED on ESP (WiFi, UDP-DDP)

System

Hyperion Server:
- Build:             GitHub-c2fdec28/e8b66a24-1776013369
- Build time:        2026-04-13 00:36:03
- Build type:        Release
- Git Remote:        https://github.com/hyperion-project/hyperion.ng
- Version:           2.2.2-beta.1+nightly20260413
- UI Lang:           de (BrowserLang: de)
- UI Access:         advanced
- Avail Screen Cap.: qt,dda
- Avail Video  Cap.: v4l2
- Avail Audio  Cap.: audio
- Avail Services:    boblight,effectengine,forwarder,flatbuffer,protobuffer,mDNS,SSDP,borderdetection
- Config database:   C:/Users/Marcus/.hyperion/db/hyperion.db
- Database:          read/write
- Mode:              GUI

Hyperion Server OS:
- Distribution:      Windows 11 Version 25H2
- Architecture:      x86_64
- Kernel:            winnt (10.0.26200 (WS: 64))
- Root/Admin:        false
- Qt Version:        6.9.3
- Python Version:    3.14.3
- Browser:           Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions