NVIDIA 3DVision, PTB vbl sync

Hardware:

Alienware R13 (built-in display panel turned off via display settings)

GTX 1060

BenQ XL2720Z 3DVision-ready monitor with built-in emitter, 1920 x 1080, 120Hz, connected to laptop via Mini-DP, set as main display and is the only display listed.

USB IR emitter for NVidia 3DVision

3DVision 2 glasses


Software:

Windows 10

Latest NVIDIA graphics card drivers determined by Windows update driver system

PTB-3 latest non-alpha version

G-streamer 1.2 (already tried 1.4, doesn't work so stuck with version as recommended in DownloadPsychtoolbox routine

NVIDIA Control panel: Triple buffering off, vertical sync on, for both global settings and MATLAB


When running a script calling stereomode 1, which has worked on previous non-hybrid machines running 3D Vision (IR or built-in emitter) Windows 7, DVI-D, Quadro card, I'm still getting vbl sync error abort - skipping sync tests causes MATLAB to crash. On initialising the code the USB IR emitter glows brightly for a brief second or two before the crash occurs, so the code does recognise the emitter.


All NVIDIA test images work in 3D with this setup. The main things that are different in this setup compared to previous are the fact that I'm doing it on a hybrid graphics machine, but the internal display is turned off; on Windows 10; and I'm using Mini-DP for the output. If I unplug the emitter the code runs with PTB trying to do its own thing for frame sequential presentation (which obviously doesn't actually show up in stereo). None of my usual fixes are working for this.


Any thoughts? I haven't yet tried with a DVI-D cable on another machine with the same monitor, but if that's the issue I'm a bit up the creek as I then need to wrangle with university IT to exchange the laptop for a built machine (which is what I asked for in the first place, sigh) as it doesn't have DVI-D input.





XX---In PSYCHTOOLBOX@yahoogroups.com, <madmazda86@...> wrote :

Hi Mario,
Yes, it was me - I was having some trouble replying to the message unfortunately as I have also had with this reply but glad you got it okay. Verbosity 10 indicated some issues requesting realtime priority but otherwise nothing that significant.

However, I have successfully managed to get stereomode 1 working on this system (Windows 7, Quadro K2000, Nvidia 3D Vision 2 IR Emitter). As I suspected, it was a systems setting issue. For the benefit of others, what got it
to work was:

Good!

1) Not checking the 'Enable stereoscopic 3D vision'  box under 'Set up Stereoscopic 3D' on Nvidia Control Panel (per the Pymol instructions mario linked)

-> Makes sense, as that would enable a stereo-emulation meant for Direct3D games which are not actually stereo capable, something not useful at all for research-grade stimulation.

2) Going into Windows Control Panel, System, Advanced system Settings, clicking the 'Advanced' tab, then clicking Settings under 'Performance' and selecting the radio button for 'Adjust for best performance'.

3) In Nvidia Control panel, under Program settings, ensuring MATLAB is using 'Prefer maximum performance' for Power Management Mode and that Vertical Sync is set to 'Use the 3D application setting' (rather than 'On'). (Obviously triple buffering needs to be off too but I had it off this whole time and it was only these other changes that made my program activate the shutter glasses without the sync failure error)

2 & 3 are interesting: That both cpu and gpu dynamic power-management can introduce significant timing glitches is nothing new - the PDF in the PsychDocumentation folder advises to switch into performance modes. Similar stuff can happen on Linux unless one switches into performance mode, cfe. message 21996. That it could become so bad on MS-Windows that it would even cause sync test failures is new to me though.

If you disable any of these things the dreaded 'Synchronisation failure' error returns. Interestingly, even with all of these options enabled, my vbl startline is 1080 and endline is 1079, it just doesn't trigger the sync failure anymore and the experiment still runs successfully with no eye swapping as far as I can tell:

-> The too low endline is expected with Windows +  NVidia drivers. They seem to have some bug that hasn't been fixed in half a decade, but as the "INFO" says it is nothing to be too worried about, unless one needs sub-millisecond accurate visual onset timestamps, in which case --> Linux.

Remaining output looks good.
-mario

PTB-INFO: This is Psychtoolbox-3 for Microsoft Windows, under Matlab 64-Bit (Version 3.0.14 - Build date: Dec 12 2016).
PTB-INFO: Support status on this operating system release: Windows version 6.1 partially supported, but no longer tested at all.
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: Will disable DWM because a regular fullscreen onscreen window is opened -> We want best timing and performance.
PTB-INFO: The detected endline of the vertical blank interval is equal or lower than the startline. This indicates
PTB-INFO: that i couldn't detect the duration of the vertical blank interval and won't be able to correct timestamps
PTB-INFO: for it. This will introduce a very small and constant offset (typically << 1 msec). Read 'help BeampositionQueries'
PTB-INFO: for how to correct this, should you really require that last few microseconds of precision.
PTB-INFO: Btw. this can also mean that your systems beamposition queries are slightly broken. It may help timing precision to
PTB-INFO: enable the beamposition workaround, as explained in 'help ConserveVRAMSettings', section 'kPsychUseBeampositionQueryWorkaround'.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: Quadro K2000D/PCIe/SSE2 :: 4.5.0 NVIDIA 382.05
PTB-INFO: VBL startline = 1080 , VBL Endline = 1079
PTB-INFO: Measured monitor refresh interval from beamposition = 8.333837 ms [119.992743 Hz].
PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.333858 ms [119.992452 Hz]. (50 valid samples taken, stddev=0.031764 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 8.333333 ms [120.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Stereo display via OpenGL built-in frame-sequential stereo requested.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 1025 ...
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus drawing.
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus post-processing (if any).


INFO: PTB's Screen('Flip', 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 2 times out of a total of 1794 flips during this session.

INFO: This number is fairly accurate (and indicative of real timing problems in your own code or your system)
INFO: if you provided requested stimulus onset times with the 'when' argument of Screen('Flip', window [, when]);
INFO: If you called Screen('Flip', window); without the 'when' argument, this count is more of a ''mild'' indicator
INFO: of timing behaviour than a hard reliable measurement. Large numbers may indicate problems and should at least
INFO: deserve your closer attention. Cfe. 'help SyncTrouble', the FAQ section at www.psychtoolbox.org and the
INFO: examples in the PDF presentation in PsychDocumentation/Psychtoolbox3-Slides.pdf for more info and timing tips.

=======================================================

I hope that's helpful to somebody. I tried to include some verbosity 10 output but Yahoo groups won't let me post.