Right, the strange thing about the display timing or timestamping being totally broken as that it only complains when it's placed in a StereoMode. Otherwise the monitor and card run happily at 120Hz in even the most demanding of tasks.
Notably, PerceptualVBLSyncTest is again totally happy without stereomode. With Steremode there appears to be ghosting between the two buffers. There is not any obvious tearing, although the yellow beampos lines tend to separate and get to about 1/4 from the stop of the screen.
As to the blue line signal, the CE4s appear to not be able to take a signal from them at all. The Shuttering never begins, and I believe this is due to the fact that to utilize the blue sync lines there must be something between the graphics card and monitor interpreting the signal, and sending these out via IR in the ER2 emitter. Since we don't have the hardware that sits between monitor and graphics card, the ER2 cannot interpret the signal. Again though, this should be a worse solution than direct from the VESA connector.
Unfortunately we don't have any other cards around with the VESA stereo connector, and it seems hard to find blue-line sync hardware (although I'm working on that). Going to try with a 120Hz LCD and see where we get today, although maybe without optimism!
Debug output for StereoDemo in Verbose mode is as follows, it's a long one!
>> StereoDemo(1)
PTB-DEBUG: In PsychCaptureScreen(): After display capture for screen 1 (Old CGDisplayId 0x3c070c40). Reenumerating all displays...
PTB-DEBUG: In PsychCaptureScreen(): After display capture for screen 1 (New CGDisplayId 0x3c070c40). Reenumeration done.
PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab (Version 3.0.8 - Build date: Sep 9 2010).
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 GNU General Public License (GPL).
PTB-INFO: See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.
PTB-INFO: Using CGL for fullscreen onscreen window creation...
PTB-INFO: Using GLEW version 1.5.3 for automatic detection of OpenGL extensions...
PTB-INFO: Connection to kernel-level vbl handler established (shmem = 0x2356c000).
OpenGL-Extensions are: GL_ARB_transpose_matrix GL_ARB_vertex_program GL_ARB_vertex_blend GL_ARB_window_pos GL_ARB_shader_objects GL_ARB_vertex_shader GL_ARB_shading_language_100 GL_EXT_multi_draw_arrays GL_EXT_clip_volume_hint GL_EXT_rescale_normal GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_gpu_program_parameters GL_EXT_geometry_shader4 GL_EXT_transform_feedback GL_APPLE_client_storage GL_APPLE_specular_vector GL_APPLE_transform_hint GL_APPLE_packed_pixels GL_APPLE_fence GL_APPLE_vertex_array_object GL_APPLE_vertex_program_evaluators GL_APPLE_element_array GL_APPLE_flush_render GL_APPLE_aux_depth_stencil GL_NV_texgen_reflection GL_NV_light_max_exponent GL_IBM_rasterpos_clip GL_SGIS_generate_mipmap GL_ARB_imaging GL_ARB_point_parameters GL_ARB_texture_env_crossbar GL_ARB_texture_border_clamp GL_ARB_multitexture GL_ARB_texture_env_add GL_ARB_texture_cube_map GL_ARB_texture_env_dot3 GL_ARB_multisample GL_ARB_texture_env_combine GL_ARB_texture_compression GL_ARB_texture_mirrored_repeat GL_ARB_shadow GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_pixel_buffer_object GL_ARB_draw_buffers GL_ARB_shader_texture_lod GL_EXT_compiled_vertex_array GL_EXT_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_texture_rectangle GL_ARB_texture_rectangle GL_EXT_texture_env_add GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_texture_lod_bias GL_EXT_abgr GL_EXT_bgra GL_EXT_stencil_wrap GL_EXT_texture_filter_anisotropic GL_EXT_secondary_color GL_EXT_blend_func_separate GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_depth_bounds_test GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_sRGB GL_EXT_blend_equation_separate GL_EXT_texture_mirror_clamp GL_EXT_packed_depth_stencil GL_EXT_bindable_uniform GL_EXT_texture_integer GL_EXT_gpu_shader4 GL_EXT_draw_buffers2 GL_APPLE_flush_buffer_range GL_APPLE_ycbcr_422 GL_APPLE_vertex_array_range GL_APPLE_texture_range GL_APPLE_float_pixels GL_ATI_texture_float GL_ARB_texture_float GL_ARB_half_float_pixel GL_APPLE_pixel_buffer GL_APPLE_object_purgeable GL_NV_point_sprite GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_blend_square GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_fog_distance GL_NV_depth_clamp GL_NV_multisample_filter_hint GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_ATI_texture_mirror_once GL_ATI_texture_env_combine3 GL_ATI_separate_stencil GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod
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 Quadro FX 4800 OpenGL Engine.
Indicator variables: maxcolorattachments = 8, maxrectangletexturesize = 8192, maxnativealuinstructions = 65536.
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.
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=8192): Hardware supports full floating point blending and filtering on 16bpc and 32bpc float format.
PTB-DEBUG: Interrogation done.
PTB-INFO: You are using a multi-display setup (2 active displays):
PTB-INFO: Please read 'help MultiDisplaySetups' for specific information on the Do's, Dont's,
PTB-INFO: and possible causes of trouble and how to diagnose and resolve them.
PTB-INFO: According to the operating system, some of your connected displays do not seem to
PTB-INFO: be switched into mirror mode. For a discussion of mirror mode vs. non-mirror mode,
PTB-INFO: please read 'help MirrorMode'.
PTB-DEBUG: Lastline beampos = 230
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 202
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 100
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 10
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-INFO: Threshold Settings for successfull video refresh calibration are: maxStdDev = 1.000000 msecs, maxDeviation = 10.000000 %, minSamples = 50, maxDuration = 5.000000 secs.
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-DEBUG: Lastline beampos = 14
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 4
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 154
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 154
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 158
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 156
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 164
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 174
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 158
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 160
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 162
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 156
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 160
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 146
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 162
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 146
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 146
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 162
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 152
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 160
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 164
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 150
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Lastline beampos = 148
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: Output of all acquired samples of calibration run follows:
PTB-DEBUG: Sample 0: 0.000000
PTB-DEBUG: Sample 1: 0.008304
PTB-DEBUG: Sample 2: 0.008328
PTB-DEBUG: Sample 3: 0.008330
PTB-DEBUG: Sample 4: 0.008316
PTB-DEBUG: Sample 5: 0.008313
PTB-DEBUG: Sample 6: 0.008324
PTB-DEBUG: Sample 7: 0.008326
PTB-DEBUG: Sample 8: 0.008311
PTB-DEBUG: Sample 9: 0.008318
PTB-DEBUG: Sample 10: 0.008333
PTB-DEBUG: Sample 11: 0.008323
PTB-DEBUG: Sample 12: 0.008298
PTB-DEBUG: Sample 13: 0.008424
PTB-DEBUG: Sample 14: 0.008192
PTB-DEBUG: Sample 15: 0.008317
PTB-DEBUG: Sample 16: 0.008443
PTB-DEBUG: Sample 17: 0.008415
PTB-DEBUG: Sample 18: 0.008113
PTB-DEBUG: Sample 19: 0.008631
PTB-DEBUG: Sample 20: 0.008025
PTB-DEBUG: Sample 21: 0.008440
PTB-DEBUG: Sample 22: 0.008204
PTB-DEBUG: Sample 23: 0.008447
PTB-DEBUG: Sample 24: 0.008191
PTB-DEBUG: Sample 25: 0.008328
PTB-DEBUG: Sample 26: 0.008455
PTB-DEBUG: Sample 27: 0.008184
PTB-DEBUG: Sample 28: 0.008322
PTB-DEBUG: Sample 29: 0.008440
PTB-DEBUG: Sample 30: 0.008178
PTB-DEBUG: Sample 31: 0.008460
PTB-DEBUG: Sample 32: 0.008213
PTB-DEBUG: Sample 33: 0.008290
PTB-DEBUG: Sample 34: 0.008328
PTB-DEBUG: Sample 35: 0.008345
PTB-DEBUG: Sample 36: 0.008293
PTB-DEBUG: Sample 37: 0.008487
PTB-DEBUG: Sample 38: 0.008157
PTB-DEBUG: Sample 39: 0.008327
PTB-DEBUG: Sample 40: 0.008318
PTB-DEBUG: Sample 41: 0.008351
PTB-DEBUG: Sample 42: 0.008466
PTB-DEBUG: Sample 43: 0.008190
PTB-DEBUG: Sample 44: 0.008303
PTB-DEBUG: Sample 45: 0.008450
PTB-DEBUG: Sample 46: 0.008172
PTB-DEBUG: Sample 47: 0.008491
PTB-DEBUG: Sample 48: 0.008164
PTB-DEBUG: Sample 49: 0.008298
PTB-DEBUG: Sample 50: 0.008346
PTB-DEBUG: End of calibration data for this run...
PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA Quadro FX 4800 OpenGL Engine :: 2.0 NVIDIA-1.5.49
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1518 MB of texture memory.
PTB-INFO: VBL startline = 640 , VBL Endline = 640
PTB-INFO: Measured monitor refresh interval from beamposition = 8.321193 ms [120.175080 Hz].
PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.320426 ms [120.186159 Hz]. (50 valid samples taken, stddev=0.113595 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 enabled.
PTB-INFO: Enabling internal blue line sync renderer for quad-buffered stereo...
Hookchain 'LeftFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Hookchain 'RightFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
PTB-DEBUG: Lastline beampos = 234
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
Hookchain 'LeftFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Hookchain 'RightFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
PTB-DEBUG: Lastline beampos = 318
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
Hookchain 'LeftFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Hookchain 'RightFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
PTB-DEBUG: Lastline beampos = 108
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
Hookchain 'LeftFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Hookchain 'RightFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
PTB-DEBUG: Lastline beampos = 640
PTB-DEBUG: At exit of loop: Lastline beampos = 640, Scanline beampos = 640
Hookchain 'LeftFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Hookchain 'RightFinalizerBlitChain' : Slot 0: Id='Builtin:RenderStereoSyncLine' : Builtin-Function : Name= Builtin:RenderStereoSyncLine : Params=
Etc. etc., until this:
PTB-DEBUG: At exit of loop: Lastline beampos = 638, Scanline beampos = 640
PTB-DEBUG: In ScreenCloseAllWindows(): Destroying window 0
PTB-DEBUG: In PsychReleaseScreen(): After display release for screen 1 (Old CGDisplayId 0x3c070c40). Reenumerating all displays...
PTB-DEBUG: In PsychReleaseScreen(): After display release for screen 1 (New CGDisplayId 0x3c070c40). Reenumeration done.
PTB-DEBUG: In PsychCaptureScreen(): After display capture for screen 1 (Old CGDisplayId 0x3c070c40). Reenumerating all displays...
PTB-DEBUG: In PsychCaptureScreen(): After display capture for screen 1 (New CGDisplayId 0x3c070c40). Reenumeration done.
PTB-DEBUG: In PsychReleaseScreen(): After display release for screen 1 (Old CGDisplayId 0x3c070c40). Reenumerating all displays...
PTB-DEBUG: In PsychReleaseScreen(): After display release for screen 1 (New CGDisplayId 0x3c070c40). Reenumeration done.
N.Dots Mean (s) Max (s) %>20ms %>30ms
1000 0.008 0.008 0.00 0.00
If any of this is elucidating I'm sure you'll let me know, thanks for all of your time.
~Michael
--- In psychtoolbox@yahoogroups.com, "Mario" <mario.kleiner@...> wrote:
>
>
>
> --- In psychtoolbox@yahoogroups.com, "mmelnick88" <mmelnick88@> > Neither work-around (alone or together) causes the "Couldn't even collect one single valid flip interval sample! Sanity range checks failed!" error to disappear. I'm not sure how major of an issue this is, but just wanted you to be aware.
> >
>
> Most of the time it means that display timing and timestamping is totally broken and that any animated stimuli will show severe tearing artifacts - and that your goggles shouldn't work. But then they don't work on Windows either where you don't get these errors.
>
> You could also look at PerceptualVBLSynctest([], 1); and see if you get a homogeneous flicker pattern as expected, or something with tearing artifacts.
>
> What is the debug output if you run Screen('Preference','Verbosity', 10); and then the Stereodemo?
>
> > Also OSX does appear to support the sync signal directly from the GPU via VESA connector, as that's how we've been running it. Additionally, we don't see any difference (or a de-sync by the glasses) if you get rid of the blue line sync signal that you've worked in (intensity of 0,0,0).
> >
>
> Ok. If the Vesa connector works then the blue line sync has no function at all.
>
> Two more ideas:
>
> You could try if it works better/worse if you disconnect the Vesa connector and use the blue line sync dignal instead. That would point to some driver bug on os/x which causes the problems. I doubt that Windows is broken that way though, as quadro cards are certainly used by many customers with shutter glasses so this bug would be unlikely to get unnoticed.
>
> You could also try to connnect your crt monitor and goggles/emitter to another mac computer (with a different graphics card) and see if it works there (with the blue line sync method). That way you could check if it is the computer/gpu or the emitter/stereo goggles that are at fault.
>
> > At this point we are looking towards potential different monitor possibilities (DLPs projecting at 360Hz) and whether the RealD glasses are in fact doing their job properly. Thanks for all the suggestions.
> >
> > ~Michael
> >
> >
> >
> >
> >
> >
> >
> >
> > --- In psychtoolbox@yahoogroups.com, "Mario" <mario.kleiner@> wrote:
> > >
> > >
> > >
> > >
> > > --- In psychtoolbox@yahoogroups.com, "mmelnick88" <mmelnick88@> wrote:
> > > >
> > > > Three different bugs, we got lucky!
> > > >
> > > > First off, thanks for all of the suggestions so far. I just spent the last few hours with them and the setup and this is what I've got:
> > > >
> > > > Adding ConserveVRAM with the parameters you suggested does get rid of some of the errors we're throwing, and we're only left with this:
> > > >
> > > > PTB-WARNING: Couldn't even collect one single valid flip interval sample! Sanity range checks failed!
> > >
> > > ...
> > >
> > > this one should have been fixed by one of the workarounds (setting 32768)? Could be that the two workarounds don't like each other. If so, then the one that fixes this one is the more important one. You may even hit a 3rd small graphics bug, present on some gpu's under os/x and some under windows which is usually pretty harmless but may just be enough extra trouble in frame sequential mode to make things tip over.
> > >
> > > The way CE4 and similar devices work is usually:
> > >
> > > a) If your gpu has a 3-pin vesa mini-din stereo connector and the driver supports it, then the drive signals for the emitter are generated by the gpu itself and output via that port. This is the most reliable solution. This is how it should work on windows and linux with your quadro - you did connect the CE4 to that port and set it up in the display control panel, right?
> > >
> > > b) On Apple's os i don't know if that is supported. Usually a method called blue line sync is used. The CE4 gets the timing for the switch from the vsync pulses in the video signal, but the information which eye to open is encoded by ptb in a little blue or white line at the bottom of the screen (the blue sync line).
> > >
> > > Method b) could fail due to the graphics bugs on your system if our workarounds are not able to fix them properly. But method a) should be robust, so if you see ghosting on windows as well, the ghosting is probably due to problems with the ce4/emitter/goggles or phopor decay, not in the computer.
> > >
> > > Anyway, sounds like you should use Windows instead of os/x to rule out most of the computer/os/gpu problems. Our various workarounds are not perfect (that's why they are called workarounds, not bugfixes). If you need to enable multiple of them to get to a kind'a working system, they may interact in ugly and unpredictable ways.
> > >
> > > Maybe you should go to the apple store and ask for a refund. Essentially they sold you a defective product. Given the totally excessive and unjustified price of a Quadro card for the Macintosh, it's almost an insult how poor the quality of their graphics drivers is.
> > > -mario
> > >
> > > >
> > > > We have one Mac Pro running Snow Leopard that did run into the same ghosting problems, so I suspect that whether OS upgrade or bug exchange that might not be the answer. I was hoping to get that same information out of trying it with Windows and ran into similar issues. Notably, the OpenGL test program GLUTStereo also ghosts. Having played around with the SetBlueLineSyncParameters I couldn't elicit any differences in the way the CE4s operated. In fact I thought that the CE4s just grabbed refresh and sync info from the GPU and sent that through IR, but I could be wrong there. I've gotten in touch with RealD to see what they have to say, but at this point, you think we're either at poor phosphor decay on the CRTs or a poor shuttering with the CE4s? Do you think that the sub-msec noise fixed in BeampositionQueries could account for and fix ghosting this obvious?
> > > >
> > > > Thanks again,
> > > >
> > > > ~Michael
> > > >
> > > >
> > > >
> > > > --- In psychtoolbox@yahoogroups.com, "Mario" <mario.kleiner@> wrote:
> > > > >
> > > > >
> > > > >
> > > > > Ok, you are probably hitting three different bugs/problems, courtesy by Apple, NVidia and possibly RealID.
> > > > >
> > > > > 1. The issue (it's not an error, just an info/warning at best) that you see on both Windows and MacOS, is due to some NVidia specific driver bugs for their more recent gpu's, which seem to come and go on and off - one driver release has them, the next not, and so on. This just introduces possibly some < 1 msec noise and some < 1 msec bias into stimulus onset timestamps. You can get rid of the noise (at increased processor load) via...
> > > > >
> > > > > Screen('Preference','ConserveVRAM', 4096);
> > > > >
> > > > > ... and rid of the sub-millisecond bias by some effort as described in help BeampositionQueries.
> > > > >
> > > > > 2. Then we have a vbl syncing bug introduced into recent NVidia graphics drivers by "the iPhone company, in better days known as Apple Computer, maker of high quality operating systems". Only happens in frame sequential stereo mode, which causes all those scary warnings but gets automatically fixed by ptb at the cost of higher processor load. You can enable the bugfix manually and avoid all those scary warnings and the increased startup time via:
> > > > >
> > > > > Screen('Preference','ConserveVRAM', 32768);
> > > > >
> > > > > or to combine fixes for bug 1 and 2 via:
> > > > >
> > > > > Screen('Preference','ConserveVRAM', 32768 + 4096);
> > > > >
> > > > > See help ConserveVRAMSettings for more info.
> > > > >
> > > > > An operating system upgrade, also known as "bug exchange" may also help (or hurt). I can't remember if this got fixed in Snow leopard or not, it is present in versions of Leopard.
> > > > >
> > > > > The last issue would be the ghosting. If it also happens for static stereo stimuli (ie. no animation like in our demos) then it can't be a software/graphics card/operating system/computer bug. Given that it happens on windows as well, you can pretty much rule out computer/gpu problems, so you probably have some problems with either phospor decay or the stereo goggles or the goggles switching too slowly between the left and right eye. From hearsay, lcd panels seem to be much worse wrt. ghosting btw.
> > > > >
> > > > > If your stimulus doesn't cover the lower parts of the screen and the goggle switching is too slow, you could try to move the stereo sync lines slightly upwards on the screen (see help SetStereoBlueLineSyncParameters) at least on os/x, so maybe the glasses get a bit more time for switching, don't know. On Windows i think the nvidia driver itself drives the emitter via a vesa stereo connector, so this isn't applicable. I assume there's also some kind of customer support available from RealID for such issues?
> > > > >
> > > > > -mario
> > > > >
> > > > >
> > > > >
> > > > > --- In psychtoolbox@yahoogroups.com, "mmelnick88" <mmelnick88@> wrote:
> > > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > After banging my head against this one for a while I was hoping to gain a little guidance from those of you directly involved in the stereo support in PTB. We recently set up 2 recent Intel Mac Pros with NVIDIA Quadro 4800s in order to do binocular rivalry without a mirror stereoscope. We're using the CrystalEye4s from RealD and the required E2-emitter, and a variety of different 120Hz CRT monitors that we've used in psychophysical setups until now.
> > > > > >
> > > > > > PTB seems happy on all of our prior programs as well as the demo programs up until you add a stereoMode=1 into the mix, at which point it will report the following (from StereoDemo(1) or ImagingStereoDemo(1):
> > > > > >
> > > > > > 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-WARNING: Couldn't even collect one single valid flip interval sample! Sanity range checks failed!
> > > > > > PTB-WARNING: Could be a system bug, or a temporary timing problem. Retrying the procedure might help if
> > > > > > PTB-WARNING: the latter is the culprit.
> > > > > >
> > > > > > WARNING: VBL Calibration run No. 1 failed. Retrying...
> > > > > > PTB-WARNING: Couldn't even collect one single valid flip interval sample! Sanity range checks failed!
> > > > > > PTB-WARNING: Could be a system bug, or a temporary timing problem. Retrying the procedure might help if
> > > > > > PTB-WARNING: the latter is the culprit.
> > > > > >
> > > > > > WARNING: VBL Calibration run No. 2 failed. Retrying...
> > > > > > WARNING: Will enable VBL busywait-workaround before trying final VBL Calibration run No. 3.
> > > > > > WARNING: This will hopefully work-around graphics driver bugs of the GPU sync-to-retrace mechanism. Cross your fingers!
> > > > > >
> > > > > >
> > > > > > PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA Quadro FX 4800 OpenGL Engine :: 2.0 NVIDIA-1.5.49
> > > > > > PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1527 MB of texture memory.
> > > > > > PTB-INFO: VBL startline = 640 , VBL Endline = 640
> > > > > > PTB-INFO: Measured monitor refresh interval from beamposition = 8.321167 ms [120.175458 Hz].
> > > > > > PTB-INFO: Will use beamposition query for accurate Flip time stamping.
> > > > > > PTB-INFO: Measured monitor refresh interval from VBLsync = 8.321133 ms [120.175940 Hz]. (50 valid samples taken, stddev=0.056703 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 enabled.
> > > > > > PTB-INFO: Using OpenGL GL_TEXTURE_RECTANGLE_EXT extension for efficient high-performance texture mapping...
> > > > > >
> > > > > >
> > > > > > 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 2213 flips during this session.
> > > > > >
> > > > > > In addition, the bleed-through and ghosting to each eye channel is evident. A test of this on Windows results in ghosting that is just as bad with a simpler error of:
> > > > > >
> > > > > > 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.
> > > > > >
> > > > > > I haven't been able to pinpoint just why the addition of the stereoMode is causing trouble with the VBL and beampositions queries. I can't imagine it's lack of resources on either of the Mac Pros, let alone the Quadro 4800 that has 1.5Gb of VRAM. We're currently in the process of attaining a 120Hz LCD to see if the ghosting is caused by slow phosphor decay on the CRTs, but we also tested on a CRT capable of produced 200Hz and saw similar ghosting. Any guidance you could provide would be much appreciated!
> > > > > >
> > > > > > Thanks a million,
> > > > > >
> > > > > > ~Michael
> > > > > >
> > > > >
> > > >
> > >
> >
>