Visual synchronization error with Nvidia GeForce GTX 1070 and Ubuntu 24.04-LTS

Dear Mario,

when running VBLSyncTest, I receive synchronization errors with a GeForce GTX 1070 under Ubuntu 24.04-LTS with the latest PTB Version 3.0.22.3 installed. I used the XOrgConfCreator to setup two displays. However, also with one display the synchronization does not seem to work properly. Do you have any hints how to improve the setup?

The details of the machine are as follows:

Hardware Information:

  • Hardware Model: ASUSTeK COMPUTER INC. PRIME Z270-A
  • Memory: 32.0 GiB
  • Processor: Intel® Core™ i7-7700K × 8
  • Graphics: NVIDIA GeForce GTX 1070
  • Disk Capacity: 3.0 TB

Software Information:

  • Firmware Version: 1302
  • OS Name: Ubuntu 24.04.5 LTS
  • OS Build: (null)
  • OS Type: 64-bit
  • GNOME Version: 46
  • Windowing System: X11
  • Kernel Version: Linux 7.0.0-34-generic

The error messages are:

VBLSyncTest
PTB-INFO: Psychtoolbox license is active on this machine for 318 more days until Sat Aug 14 16:40:55 2027
PTB-INFO: Up to 118 more days of offline use without internet connection, or offline reactivation, are possible until Tue Jan 26 11:22:39 2027
PTB-INFO: The support authentication token would be: 019d77eb-5f25-7938-b667-b79d03aae094

Message to all users from Team Psychtoolbox:
macOS users on Apple Silicon are advised against upgrading to macOS 26 Tahoe
atm. due to Apple Tahoe operating system performance bugs.

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit Intel (Version 3.0.22 - Build date: Aug 10 2026).
PTB-INFO: OS support status: Linux 7.0.0-34-generic Supported.
PTB-INFO: For information about paid support and other commercial services, please type ‘PsychPaidSupportAndServices’.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT license, with some
PTB-INFO: restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.
PTB-INFO: Psychtoolbox and its prebuilt mex files are distributed in the hope that they will be useful, but WITHOUT
PTB-INFO: ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

PTB-INFO: Connected to NVidia GP104 [GeForce GTX 1070] GPU of NV-130 family with 4 display heads.

PTB-WARNING: Querying rasterbeam-position doesn’t work on your setup! (Returns a constant value 0)
PTB-WARNING: This can happen if Psychtoolbox gets the mapping of connected displays to graphics card
PTB-WARNING: outputs wrong. See ‘help DisplayOutputMappings’ for tips on how to resolve this problem.

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA GeForce GTX 1070/PCIe/SSE2 :: 4.6.0 NVIDIA 580.178.04
PTB-INFO: Screen 1 : Window 10 : VBL startline = 1080 : VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback.
PTB-INFO: Timestamps returned by Screen(‘Flip’) will be therefore less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.668153 ms [59.994650 Hz]. (50 valid samples taken, stddev=0.023244 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].

----- ! PTB - WARNING: SYNCHRONIZATION TROUBLE ! -----

One or more internal checks (see Warnings above) indicate that
queries of rasterbeam position are not properly working for your setup.

Psychtoolbox will work around this by using a different timing algorithm,
but it will cause Screen(‘Flip’) to report less accurate/robust timestamps
for stimulus timing.
Read ‘help BeampositionQueries’ for more info and troubleshooting tips.

The refresh interval reported by the operating system is 16.66667 ms.
Measured refresh interval, as reported by “GetFlipInterval” is 16.66815 ms. (nsamples = 0, stddev = 0.00000 ms)
PTB missed 1 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.

Best regards,

Till

You are using a NVidia graphics card, something we explicitly recommend against, if avoidable, as NVidia’s proprietary graphics drivers restrict what PTB can do in sometimes substantial ways, or what I can do to help with problems. Also setup of what works is often less automatic and more fiddling.

That said, in this case the basic timing seems ok, just the proper mapping of screens to display engines - based on a heuristic on NVidia - failed to guess correctly. As the warning messages say, help DisplayOutputMappings explains what to do. Essentially overriding the wrong auto-guessed setting with the proper one you’ll have to find by trial and error.

I’d try something like trying the following command before running PerceptualVBLSyncTest - and adding to the top of your script or such, once you find the right setting:

clear all; Screen('Preference', 'ScreenToHead', 1, 1, crtc); with crtc being 0 or 1 or 2 or 3.

I think a Screen('Preference', 'ScreenToHead', 1) would print the current assignment for screen 1 in the 2nd column as likely [1 ; 1], with the 1 being wrong in at least one row.

-mario