f.lux f.lux forum
    • Recent
    • Popular
    • Register
    • Login

    Adreno X1-85 / Snapdragon X Plus: external-monitor tint requires the internal panel in the display topology; GPU mode renders grayscale at very warm settings

    Windows v4
    2
    2
    6
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hadeutscher
      last edited by

      Two related issues on Windows on ARM. The v4 notes mention workarounds for
      Snapdragon (Adreno) external monitor support, so this may be useful — I have
      a reasonably well-isolated repro.

      Setup

      • Surface Laptop 7, Snapdragon X Plus, Adreno X1-85
      • Windows 11
      • f.lux 4.141
      • External: Dell U2725QE, a Thunderbolt dock monitor connected directly to
        the laptop's TB4 port, so DisplayPort tunneled over Thunderbolt

      Issue 1 — external tint requires the internal panel to be enumerated

      f.lux tints the external monitor correctly, but only while the internal display is part
      of the display topology. Setting the internal panel's brightness to 0 still
      works, so the dependency is on the display being enumerated, not on it being
      lit. Switching to Win+P > "Second screen only" drops the tint on the external
      monitor entirely.

      Issue 2 — GPU mode renders grayscale instead of warm

      At very warm settings with "Use GPU for better quality with very warm colors" enabled, the image goes grayscale rather
      than warm. It looks like the per-channel warm scaling is being lost and what
      remains is a luminance-only transform.

      Context that may help narrow it

      Windows Night Light and the Windows accessibility colour filters (Win+Ctrl+C
      grayscale) both fail completely on this external monitor, in every topology,
      with or without the internal panel active. Those go through the driver's
      per-output colour transform, so that path is evidently unavailable on the
      Adreno's external output.

      f.lux's GPU mode is the only mechanism that tints this display at all, which
      I assume is because it draws pixels rather than requesting a transform from
      the driver. That suggests issue 1 is specific to how the overlay is created
      or positioned, rather than a platform limitation.

      Happy to run tests or collect logs. I can also retest with multiplane overlay
      disabled (OverlayTestMode=5) if that would help rule out a direct-scanout
      bypass in the single-display case.

      Driver info from f.lux:
      Qualcomm Incorporated 31.0.133.1: Qualcomm(R) Adreno(TM) X1-85 GPU (20251109)

      Surface Panel Driver V2, 291 x 194mm, built 2023
      Chromaticities:
      R=0.666992 0.315430
      G=0.304688 0.656250
      B=0.149414 0.057617
      W=0.308594 0.324219
      sRGB gamut: 100%, AdobeRGB gamut: 72%

      Dell U2725QE (TBT HDR), 597 x 336mm, built 2025
      Chromaticities:
      R=0.679688 0.314453
      G=0.257813 0.691406
      B=0.143555 0.049805
      W=0.313477 0.329102
      sRGB gamut: 101%, AdobeRGB gamut: 86%

      Unlimited gamma ramp=1, Internal ramp=0
      Monitor 1 on Qualcomm(R) Adreno(TM) X1-85 GPU
      Has VCGT profile=0, Gamma Ramp works=1
      Profile: Dell_U2725QE_sRGB_v2.icm

      Windows Build: 26200.9457

      herfH 1 Reply Last reply Reply Quote 0
      • herfH
        herf @hadeutscher
        last edited by

        @hadeutscher thanks - from what we can tell, this hardware simply has no support for color controls for external displays. You have found our workaround, which is to look for "two displays active" and turn on our GPU/fallback mode.

        We still have to see if the "clamshell" mode is as easy to detect.

        The bad part about this is the adreno drivers still say they fully support color controls, so we cannot detect it the usual way, we had to list the driver name in the app as an exception.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Copyright © 2014 NodeBB Forums | Contributors