__GL_SYNC_DISPLAY_DEVICE regression from 387.34 to 390.12

Hi,

I have a 3 monitors setup: 2 monitors at 60hz, the third one at 23.976hz.
With driver 387.34 and the attached xorg.conf, launching compiz with:

export __GL_SYNC_DISPLAY_DEVICE="DFP-2"
compiz --replace ccp

allows all things to be perfectly smooth. All compiz animations are displayed at 60hz on 60hz monitors. Films displayed on the third monitor are perfectly synced. And no tearing on all three monitors. As expected replacing “DFP-2” with “DFP-1” (which correspond to the 23.976hz monitor) make all things synchronized to 23.976.

Replacing with driver 390.12 without touching anything else does not behave the same. All is synchronized to the 23.976hz monitor whatever I put in __GL_SYNC_DISPLAY_DEVICE.
xorg.conf.txt (2.11 KB)

I have three more differences observed between 387.34 and 390.12, there is something really wrong with 390.12:

  1. Constant ~30% GPU and MemBW load when Auto profile active and GPU is idle. There is also 3%-6% load when Maximum Performance profile is set. So depending on current core/mem frequencies ? After GPU gets some (real) load the values changed to 0%, then to real load %% and back to 0%. And then again to constant ~30% when no other load.

    For 387.34 normal values is 0% for GPU and 1%-6% for MemBW (compositor+monitoring activity? I’m ok with that, not 30% though).

  2. Got GPU lock while benchmarking new driver. Logged throw ssh and only new string was NVRM:
  3. Got screen flickering while benchmarking further after reboot, then I decided to rollback to 387.34.

I didn’t thought about that before but now I realized I was using some ENV vars in failed tests too:

$ __GL_THREADED_OPTIMIZATIONS=1 __GL_SYNC_TO_VBLANK=0 __GL_YIELD=USLEEP ./test

maybe it’s matter.

Tested 396.18 today, the problem still here. All monitor synced to 23.976hz.
With 387.34 two monitors are synced to 60hz the third is synced to 23.976hz.