Persistent synchronization failure, no obvious cause

Hi all,

We have been unsuccessfully dealing with a persistent VBL synchronization problem on our setup (various flavors of the dreaded "PTB - ERROR: SYNCHRONIZATION FAILURE"). This error started happening on a previously functional setup, with no obvious link to a software or hardware change. The experiment code itself hasn't changed. The general setup is simple, with one experimental computer (Mac) linked to a secondary screen for display.

We have tried quite a few steps to resolve this issue, but none has been successful so far. More info below: 

Experimental computer (Mac) Information:
OS X Yosemite (also occurred on OS X Lion)
Graphics:  Intel HD Graphics 3000 384 MB 
Matlab r2015a

Secondary display screen:
Asus HD Monitor (VE248H)

Troubleshooting steps tried, with no success:
-Mirror mode
-Replaced cables
-Connected to a different monitor 
-Updated Psychtoolbox
-Updated the OS X
-Changed resolution of the screens and then changed it back to normal 
-Kernel Driver (wouldn’t download successfully)
-Tried using an experimental computer running Linux instead of the Mac OS experimental computer (Linux- x86_64, GeForce GT 240 graphics, Matlab r2015a)

Any help/hint on how to proceed would be greatly appreciated.

Thanks

lb
Hi Mario,

Thanks a lot for that information.

So, it seems to be fixed, and the fullscreen setting was indeed the culprit. Tests results below. The study also now runs without errors. As far as I understand it, the problem appears solved.

Solution:
Menu -> Preferences -> System Settings -> General -> ‘Disable Composting for Fullscreen Windows’

Disabling composting suppresses the error, while reversing this setting to its previous value restores the error. 

Thanks again for your help! 
Best,
lb

------------------------------------

Test results after implementing the fix:

PerceptualVBLSyncTest()

Visual: No yellow lines, just consistent blinking

 
PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.13 - Build date: Jun 28 2016).
PTB-INFO: Support status on this operating system release: Linux 3.19.0-32-generic Supported.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: NVIDIA Corporation - GT215 [GeForce GT 240] GPU found. Trying to establish low-level access...
PTB-INFO: Connected to NVidia GT215 [GeForce GT 240] GPU of NV-050 family with 2 display heads. Beamposition timestamping enabled.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: GeForce GT 240/PCIe/SSE2 :: 3.3.0 NVIDIA 340.96
PTB-INFO: VBL startline = 1080 , VBL Endline = 1124
PTB-INFO: Measured monitor refresh interval from beamposition = 16.666490 ms [60.000635 Hz].

PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.666179 ms [60.001757 Hz]. (50 valid samples taken, stddev=0.005717 ms.)

PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.


VBLSyncTest()


ans =

     0



PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.13 - Build date: Jun 28 2016).
PTB-INFO: Support status on this operating system release: Linux 3.19.0-32-generic Supported.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: NVIDIA Corporation - GT215 [GeForce GT 240] GPU found. Trying to establish low-level access...
PTB-INFO: Connected to NVidia GT215 [GeForce GT 240] GPU of NV-050 family with 2 display heads. Beamposition timestamping enabled.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: GeForce GT 240/PCIe/SSE2 :: 3.3.0 NVIDIA 340.96
PTB-INFO: VBL startline = 1080 , VBL Endline = 1124
PTB-INFO: Measured monitor refresh interval from beamposition = 16.666510 ms [60.000565 Hz].

PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.666059 ms [60.002186 Hz]. (50 valid samples taken, stddev=0.026180 ms.)

PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
The refresh interval reported by the operating system is 16.66667 ms.
Measured refresh interval, as reported by "GetFlipInterval" is 16.66606 ms. (nsamples = 0, stddev = 0.00000 ms)


ans =

     1

PTB missed 0 out of 600 stimulus presentation deadlines.
One missed deadline is ok and an artifact of the measurement.
PTB completed 0 stimulus presentations before the requested target time.
Have a look at the plots for more details...

Inline image 2Inline image 1Inline image 3Inline image 4

Yep, those results look all good. One optimization you could do if general timing would ever prove insufficient, is to install the linux lowlatency kernel. You'd have to check how to do that on Linux Mint. On Ubuntu it would be something like

sudo apt-get install linux-lowlatency

or

sudo apt-get install linux-lowlatency-lts-vivid

to get the specific low-latency kernel corresponding to the Linux 3.19 kernel your system is currently using, but on Mint it might be different. In general a

apt-cache search linux-lowlatency  | grep Complete

gives a listing of all offerings, Ubuntu 14.04 currently would provide this in response:

linux-lowlatency - Complete lowlatency Linux kernel
linux-lowlatency-lts-utopic - Complete lowlatency Linux kernel
linux-lowlatency-lts-vivid - Complete lowlatency Linux kernel
linux-lowlatency-lts-wily - Complete lowlatency Linux kernel
linux-lowlatency-lts-xenial - Complete lowlatency Linux kernel

with the xenial variant being the most modern one.
However, so far at least visual timing looks good enough.

Has you lab already participated in the PTB user survey? If not, please do so:

http://goo.gl/forms/zfu1OPrMEtyFc3b52

thanks & best,
-mario