GTX 1060 Vsync Blanking ( psychopy, pyglet, 144 Hz monitor, frame doubling )

Details:

NVIDIA driver version 384.47 (version 375.66 tried as well)

X.Org X Server 1.19.3
Release Date: 2017-03-15
X Protocol Version 11, Revision 0
Build Operating System: Slackware 14.2 Slackware Linux Project Current Operating System:
Linux colour 4.9.35 #2 SMP Fri Jun 30 03:02:48 CDT 2017 x86_64
Kernel command line: BOOT_IMAGE=Linux ro root=802 amd_iommu=on iommu=soft
Build Date: 15 March 2017 04:19:30PM
Current version of pixman: 0.34.0

More at end…

Here’s the problem and it comes and goes with different driver versions and different nvidia GPUs I have used over the last few years. When I track refreshes on CRTs or LCDs with a photodiode, I get 2 identical ‘frames’ of anything I draw. Using Psychopy (pyglet), I draw a white circle in the backbuffer, flip it to the front buffer with vsync, then clear and flip the backbuffer to the front on the next sync.

When the driver/GPU combination is working properly, this is basically alternating white and black frames. When it is not working properly, I get 2 whites, 2 blacks alternating. Other people find this from time to time ( see https://discourse.psychopy.org/t/solved-running-psychopy-in-ubuntu-shows-half-the-normal-refresh-rate/869/8 ). I realize this is an interaction of psychopy and the nvidia driver, but as I said, in the past, some versions of the driver didn’t show this behaviour and others did. I have tried the methods noted in the psychopy forum, but can’t get single frame presentation so far.

redacted from nvidia-bug-report.log.gz :

(II) xfree86: Adding drm device (/dev/dri/card0)
(--) PCI:*(0:1:0:0) 10de:1c02:1043:85b9 rev 161, Mem @ 0xfd000000/16777216, 0xc0000000/268435456, 0xd0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/131072
(II) Open ACPI successful (/var/run/acpid.socket)
(II) LoadModule: "glx"
(II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
        compiled for 4.0.2, module version = 1.0.0
        Module class: X.Org Server Extension
(II) NVIDIA GLX Module  384.47  Sun Jun 25 00:20:20 PDT 2017
(II) LoadModule: "nvidia"
(II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
(II) Module nvidia: vendor="NVIDIA Corporation"
        compiled for 4.0.2, module version = 1.0.0
        Module class: X.Org Video Driver
(II) NVIDIA dlloader X Driver  384.47  Sat Jun 24 23:53:54 PDT 2017
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
(--) using VT number 7

(II) Loading sub module "fb"
(II) LoadModule: "fb"
(II) Loading /usr/lib64/xorg/modules/libfb.so
(II) Module fb: vendor="X.Org Foundation"
        compiled for 1.19.3, module version = 1.0.0
        ABI class: X.Org ANSI C Emulation, version 0.4
(II) Loading sub module "wfb"
(II) LoadModule: "wfb"
(II) Loading /usr/lib64/xorg/modules/libwfb.so
(II) Module wfb: vendor="X.Org Foundation"
        compiled for 1.19.3, module version = 1.0.0
        ABI class: X.Org ANSI C Emulation, version 0.4
(II) Loading sub module "ramdac"
(II) LoadModule: "ramdac"
(II) Module "ramdac" already built-in
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(**) NVIDIA(0): Option "Stereo" "0"
(**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DFP-3"
(**) NVIDIA(0): Option "SLI" "Off"
(**) NVIDIA(0): Option "MultiGPU" "Off"
(**) NVIDIA(0): Option "TripleBuffer" "0"
(**) NVIDIA(0): Option "DamageEvents" "True"
(**) NVIDIA(0): Option "BaseMosaic" "off"
(**) NVIDIA(0): Stereo disabled by request
(**) NVIDIA(0): NVIDIA SLI disabled.
(**) NVIDIA(0): NVIDIA Multi-GPU disabled.

(**) NVIDIA(0): Option "MetaModes" "2560x1440_144 +0+0"

(II) NVIDIA(0): NVIDIA GPU GeForce GTX 1060 3GB (GP106-A) at PCI:1:0:0
(II) NVIDIA(0):     (GPU-0)
(--) NVIDIA(0): Memory: 3145728 kBytes
(--) NVIDIA(0): VideoBIOS: 86.06.3c.00.9f
(II) NVIDIA(0): Detected PCI Express Link width: 16X

 (--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): connected
 (--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): Internal DisplayPort
 (--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): 1440.0 MHz maximum pixel clock

(II) NVIDIA(0): Validated MetaModes:
(II) NVIDIA(0):     "2560x1440_144+0+0"

(--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): connected
(--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): Internal DisplayPort
(--) NVIDIA(GPU-0): BenQ ZOWIE XL LCD (DFP-3): 1440.0 MHz maximum pixel clock

# Attributes:

0/SyncToVBlank=1
0/LogAniso=0
0/FSAA=0
0/TextureClamping=1
0/FXAA=0
0/AllowFlipping=1
0/FSAAAppControlled=1
0/LogAnisoAppControlled=1
0/OpenGLImageSettings=1
0/FSAAAppEnhanced=0


# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
58 structures occupying 2541 bytes.
Table at 0x000ED520.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: American Megatrends Inc.
        Version: F2j
        Release Date: 12/29/2014


Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: Gigabyte Technology Co., Ltd.
        Product Name: 970A-DS3P
        Version: x.x
        Serial Number: To be filled by O.E.M.
        Asset Tag: To be filled by O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To be filled by O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

nvidia-bug-report.log.gz (103 KB)