VBL Sync not working for NVIDIA A6000 [Paid Support]

Paid Support: WTPJMXZK-2023426175827:1b158fe5c842e3b4622ba79ae240a4bd70f03c6b41f839c85bad77f40e0396fe

I’m trying to vsync my graphics card and display but get the following error (e.g. if run PerceptualVBLSyncTest):

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA RTX A6000/PCIe/SSE2 :: 4.6.0 NVIDIA 525.89.02
PTB-INFO: VBL startline = 1080 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping asfallback.

VBL Sync is necessary as trying to run shutter glasses on display.

Solutions I’ve tried:

  1. All the steps in “help SyncTrouble” and “help BeampositionQueries”

  2. clear all; Screen(‘Preference’, ‘ScreenToHead’, 0, 0, n); for a n of 0, 1, 2, or 3
    from: Beamposition synch problems with Nvidia gpu and Ubuntu 18.04 LTS · Issue #645 · Psychtoolbox-3/Psychtoolbox-3 · GitHub
    I’ve also tried combinations of a 4th number for linux, but unclear what I should be doing

  3. Checking G-SYNC not enabled
    (not present in NVIDIA control panel, and not a feature of this graphics card)

  4. Drivers, Octave, and PsychToolbox should be up to date

Forum discussions I’ve looked at:

Hardware / software:

Linux version: Ubuntu 22.04.2 LTS
Graphics card: RTX A6000
NVIDIA driver: 525.89.02
Octave version: 6.4.0
PsychToolbox version: 3.0.18

Thanks so much, I really appreciate it!!

Paul

Technically, you don’t need high precision timestamping to work just to driver stereo shutter glasses, it only enables some additional timing checks and more precise and robust stimulus onset timestamps. All you need is to connect your glasses/emitter to the graphics card and follow NVidia’s setup instructions to enable frame-sequential stereo mode. Then Psychtoolbox stereomode 1 for native OpenGL quad-buffered stereo should do the trick. We have FrameSequentialStereoTest() to exercise and test shutter glasses for proper sync and to demonstrate the use of the optional param1 parameter in Screen('SelectStereoDrawBuffer', windowPtr [, bufferid] [, param1]);

Ideally you’d not use a NVidia gpu, to avoid much hassle, but a recommended AMD or Intel gpu with open-source drivers, but given this very expensive gpu would be overkill for typical vision science, i assume the gpu is there for some machine learning or other gpu computing?

This is a single X-Screen, single display setup, right?

Your PTB is not the latest, the latest right now is PTB 3.0.19.2. Proper gpu detection support for your NVidia RTX A6000 Ampere family gpu was introduced in PTB 3.0.19.0. You can get the latest PTB from us via the usual UpdatePsychtoolbox, or from NeuroDebian. → Update PTB.

I assume secure boot is disabled in your systems EFI firmware settings, as required for this to work on NVidia gpu’s?

Apart from that, post full output with Screen('Preference','Verbosity', 10); PerceptualVBLSyncTest, a short run of a second is enough, we don’t need redundant output from every single flip inside that script.

[18 out of 30 minutes of paid support used up]

Thanks so much Mario, that’s incredibly useful!

We’re using the GPU for VR (recommended GPU by Varjo), but also in this context to drive Volfoni shutter glasses using 3-pin stereo directly from graphics card (as a Quadro card).

System works incredibly well with LCD display (thanks to PsychToolbox!!), but breaks down with OLED, and hope is that with more accurate timing this might improve.

Yes, it’s a single X-Screen, single display setup. And apologies, just recalibrated NeuroDebian and now gives me 3.0.19.2 rather than 3.0.18.4 it gave me yesterday.

3.0.19.2 doesn’t fix it, and I think the issue is the EFI firmware settings. I disabled Secure Boot, but just realised computer only launches in Legacy BIOS not UEFI, so fixing this now!

Seems to make sense to fix that first, then dive into PerceptualVBLSyncTest if still unresolved.

Thanks so much, I really appreciate all your help on this!

Interesting. The high-end card makes sense, given the Varjo HMD’s are about as high-end and demanding as it gets.

Maybe you want to give the latest Psychtoolbox 3.0.19.2 a spin with the Varjo? The big new feature of PTB 3.0.19 after a year of development is OpenXR support on Linux and Windows for OpenXR VR HMDs, so PTB for Windows should be able to use the Varjo’s. help OpenXR for setup and background info. Demos are e.g., VRHMDDemo, VRHMDDemo1, VRInputStuffTest, ImagingStereoDemo(103), a few others that use PsychVRHMD() functionality. I’d love to hear if it works as expected, although our demos will bore the Varjo to death. So far i’ve verified our driver works well with MonadoXR and SteamVR on Linux and OculusVR and SteamVR on Windows. Tested hardware so far was a Oculus Rift CV-1 + Oculus touch controllers and remot, and a HTC Vive Pro Eye + Vive Wand controllers. I wouldn’t have the funding to even rent a Varjo for testing, or any machine or graphics card powerful enough to drive it, for that matter. The Varjo’s come with their own OpenXR runtime afaik. Would love to see the PTB output when running on a Varjo.

Hmm. How does the breakdown manifest itself? What would be the reasoning that more precise visual onset timestamps would help?

NeuroDebian: Did you manually run PsychLinuxConfiguration and reboot the machine once after installing PTB? This setup script is automatically run when using DownloadPsychtoolbox/UpdatePsychtoolbox/SetupPsychtoolbox on a PTB downloaded from us directly, but it needs to be manually run after a NeuroDebian install. Otherwise your system won’t be configured for PTB to be able to perform low-level access to the NVidia gpu.

Best to show me the full PTB output messages at high verbosity to narrow this down.
-mario

[20 out of 30 minutes of paid support used up]

Hi Mario,

Thanks so much, again, for all your help. I really appreciate it.

[1]. “Maybe you want to give the latest Psychtoolbox 3.0.19.2 a spin with the Varjo?”

Yes, very happy to help. Waiting on replacement headset at moment, but once that’s up and running will report back!

[2]. On shutter glasses working with LCD but not OLED:

“How does the breakdown manifest itself? What would be the reasoning that more precise visual onset timestamps would help?”

Both views seem to be equally visible in the two eyes even though shutter glasses working at 120Hz.

OLED should work with shutter glasses:

Which leads me to think display and shutter glasses out of sync.

Ideally, I’d like to use G-Sync (via PsychtoolBox’s VRRSupport), but first trying VBLSync.

[3]. Beamposition issue still present, but I’ve taken the following steps:

Because my hard drive was partitioned between Linux and Windows, was booting in CSM mode:

“some UEFI implementations immediately switch to the BIOS-based CSM booting upon detecting certain types of partition table on the boot disk, effectively preventing UEFI booting to be performed from EFI system partitions contained on MBR-partitioned disks.”

Which meant “EFI variables are not supported on this system” (tested with “sudo efibootmgr”).

This is now resolved by reformatting hard drive for just Ubuntu. So reinstalled Ubuntu (22.04.2 LTS), Octave (6.4.0), and PsychToolbox (3.0.19.2). G-Sync now present and disabled.

Running PerceptualVBLSyncTest I now get a new error:

PTB-INFO: Failed to enable realtime-scheduling [Operation not permitted]!
PTB-INFO: You need to run the script PsychLinuxConfiguration once, then logout and login again for this to work.

But I’ve run “sudo octave” then “PsychLinuxConfiguration” in the terminal and got:

“Finished. Your system should now be ready for use with Psychtoolbox.
If you encounter problems, try rebooting the machine. Some of the settings only
become effective after a reboot.”

And rebooted.

[4]. This seems to be indicative of problem finding graphics card?

Running “Screen(‘Preference’,‘Verbosity’, 10); PerceptualVBLSyncTest” (attached as txt) I get checks for graphics cards including:

PTB-DEBUG: Checking PCI device [NVIDIA Corporation GA102GL [RTX A6000]] with class x00030000 …

But it ultimately returns:

PTB-INFO: No low-level controllable GPU on screenId 0. Beamposition timestamping and other special functions disabled.

Thanks so much Mario, I really appreciate all your help on this!!

And enjoy your break :slight_smile:

Paul

OUTPUT OF “Screen(‘Preference’,‘Verbosity’, 10); PerceptualVBLSyncTest”:

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under GNU/Octave 64-Bit (Version 3.0.19 - Build date: Apr 25 2023).
PTB-INFO: OS support status: Linux 5.19.0-41-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: For information about paid support, support memberships and other commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DMI3 Registers] with class x00060000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CBDMA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E MM/Vt-d Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOAPIC] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00110100 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Ubox Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller] with class x000c0330 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH Thermal Subsystem] with class x00118000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH CSME HECI #1] with class x00078000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH SATA controller [AHCI mode]] with class x00010601 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #17] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #19] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #1] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #4] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #5] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH PCI Express Root Port #7] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation X299 Chipset LPC/eSPI Controller] with class x00060100 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller] with class x00058000 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series PCH HD Audio] with class x00040300 …
PTB-DEBUG: Checking PCI device [Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller] with class x000c0500 …
PTB-DEBUG: Checking PCI device [ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller] with class x000c0330 …
PTB-DEBUG: Checking PCI device [ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller] with class x000c0330 …
PTB-DEBUG: Checking PCI device [Aquantia Corp. AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion]] with class x00020000 …
PTB-DEBUG: Checking PCI device [Intel Corporation I210 Gigabit Network Connection] with class x00020000 …
PTB-DEBUG: Checking PCI device [ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge] with class x00060400 …
PTB-DEBUG: Checking PCI device [ASPEED Technology, Inc. ASPEED Graphics Family] with class x00030000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E VT-d] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOxAPIC Configuration Registers] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E CHA Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCU Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E PCI Express Root Port A] with class x00060400 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E VT-d] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOxAPIC Configuration Registers] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DECS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E Integrated Memory Controller] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 1] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E DECS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LM Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMS Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E LMDP Channel 2] with class x00088000 …
PTB-DEBUG: Checking PCI device [NVIDIA Corporation GA102GL [RTX A6000]] with class x00030000 …
PTB-DEBUG: Checking PCI device [NVIDIA Corporation GA102 High Definition Audio Controller] with class x00040300 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E VT-d] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E RAS Configuration Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E IOxAPIC Configuration Registers] with class x00080020 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M3KTI Registers] with class x00110100 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M3KTI Registers] with class x00110100 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M3KTI Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M2PCI Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M2PCI Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M2PCI Registers] with class x00088000 …
PTB-DEBUG: Checking PCI device [Intel Corporation Sky Lake-E M2PCI Registers] with class x00088000 …
PTB-INFO: No low-level controllable GPU on screenId 0. Beamposition timestamping and other special functions disabled.
PTB-INFO: Using old-style override-redirect (=1) setup path for onscreen window creation.
PTB-INFO: GLX Visual info depths is 24 bits
PTB-INFO: Not running on Mesa graphics library.
PTB-INFO: Using GLEW version 2.1.0 for automatic detection of OpenGL extensions…
PTB-INFO: Window uses DRI3/Present for Optimus/Prime renderoffload visual stimulus presentation on display gpu.
PTB-INFO: Fixed point precision integer framebuffer enabled.
PTB-INFO: System Frame buffer provides 8 bits for red channel.
PTB-INFO: System Frame buffer provides 8 bits for green channel.
PTB-INFO: System Frame buffer provides 8 bits for blue channel.
PTB-INFO: System frame buffer provides 8 bits for alpha channel, but effective alpha bits depends on imaging pipeline setup, if any.
PTB-DEBUG: PPM file magic is P6
→ Ok

Created by GIMP version 2.10.22 PNM plug-in

PTB-DEBUG: Recognized splash image of 1000 x 750 pixels, maxlevel 255. Loading…

OpenGL-Vendor / renderer / version are: NVIDIA Corporation - NVIDIA RTX A6000/PCIe/SSE2 - 4.6.0 NVIDIA 525.116.03

OpenGL-Extensions are: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_invertedGL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_multiview_tessellation_geometry_shader GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_NVX_shared_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_NV_memory_object_sparse GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_NV_timeline_semaphore GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_deep_texture3D GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_primitive_shading_rate GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shading_rate_image GL_NV_stereo_view_renderingGL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_dirty_tile_map GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_uniform_buffer_std430_layout GL_NV_vdpau_interop GL_NV_vdpau_interop2 GL_NV_vertex_array_range
GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_sysmem_buffer GL_NVX_conditional_render GL_NV_gpu_multicast GL_NVX_progress_fence GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OVR_multiview GL_OVR_multiview2 GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum

PTB-DEBUG: Not running on Mesa graphics library.
PTB-DEBUG: Interrogating Low-level renderer capabilities for onscreen window with handle 10:
Indicator variables: FBO’s 1, ATI_texture_float 1, ARB_texture_float 1, Vendor NVIDIA Corporation, Renderer NVIDIA RTX A6000/PCIe/SSE2.
Indicator variables: maxcolorattachments = 8, maxrectangletexturesize = 32768, maxnativealuinstructions = 65536.
GPU supports non-power-of-two textures.
Basic framebuffer objects with rectangle texture rendertargets supported → RGBA8 rendertargets with blending.
Framebuffer objects support fast blitting between each other.
Framebuffer objects support anti-aliasing via multisampling.
Framebuffer objects support single-pass multisample resolve blits and image rescaling.
Hardware supports floating point textures of 16bpc and 32bpc float format.
Assuming NV30 core or later…
Assuming NV40 core or later (maxcolattachments=8): Hardware supports floating point blending and filtering on 16bpc float format.
Hardware also supports floating point framebuffers of 16bpc and 32bpc float format.
Hardware supports full 32 bit floating point precision shading.
Assuming G80 core or later (maxtexsize=32768): Hardware supports full floating point blending and filtering on 16bpc and 32bpc float format.
Assuming hardware supports native OpenGL primitive smoothing (points, lines).
Float color value 0.5 → fixed point reads back as 127 ==> Truncates.
PTB-Info: Running on ‘The X.Org Foundation’ XServer, Vendor release 12101003.
OML_sync_control indicators: glXGetSyncValuesOML=(nil) , glXWaitForMscOML=(nil), glXWaitForSbcOML=(nil), glXSwapBuffersMscOML=(nil)
OML_sync_control indicators: glxewIsSupported() says 0.
OML_sync_control indicators: glXQueryExtensionsString() says 0.
No support for OpenML OML_sync_control extension.
System supports backbuffer age queries.
PTB-DEBUG: Interrogation done.

RandR: 1920x1080 (0x225) 285.5MHz
h: width 1920 start 1968 end 2000 total 2080 skew 0
v: height 1080 start 1083 end 1088 total 1144
RandR: 1920x1080 (0x225) 285.5MHz
h: width 1920 start 1968 end 2000 total 2080 skew 0
v: height 1080 start 1083 end 1088 total 1144
PTB-DEBUG: glClear splash image top-left reference pixel: 90 0 90
PTB-INFO: Threshold Settings for successfull video refresh calibration are: maxStdDev = 0.200000 msecs, maxDeviation = 10.000000 %, minSamples = 50, maxDuration = 5.000000 secs.
PTB-INFO: Failed to enable realtime-scheduling [Operation not permitted]!
PTB-INFO: You need to run the script PsychLinuxConfiguration once, then logout and login again for this to work.

PTB-DEBUG: Output of all acquired samples of calibration run follows:
PTB-DEBUG: Sample 0: 0.000000
PTB-DEBUG: Sample 1: 0.008365
PTB-DEBUG: Sample 2: 0.007983
PTB-DEBUG: Sample 3: 0.009654
PTB-DEBUG: Sample 4: 0.007590
PTB-DEBUG: Sample 5: 0.007704
PTB-DEBUG: Sample 6: 0.008332
PTB-DEBUG: Sample 7: 0.009419
PTB-DEBUG: Sample 8: 0.007639
PTB-DEBUG: Sample 9: 0.008335
PTB-DEBUG: Sample 10: 0.008627
PTB-DEBUG: Sample 11: 0.008032
PTB-DEBUG: Sample 12: 0.007943
PTB-DEBUG: Sample 13: 0.008338
PTB-DEBUG: Sample 14: 0.008397
PTB-DEBUG: Sample 15: 0.008256
PTB-DEBUG: Sample 16: 0.008318
PTB-DEBUG: Sample 17: 0.008410
PTB-DEBUG: Sample 18: 0.008350
PTB-DEBUG: Sample 19: 0.008325
PTB-DEBUG: Sample 20: 0.008248
PTB-DEBUG: Sample 21: 0.008346
PTB-DEBUG: Sample 22: 0.008312
PTB-DEBUG: Sample 23: 0.008330
PTB-DEBUG: Sample 24: 0.008335
PTB-DEBUG: Sample 25: 0.008329
PTB-DEBUG: Sample 26: 0.008335
PTB-DEBUG: Sample 27: 0.008332
PTB-DEBUG: Sample 28: 0.008335
PTB-DEBUG: Sample 29: 0.008424
PTB-DEBUG: Sample 30: 0.008250
PTB-DEBUG: Sample 31: 0.008341
PTB-DEBUG: Sample 32: 0.008381
PTB-DEBUG: Sample 33: 0.008270
PTB-DEBUG: Sample 34: 0.008391
PTB-DEBUG: Sample 35: 0.008374
PTB-DEBUG: Sample 36: 0.009187
PTB-DEBUG: Sample 37: 0.007392
PTB-DEBUG: Sample 38: 0.008327
PTB-DEBUG: Sample 39: 0.008340
PTB-DEBUG: Sample 40: 0.008331
PTB-DEBUG: Sample 41: 0.008333
PTB-DEBUG: Sample 42: 0.008339
PTB-DEBUG: Sample 43: 0.008329
PTB-DEBUG: Sample 44: 0.008337
PTB-DEBUG: Sample 45: 0.008329
PTB-DEBUG: Sample 46: 0.008342
PTB-DEBUG: Sample 47: 0.008328
PTB-DEBUG: Sample 48: 0.008440
PTB-DEBUG: Sample 49: 0.008328
PTB-DEBUG: Sample 50: 0.008283
PTB-DEBUG: Sample 51: 0.008284
PTB-DEBUG: Sample 52: 0.008449
PTB-DEBUG: Sample 53: 0.008224
PTB-DEBUG: Sample 54: 0.008333
PTB-DEBUG: Sample 55: 0.008335
PTB-DEBUG: Sample 56: 0.008336
PTB-DEBUG: Sample 57: 0.008334
PTB-DEBUG: Sample 58: 0.008333
PTB-DEBUG: Sample 59: 0.008335
PTB-DEBUG: Sample 60: 0.008770
PTB-DEBUG: Sample 61: 0.007903
PTB-DEBUG: Sample 62: 0.008427
PTB-DEBUG: Sample 63: 0.008242
PTB-DEBUG: Sample 64: 0.008330
PTB-DEBUG: Sample 65: 0.008383
PTB-DEBUG: Sample 66: 0.008287
PTB-DEBUG: Sample 67: 0.008331
PTB-DEBUG: Sample 68: 0.008349
PTB-DEBUG: Sample 69: 0.008426
PTB-DEBUG: Sample 70: 0.008231
PTB-DEBUG: Sample 71: 0.008436
PTB-DEBUG: Sample 72: 0.008234
PTB-DEBUG: Sample 73: 0.008334
PTB-DEBUG: Sample 74: 0.008335
PTB-DEBUG: Sample 75: 0.008347
PTB-DEBUG: Sample 76: 0.008325
PTB-DEBUG: Sample 77: 0.008330
PTB-DEBUG: Sample 78: 0.008335
PTB-DEBUG: Sample 79: 0.008439
PTB-DEBUG: Sample 80: 0.008236
PTB-DEBUG: Sample 81: 0.008341
PTB-DEBUG: Sample 82: 0.008320
PTB-DEBUG: Sample 83: 0.008431
PTB-DEBUG: Sample 84: 0.008239
PTB-DEBUG: Sample 85: 0.008337
PTB-DEBUG: Sample 86: 0.008343
PTB-DEBUG: Sample 87: 0.008339
PTB-DEBUG: Sample 88: 0.008324
PTB-DEBUG: Sample 89: 0.008425
PTB-DEBUG: Sample 90: 0.008239
PTB-DEBUG: Sample 91: 0.008440
PTB-DEBUG: Sample 92: 0.008229
PTB-DEBUG: Sample 93: 0.008344
PTB-DEBUG: Sample 94: 0.008323
PTB-DEBUG: Sample 95: 0.008433
PTB-DEBUG: Sample 96: 0.008245
PTB-DEBUG: Sample 97: 0.008327
PTB-DEBUG: Sample 98: 0.008435
PTB-DEBUG: Sample 99: 0.008332
PTB-DEBUG: Sample 100: 0.008284
PTB-DEBUG: Sample 101: 0.008287
PTB-DEBUG: Sample 102: 0.008439
PTB-DEBUG: Sample 103: 0.008246
PTB-DEBUG: Sample 104: 0.008319
PTB-DEBUG: Sample 105: 0.008336
PTB-DEBUG: Sample 106: 0.008336
PTB-DEBUG: Sample 107: 0.008331
PTB-DEBUG: Sample 108: 0.008429
PTB-DEBUG: Sample 109: 0.008240
PTB-DEBUG: Sample 110: 0.008448
PTB-DEBUG: Sample 111: 0.008327
PTB-DEBUG: Sample 112: 0.008325
PTB-DEBUG: Sample 113: 0.008237
PTB-DEBUG: Sample 114: 0.008333
PTB-DEBUG: Sample 115: 0.008345
PTB-DEBUG: Sample 116: 0.008326
PTB-DEBUG: Sample 117: 0.008772
PTB-DEBUG: Sample 118: 0.007896
PTB-DEBUG: Sample 119: 0.008385
PTB-DEBUG: Sample 120: 0.008364
PTB-DEBUG: Sample 121: 0.008266
PTB-DEBUG: Sample 122: 0.008344
PTB-DEBUG: Sample 123: 0.008416
PTB-DEBUG: Sample 124: 0.008233
PTB-DEBUG: Sample 125: 0.008334
PTB-DEBUG: Sample 126: 0.008336
PTB-DEBUG: Sample 127: 0.008431
PTB-DEBUG: Sample 128: 0.008241
PTB-DEBUG: Sample 129: 0.008394
PTB-DEBUG: Sample 130: 0.008268
PTB-DEBUG: Sample 131: 0.008397
PTB-DEBUG: Sample 132: 0.008380
PTB-DEBUG: Sample 133: 0.008326
PTB-DEBUG: Sample 134: 0.008307
PTB-DEBUG: Sample 135: 0.008266
PTB-DEBUG: Sample 136: 0.008335
PTB-DEBUG: Sample 137: 0.008429
PTB-DEBUG: Sample 138: 0.008277
PTB-DEBUG: Sample 139: 0.008404
PTB-DEBUG: Sample 140: 0.008227
PTB-DEBUG: Sample 141: 0.008333
PTB-DEBUG: Sample 142: 0.008450
PTB-DEBUG: Sample 143: 0.008215
PTB-DEBUG: Sample 144: 0.008252
PTB-DEBUG: Sample 145: 0.008415
PTB-DEBUG: Sample 146: 0.008337
PTB-DEBUG: Sample 147: 0.008421
PTB-DEBUG: Sample 148: 0.008365
PTB-DEBUG: Sample 149: 0.008219
PTB-DEBUG: Sample 150: 0.008332
PTB-DEBUG: Sample 151: 0.008338
PTB-DEBUG: Sample 152: 0.008335
PTB-DEBUG: Sample 153: 0.008438
PTB-DEBUG: Sample 154: 0.008338
PTB-DEBUG: Sample 155: 0.008222
PTB-DEBUG: Sample 156: 0.008338
PTB-DEBUG: Sample 157: 0.008336
PTB-DEBUG: Sample 158: 0.008329
PTB-DEBUG: Sample 159: 0.008333
PTB-DEBUG: Sample 160: 0.008340
PTB-DEBUG: Sample 161: 0.008375
PTB-DEBUG: Sample 162: 0.008291
PTB-DEBUG: Sample 163: 0.008435
PTB-DEBUG: Sample 164: 0.008236
PTB-DEBUG: Sample 165: 0.008345
PTB-DEBUG: Sample 166: 0.008425
PTB-DEBUG: Sample 167: 0.008233
PTB-DEBUG: Sample 168: 0.008443
PTB-DEBUG: Sample 169: 0.008231
PTB-DEBUG: Sample 170: 0.008330
PTB-DEBUG: Sample 171: 0.008429
PTB-DEBUG: Sample 172: 0.008240
PTB-DEBUG: Sample 173: 0.008336
PTB-DEBUG: Sample 174: 0.008764
PTB-DEBUG: Sample 175: 0.007907
PTB-DEBUG: Sample 176: 0.008334
PTB-DEBUG: Sample 177: 0.008375
PTB-DEBUG: Sample 178: 0.008367
PTB-DEBUG: Sample 179: 0.008289
PTB-DEBUG: Sample 180: 0.008335
PTB-DEBUG: Sample 181: 0.008300
PTB-DEBUG: Sample 182: 0.008335
PTB-DEBUG: Sample 183: 0.008337
PTB-DEBUG: Sample 184: 0.008332
PTB-DEBUG: Sample 185: 0.008333
PTB-DEBUG: Sample 186: 0.008334
PTB-DEBUG: Sample 187: 0.008347
PTB-DEBUG: Sample 188: 0.008327
PTB-DEBUG: Sample 189: 0.008435
PTB-DEBUG: Sample 190: 0.008244
PTB-DEBUG: Sample 191: 0.008321
PTB-DEBUG: Sample 192: 0.008344
PTB-DEBUG: Sample 193: 0.008327
PTB-DEBUG: Sample 194: 0.008332
PTB-DEBUG: Sample 195: 0.008338
PTB-DEBUG: Sample 196: 0.008336
PTB-DEBUG: Sample 197: 0.008333
PTB-DEBUG: Sample 198: 0.008448
PTB-DEBUG: Sample 199: 0.008314
PTB-DEBUG: Sample 200: 0.008251
PTB-DEBUG: Sample 201: 0.008305
PTB-DEBUG: Sample 202: 0.008360
PTB-DEBUG: Sample 203: 0.008326
PTB-DEBUG: Sample 204: 0.008362
PTB-DEBUG: Sample 205: 0.008309
PTB-DEBUG: Sample 206: 0.008336
PTB-DEBUG: End of calibration data for this run…

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA RTX A6000/PCIe/SSE2 :: 4.6.0 NVIDIA 525.116.03
PTB-INFO: 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 = 8.332242 ms [120.015716 Hz]. (206 valid samples taken, stddev=0.199777 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 8.334653 ms [119.981003 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Support for fast OffscreenWindows enabled.
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.
PTB-DEBUG: Swaprequest too close to last swap vbl (0.000399 secs) or between forbidden scanline 1 and 50. Delaying…
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.
PTB-DEBUG: Swaprequest too close to last swap vbl (0.000424 secs) or between forbidden scanline 1 and 50. Delaying…
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.
RandR: 1920x1080 (0x225) 285.5MHz
h: width 1920 start 1968 end 2000 total 2080 skew 0
v: height 1080 start 1083 end 1088 total 1144
PTB-DEBUG: Swaprequest too close to last swap vbl (0.001009 secs) or between forbidden scanline 1 and 50. Delaying…
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.
PTB-DEBUG: GLX_BACK_BUFFER_AGE_EXT == 2 after swap completion.

[And continues like this until I exit]

Many things here:

First, try PsychLinuxConfiguration + logout + login again, launching octave from a terminal window (without sudo). The script will ask for your admin password at appropriate times, calling sudo as needed. Usually you don’t want to run octave or matlab with sudo, as it potentially screws up file ownerships, e.g., if it stores its own config files (e.g., the Octave/Matlab command history or settinga) with ownership “root” then, instead of your user name. Or what also might have happened is that because octave was launched sudo the PsychLinuxConfiguration script might have misidentified your user account as ‘root’ and created permissions for realtime priority and for membership in the “psychtoolbox” Unix user group for the ‘root’ user instead of your own user account name. If you type id in a terminal and don’t get “psychtoolbox” listed as one of the groups you are a member of, then that might be because of that.

→ The general PTB design is to make it not necessary to run matlab or octave with sudo if all the configuration steps completed successfully.

I also think the booting in BIOS mode wasn’t necessarily a problem: The one thing that prevents low-level access by default is EFI secure boot, but if your machine booted with BIOS CSM, iow. no EFI, then there also wasn’t any EFI secure boot enabled. Anyhow, doesn’t hurt to use modern EFI boot now. Also, PTB never made it to the point where it could fail due to EFI secure boot or such, according to the output.

The reason it doesn’t recognize your NVidia as low-level controllable is a peculiar one - I think we haven’t had this one yet: According to the following output …
" PTB-DEBUG: Checking PCI device [ASPEED Technology, Inc. ASPEED Graphics Family] with class x00030000"

…, there is a 2nd display controller in your machine, a very primitive and basic ASPEED chip, which is usually only found in server machines for remote maintenance or for a maintenance technician to connect a very simple display monitor in a server room. My suspicion is that that chip is not disabled on your machine and gets marked by the BIOS or EFI firmware as “VGA boot gpu” - the one used during machine powerup and initial boot for display. This throws off PTB’s gpu detection logic, as if no gpu is explicitely selected (via the PsychTweak('UseGPUIndex', gpuindex); command in a multi-gpu machine), PTB will choose the VGA boot gpu as the proper one.

You could either execute PsychTweak(‘UseGPUIndex’, 0); first, to force use of the NVidia. This might fix the beamposition timestamping. Or if you don’t have any need for that primitive ASPEED display chip, there’s probably somewhere a EFI firmware setting to disable it completely, so it will disappear from the system.

I assume your OLED monitor, and previously that LCD display, is connected to the NVidia, not to some other output connector on your machine - which would be that primitive ASPEED chip?

What’s the output of xrandr --listproviders and the content of the ~/.local/share/xorg/Xorg.0.log` ? If the X-Server would also decide to choose the ASPEED as the primary gpu, that could cause quite lots of performance problems.

Btw. for stereo shutter goggles you almost certainly do not want to use G-Sync or have it enabled → It should be off. That would likely screw up the stereo shutter timing for good, as such goggles need a very predictable and fixed frame duration and frame cycle, so they can sync up the phase of their own switching cycle to the switching cycle of the display.

Btw. one thought wrt. the stereo goggles breaking down on OLED: I haven’t looked at how your specific model of stereo goggles works, and there are different working principles for such stereo shutters, but one non-computer related problem could be if your goggles depend on the presence of a polarizing light filter on the display monitor? A LCD display by design/by the way a LCD works, necessarily emits polarized light, but an OLED monitor doesn’t do that. So if the goggles somehow would depend on the photons from the monitor being polarized, they would possibly fail to do their shuttering job when pointed towards an OLED monitor?

Also: we have FrameSequentialStereoTest as a test and demo on how to deal with different frame-sequential stereo setups and their quirks.

Makes also sense to post PTB output when you use frame-sequential stereo mode 1, to make sure you are in fact using the right mode of operation.

I may state the obvious here, but it does need setup in a custom xorg.conf setting afaiu, cfe. Option "Stereo" "integer" section in:
https://download.nvidia.com/XFree86/Linux-x86_64/525.116.03/README/xconfigoptions.html

I think mode Option "Stereo" "3" is what you’d want.

-mario

[60 minutes of out 30 minutes of paid-for support used → License used up.]

Dear Mario,

That’s absolutely amazing!!! I really appreciate all your help on this.

[1]. ASPEED chip now disabled in BIOS, and Beamposition queries working perfectly, and “PsychLinuxConfiguration” rerun without problems (“id” returns “psychtoolbox”).

Thanks so much, I would never have spotted, because everything looked perfect in my xorg.conf file (and nvidia-settings):

Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BusID “PCI:101:0:0”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
SubSection “Display”
Depth 24
EndSubSection
Option “metamodes” “1920x1080 { AllowGSYNC=Off }”
Option “Stereo” “3”
EndSection

[2]. Checking “xrandr –listproviders” and Xorg.0.log now, after disabling Aspeed chip, and everything looks great. “xrandr –listproviders” output:

Providers: number : 1
Provider 0: id: 0x37f cap: 0x1, Source Output crtcs: 4 outputs: 8 associated providers: 0 name:NVIDIA-0

And no mention of Aspeed chip in Xorg.0.log

[3]. And thank you so much for the tips on sudo, GSYNC, and OLEDs, and stereo settings, they are invaluable :blush: Some manufacturers (LG) putting their own polarisers on their gaming monitor OLEDs causing further problems with shutter glasses. I wanted to get timing issue sorted, so I’d know that any remaining issues were hardware problems!

Honestly, thanks so much Mario for this all, it’s all incredibly useful. I hope you have a well deserved break, and thank you so much for all your help,

Paul

Great, all looking good. Case closed wrt. timing.

I assume you tested the stereo goggles on exactly the same machine/graphics card/OS etc. successfully with the LCD monitor, and unsuccessfully with the OLED? In that case i’d expect it to be more of a hw or monitor ↔ stereo goggle interaction problem than a software problem, although it was good to rule out timing/timestamping problems.

One thing to look at, as shown in the FrameSequentialStereoTest.m script, is if it makes sense to specify that extra argument to Screen('SelectStereoDrawBuffer'); that selects if a ‘Flip’ should execute on even frames, odd frames or if it doesn’t matter. Different graphics cards and drivers vary in how they handle stimulus onset of a stereo pair in frame-sequential stereo mode. Ie. Does the flip to a new stereo image pair happen always when the present of a left-eye image is about to happen, or always on the right-eye, or even in the middle of a stereo cycle? If one flips at high rate that could cause weird artifacts if each stereo pair is not presented for a full cycle a la (L1R1, L2R2, …) but instead something like (L1R2L2R2 or L1R2L3R4…). Specifying that parameter will make ptb try to time flips itself so integrity of a stereo pair is preserved. Technically there is a hardware frame counter that increments each refresh cycle and it allows selection if a flip should happen on a even cycle count odd cycle count or whenever, the idea being that a stereo driver will always assign left eye to even cycles, and right eye on odd cycles - or vice versa. FrameSequentialStereoTest.m tries to help you figure out if that parameter is needed at all, or what the proper setting would be and how well/stable frame-seq stereo works, e.g., to prevent sudden inversion. Now with a gpu advertising native frame-sequential stereo support one would hope the driver takes care of reliable operation.

But if the same PTB + OS + NVidia driver + graphics card + PC + video output port worked fine with a LCD connected, i’d assume some hw interaction problem between the OLED and goggles, all else the same.

-mario

Thanks so much for this advice Mario, I really appreciate it.

I had to return the OLED before I had a chance to run it with the updated timing (the polariser meant I couldn’t see anything through the glasses unless glasses / screen turned 90 agrees), but I share your concern that this is all pointing to a hardware problem.

Reached out to some people who’ve seemed to get active shutter glasses and OLEDs working to see if they have hardware recommendations, and then will give it another shot.

Will definitely keep you posted, and thanks so much again!

Hi Mario, hope you had a good vacation!

I switched motherboards on this computer and the VBL syncing problem arose again.

I’ve checked that (1) Secure Boot not enabled, and (2) GSYNC not enabled, and (3) tried moving around ports on the GPU for the monitor as suggested in VBL Sync help.

I’ve updated DigiStore receipt: 6L22MQA7/VW2TKNMQ

Would it be a good idea to run “Screen(‘Preference’,‘Verbosity’, 10); PerceptualVBLSyncTest” to get your thoughts. Versions I’m currently using:

GPU NVIDIA RTX A6000
Ubuntu version 22.04.2.LTS
Octave version 6.4.0
Psychtoolbox version 3.0.19.2

Psychtoolbox seems to recognise GPU:
"OpenGL-Renderer is NVIDIA Corporation : : NVIDIA RTX A6000/PCIe/SSE2 : : 4.6.0 NVIDIA 535.86.05

Thanks so much, I really appreciate it!

Yes, indeed, thanks. First proper vacation in over 15 years.

Yep, one extra hour of paid support.

Yes please. A short run of a second is enough to get the gist of it. As you switched the motherboard, did you also recreate the xorg conf file, so it adapts to the changed hardware, e.g., PCI bus ids of the NVidia card?

Same config apart from the motherboard, only the NVidia driver seems to have received and upgrade. Single display setup?

-mario