Psychtoolbox-3 / Psychtoolbox-3

Psychophysics Toolbox Version 3 (PTB-3) is a free set of Matlab and GNU Octave functions for vision and neuroscience research.
http://www.psychtoolbox.org
434 stars 224 forks source link

Compatibility with OS X 10.10 Yosemite #214

Closed saltthehash closed 8 years ago

saltthehash commented 9 years ago

I just got a new MacBook Pro and I am running Yosemite and it seems like Psychtoolbox-3 is not fully compatible... When can we expect an update to make psychtoolbox compatible? Thanks.

dcnieho commented 9 years ago

did you update ptb? whats not compatible?

On Wed, Oct 22, 2014 at 2:40 AM, shandelman116 notifications@github.com wrote:

I just got a new MacBook Pro and I am running Yosemite and it seems like Psychtoolbox-3 is not fully compatible... When can we expect an update to make psychtoolbox compatible? Thanks.

— Reply to this email directly or view it on GitHub https://github.com/Psychtoolbox-3/Psychtoolbox-3/issues/214.

saltthehash commented 9 years ago

It's a brand new computer so I just installed the version of ptb available now. I ran ScreenTest and got an error. However I noticed the following line in the output:

PTB-INFO: Support status on this operating system release: OSX version 10.10 is not supported.

Here is the full output that I get when I try to run ptb:

ScreenTest PTB-INFO: Running on OSX 10.9+ - Enabling protection against AppNap and other evils.

* ScreenTest: Testing Screen 0 *

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Oct 5 2014). PTB-INFO: Support status on this operating system release: OSX version 10.10 is not 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: Always using Cocoa for fullscreen windows, to work around graphics driver bugs in OSX and because Apple forces us to do so. PTB-INFO: Presentation timing and timestamp precision is not yet known for this configuration on most Apple machines, so check your results. PTB-INFO: Installation of the PsychtoolboxKernelDriver is strongly recommended if you care about precise visual PTB-INFO: onset timestamping or timing. See 'help PsychtoolboxKernelDriver' for installation instructions.

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA GeForce GT 750M OpenGL Engine :: 2.1 NVIDIA-10.0.43 310.41.05f01 PTB-INFO: Renderer has 2048 MB of VRAM and a maximum 2048 MB of texture memory. PTB-INFO: VBL startline = 900 , VBL Endline = -1 PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate. PTB-INFO: Measured monitor refresh interval from VBLsync = 16.678678 ms [59.956791 Hz]. (297 valid samples taken, stddev=0.543419 ms.) PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing! Please read 'help SyncTrouble' for information about how to solve or work-around the problem. You can force Psychtoolbox to continue, despite the severe problems, by adding the command Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen See error message printed above.

Error in ScreenTest (line 15) w = Screen('OpenWindow',screen);

TiasNM commented 9 years ago

I'm having the same problem on my Macbook Pro (2010) running Mavericks 10.9.

ScreenTest PTB-INFO: Running on OSX 10.9+ - Enabling protection against AppNap and other evils.

* ScreenTest: Testing Screen 0 *

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Oct 19 2014). PTB-INFO: Support status on this operating system release: OSX 10.9 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: Always using Cocoa for fullscreen windows, to work around graphics driver bugs in OSX and because Apple forces us to do so. PTB-INFO: Presentation timing and timestamp precision is not yet known for this configuration on most Apple machines, so check your results. PTB-INFO: Installation of the PsychtoolboxKernelDriver is strongly recommended if you care about precise visual PTB-INFO: onset timestamping or timing. See 'help PsychtoolboxKernelDriver' for installation instructions.

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA GeForce 320M OpenGL Engine :: 2.1 NVIDIA-8.24.16 310.90.9.05f01 PTB-INFO: Renderer has 256 MB of VRAM and a maximum 238 MB of texture memory. PTB-INFO: VBL startline = 800 , VBL Endline = -1 PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate. PTB-INFO: Measured monitor refresh interval from VBLsync = 16.675559 ms [59.968003 Hz]. (298 valid samples taken, stddev=0.531320 ms.) PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing! Please read 'help SyncTrouble' for information about how to solve or work-around the problem. You can force Psychtoolbox to continue, despite the severe problems, by adding the command Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen See error message printed above.

Error in ScreenTest (line 15) w = Screen('OpenWindow',screen);

iandol commented 9 years ago

You need to install the Kernel driver first:

>> help PsychtoolboxKernelDriver

I use this script to do this for me:

https://gist.github.com/iandol/7401460033852a3c4406

I do notice that PTB is much more variable in throwing a ! PTB - ERROR: SYNCHRONIZATION FAILURE ! in Yosemite compared to Mavericks, it can do it even with the kernel driver installed one time, but a sca and then it all runs fine.

saltthehash commented 9 years ago

Okay, I installed it. Still getting the same response from matlab though. I even tried restarting my computer, and then I tried to manually load the kernel with the following command in terminal:

sudo kextload /System/Library/Extensions/PsychtoolboxKernelDriver.kext

I got this as a response:

/System/Library/Extensions/PsychtoolboxKernelDriver.kext failed to load - (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).

Any ideas?

dcnieho commented 9 years ago

See the mailing list on how to solve this, it has just been discussed the past few days.

On Wed, Oct 22, 2014 at 11:22 AM, shandelman116 notifications@github.com wrote:

Okay, I installed it. Still getting the same response from matlab though. I even tried restarting my computer, and then I tried to manually load the kernel with the following command in terminal:

sudo kextload /System/Library/Extensions/PsychtoolboxKernelDriver.kext

I got this as a response:

/System/Library/Extensions/PsychtoolboxKernelDriver.kext failed to load

  • (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).

    Any ideas?

— Reply to this email directly or view it on GitHub https://github.com/Psychtoolbox-3/Psychtoolbox-3/issues/214#issuecomment-60031519 .

saltthehash commented 9 years ago

Is there a link to that you could post?

iandol commented 9 years ago

You need to enable kext dev mode before you can use non-signed kexts in Yosemite, there is lots of info on this as this yosemite change broke lots of kext hacks like trim support on 3rd party SSDs etc. In terminal:

sudo nvram boot-args="kext-dev-mode=1"

...then reboot. This is all clearly explained in (matlab):

>> help PsychtoolboxKernelDriver
saltthehash commented 9 years ago

Just tried that command, restarted, and tried loading the driver again. This time I didn't get an error from trying to manually load it, so I thought it was going to work. But it didn't, and I'm still getting the same error when running ScreenTest. Ian, my help file for PsychtoolboxKernelDriver does not include that command to enable kext dev mode, nor does it have any mention of dev mode or Yosemite.

iandol commented 9 years ago

OK, the latest version of the beta contains the changes to PsychtoolboxKernelDriver help file, so thats why you may not have seen them: https://github.com/Psychtoolbox-3/Psychtoolbox-3/commit/9d414e7acbd2679f03c827d31047a6281dad84fd

If you use this command in terminal what do you get?

kextstat -b PsychtoolboxKernelDriver 

And, you need to use sudo to unzip into /System/Library/Extensions, so your permissions should look like this (root wheel):

/System/Library/Extensions/PsychtoolboxKernelDriver.kext:
total 0
drwxr-xr-x    3 root  wheel   102 26 Aug 16:43 .
drwxr-xr-x  239 root  wheel  8126 22 Oct 10:37 ..
drwxr-xr-x    4 root  wheel   136 26 Aug 16:43 Contents

All I can say is the kernel driver installs OK for me on at least 2 different machines.

saltthehash commented 9 years ago

When I use that command I get:

Index Refs Address            Size       Wired      Name (Version) <Linked Against>
  130    0 0xffffff7f82df1000 0xa000     0xa000     PsychtoolboxKernelDriver (1.1) <12 4 3>

I did the sudo into that directory as per the instructions. I'm not 100% sure how to pull up the permissions, but from what I understand, would I use the following commands?:

cd /System/Library/Extensions/PsychtoolboxKernelDriver.kext
ls -l

That gives me the following:

total 0
drwxr-xr-x  4 root  wheel  136 Aug 26 01:43 Contents

It's very strange, because the driver worked a few times randomly again. I tried running a "hello world" test script and it worked twice but failed the other several times I ran it.

iandol commented 9 years ago

OK, so it looks like the kext is installed OK. The problem sounds a Yosemite+PTB one, do you always get the same error from PTB or do you get different sync errors each time? It's hard for me to test because I'm getting HID crashes in Yosemite: https://github.com/Psychtoolbox-3/Psychtoolbox-3/issues/215

saltthehash commented 9 years ago

Here is what I get every time it doesn't work (because it randomly does work but not often):

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA GeForce GT 750M OpenGL Engine :: 2.1 NVIDIA-10.0.43 310.41.05f01
PTB-INFO: Renderer has 2048 MB of VRAM and a maximum 2048 MB of texture memory.
PTB-INFO: VBL startline = 900 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.737483 ms [59.746139 Hz]. (299 valid samples taken, stddev=1.544770 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.
kleinerm commented 9 years ago

The kernel driver doesn't help with "Synchronization failure", once you managed to load it - which you apparently did. Iff PTB makes it beyond the initial tests, it can help to improve robustness against some other runtime OSX bugs, ie., detecting and working around some OSX bugs that only show at runtime, and to greatly improve timestamp precision under load. Iff PTB fails the sync tests, it can sometime help to diagnose why it failed the sync tests - to aid in troubleshooting, e.g., detecting Retina displays. But if your systems timing is so broken it won't make it even through the sync tests, then nothing helps. It simply means the system is unsuitable for precisely timed visual stimulation, and possibly also broken wrt. vsync.

Your experience with OSX 10.9 on 2010 MBP matches mine - it is borderline unuseable. I hoped OSX 10.10 would improve this, but apparently it has become even worse, judging from reports so far. I only tested 10.10 the first time yesterday on a 2012 MacMini with Intel HD-4000 graphics and timing was so spectacularly bad, it was as bad as the worst MS-Windows systems i ever saw. Like variations of +/- 3 msecs from the expected value, while the system was doing nothing demanding at all. The same machine booted under Linux had a variation of +/- 10 microseconds ~ over 300 times less noisy and almost identical to the theortical optimum performance for that graphics hardware.

OSX has just become a bad system for visual neuroscience and the downward slope has become steeper with 10.8 -> 10.9 ->10.10 as far as i can see so far.

Btw. the "supported" system version is the one i develop and test with, so you can kind of expect that the performance is as good as it gets. I don't expect 10.10 performance to become much better once i switch to it and drop 10.9 support. There's just almost nothing left we could do to improve things and most of the workarounds we had for past OSX versions have become ineffective thanks to the always backward incompatible changes Apple makes to their "operating system".

Upgrading to Linux is strongly recommended, e.g., *buntu 14.04-LTS. I just tested a variety of Macs with KUbuntu 14.04-LTS and after proper configuration they all worked rather well. -mario

saltthehash commented 9 years ago

Interesting mario. I have a MBP mid-2014 w/ retina display, is the retina display a problem for PTB?? Should I just get ubuntu and try to install it w/ bootcamp perhaps? I've been using my recently reformatted MBP mid-2009 w/ OS X 10.9 and PTB has been working just fine on that, but its been annoying to have to carry around 2 computers with me at school... So if you think ubuntu might be a better way for me to be running PTB, I might just try it out. However, its not like I will be running subjects on either of my MBPs, but I just want it to be usable so I can continue to learn how to use PTB. What would you recommend?

kleinerm commented 9 years ago

Retina displays are incompatible with anything that wants to achieve proper visual stimulus timing, due to the way OSX implements their support. Only if you drive them at their true native resolution will it sort of work. Apples display settings tool doesn't offer true resolution as then their GUI (icons, text etc.) will become tiny and hard to use. There's some 3rd party tools like SwitchResX to set native resolution if you have good eyes for everyday use of the machine.

But my MacBookPro 2010 doesn't have a Retina displays and still awful timing with NVidia + 10.9.5, so even the best case is pretty awful.

Of couse if you don't use your machines for actual data collection you can just disable the sync tests and high precision timestamping and be done.

But Linux is the only long term solution i can see and that i will support properly, so learning how to use it is a good idea anyway, e.g., KUbuntu 14.04-LTS got a lot of testing from me on various Macs lately. I won't invest much effort anymore into trying to patch up Apples latest bugs and breakage, that would be just like trying to pump water out of the Titanic.

kleinerm commented 9 years ago

Some more things to test - on non-Retina, or Retina with the fixed video mode setting:

OSXCompositorIdiocyTest - fails on many NVidia cards on 10.9, would be interesting to know if it also fails on 10.10. If that one fails then the machine is unuseable for anything that requires trustworthy timing, with no way to fix or work around it.

On 2012 MacMini + Intel HD graphics, that test passes on 10.10, but timing is still spectacularly bad, so that's probably not a bug, just the OS reaching a new all time low in timing behaviour.

saltthehash commented 9 years ago

I just ran OSXCompositorIdiocyTest and it failed with the same synchronization issue as ScreenTest and any other related Screen() command. How do I disable the synch tests and high precision timestamping? I will not be running any subjects on this computer... I am simply just trying to learn PTB-3 more on here (collecting actual data will only be happening in my institution's lab). Or could I just run it on Ubuntu and get around having to do that?

I actually installed Ubuntu 14.04 last night using Parallels Desktop. I was able to successfully install Matlab, and then I proceeded to download the NeuroDebian package (listed my OS as Ubuntu 14.04, selected the nearest mirror). I put the commands in terminal and it seemed like it worked, I updated my package index, ran "sudo apt-get install matlab-psychtoolbox-3" and again it seemed like it worked. But when I go open matlab and try running ScreenTest or any other PTB-3 function, it doesn't recognize it as if PTB-3 was never installed. I tried running "sudo apt-get install linux-lowlatency" as well to see if that would solve anything and nothing. I've tried so many times and now I'm just getting really frustrated. I must be doing something wrong because I am just completely unfamiliar with using Linux. Any suggestions? And would this somehow "resolve" my retina problem?

kleinerm commented 9 years ago

PTB tells you how to disable the tests each time it fails them. Read the output carefully. ptb3matlab in Linux starts Matlab with Psychtoolbox added to the Matlab path. Again, read instructions carefully, it's explained on the NeuroDebian webpage. "sudo apt-get install octave-psychtoolbox-3" is also worth a try, to see how a Matlab free world could look like - no more license and activations and license servers and stuff...

Running PTB inside a virtual machine will get you nowhere. VM's are incompatible with good timing and the low level hardware access we need.

Running Linux on your machine would likely solve your Retina problems, as it just treats the Retina panel as a high resolution panel. With a NVidia card on 14.04 LTS you'll need to install either an optimized nouveau open-source driver for PTB, which is not yet shipping with 14.04 but will probably within a month or two, or get the driver from me, or install a special prototype driver repository, or install the proprietary NVidia graphics driver.

saltthehash commented 9 years ago

Okay cool, got that to work on OS X. Might just do that for now... or I might install ubuntu if I find that its hard to work with. But like I said I'm not running any subjects so maybe skipping the synchronization is the best way for me. Thanks a lot!

kleinerm commented 9 years ago

So a new PTB beta is out. This one now is "supported" on OSX 10.10 Yosemite, support for all older OSX versions is hereby cancelled. Now "supported" just means i have Yosemite on my main development and testing machine - my private MBP, it got some testing with 10.10, and i may feel some sympathy with people suffering from 10.10 as much as i did already during the last few days. It doesn't mean i will expend great effort to fix Apples brokeness, just a little bit more effort than nothing. Upgrading to Linux for a well supported system is still recommended.

My experience with Yosemite so far, apart from the most awful upgrade experience i ever had with an operating system, as far as Psychtoolbox is concerned:

  1. All the bugs and problems which were present on 10.9.5 Mavericks are still there with zero improvement.
  2. Additionally timing is now even worse on the same hardware. I wasted another day unsuccessfully trying to do something about it. I give up. Here is one thing that did help on that MacMini 2012 with Intel HD-4000 graphics and the most spectacularly bad timing ever: Plug in a 2nd display, but don't use it for anything. This seems to somehow coerce the power management into being less shitty. Display timing went from completely broken to bearable after that step. Even after unplugging the display timing stayed good, so apparently two separate Apple power management bugs cancelling each other out. After a reboot of the machine the miserable timing was back, so rinse wash repeat...

There are also forum posts out there about killing Apples power management driver, which may or may not help with such problems and may or may not screw up your machine or cause hardware damage due to overheating. I'm not going to try it. Stuff like this:

http://www.insanelymac.com/forum/topic/266036-guide-edit-applegraphicspowermanagementkext-to-unleash-nvidias-gtx-570580-full-power-and-save-energy-at-the-same-time/

or simply removing the AGPM kext file...

  1. In other news, now that PTB only needs to support OSX 10.8 and later, i could add some Retina display support by making use of some OSX >= version 10.8 API's. This is only tested in OSX Retina simulator, not on a real display - i don't have any. When PTB now detects an onscreen window is displayed on a Retina display, it will use some compatibility mode that ideally should give you the same behaviour and roughly the same (maybe a bit worse) graphics performance, but it should fix the visual onset timing and timestamping problems - or at least make it them no longer worse than the timing problems you have on a non-Retina display. A new PsychImaging() task 'UseRetinaResolution', or alternative manual use of PTB's Panelfitter via 'UseDisplayRotation', allows to make use of the full resolution of a Retina panel - twice the horizontal and vertical resolution, four times the pixels on the screen. Use of the PsychImaging task 'UsePanelFitter' allows fine grained control of the tradeoff between getting high resolution output and the corresponding high GPU load and potential impact on performance.

-mario

kcrowley1 commented 9 years ago

I have been sifting through this thread line by line, hoping that something would resolve my issue, but I don't seem to be having any success. I'm running Matlab 2014 on Yosemite 10.10.1 (MacBook Air).

I have followed all the instructions relating to the KernelDriver, and see to have successfully loaded it:

kcrowley$ kextstat -b PsychtoolboxKernelDriver Index Refs Address Size Wired Name (Version) 113 0 0xffffff7f80de8000 0xa000 0xa000 PsychtoolboxKernelDriver (1.1) <12 4 3>

I have rebooted the machine, cleared Screen() and no change. I have even tried to force PTB to continue using the recommended Screen('Preference', 'SkipSyncTests', 1); However, still, nothing runs. I am trying to run the basic demos here (Totally Minimal Demos). I get errors every single time.

Error using Screen See error message printed above.

Error in PsychImaging (line 1913) [win, winRect] = Screen('OpenWindow', screenid, clearcolor, winRect, pixelSize, numbuffers, stereomode, multiSample, imagingMode, specialFlags, clientRect);

Error in demo2 (line 44) [window, windowRect] = PsychImaging('OpenWindow', screenNumber, grey);

The machine is literally a week old and we never anticipated this level of issue. This machine is only being used to create the tests, not to run them with subjects - so even getting PTB to a point where the tests could be designed would be enough. I have followed all the steps/advice on this thread and on the help files in PTB but nothing is improving the situation. Any advice would be most appreciated.

dxjones commented 9 years ago

Does your MacBook have a "retina" display? If so, that could be the issue.

Using an external display may get you a functional PTB setup, at least for developing stimuli.

-- David

On Tuesday, December 23, 2014, kcrowley1 notifications@github.com wrote:

I have been sifting through this thread line by line, hoping that something would resolve my issue, but I don't seem to be having any success. I'm running Matlab 2014 on Yosemite 10.10.1 (MacBook Air).

I have followed all the instructions relating to the KernelDriver, and see to have successfully loaded it:

kcrowley$ kextstat -b PsychtoolboxKernelDriver Index Refs Address Size Wired Name (Version) 113 0 0xffffff7f80de8000 0xa000 0xa000 PsychtoolboxKernelDriver (1.1)

I have rebooted the machine, cleared Screen() and no change. I have even tried to force PTB to continue using the recommended Screen('Preference', 'SkipSyncTests', 1); However, still, nothing runs. I am trying to run the basic demos here (Totally Minimal Demos). I get errors every single time.

Error using Screen See error message printed above.

Error in PsychImaging (line 1913) [win, winRect] = Screen('OpenWindow', screenid, clearcolor, winRect, pixelSize, numbuffers, stereomode, multiSample, imagingMode, specialFlags, clientRect);

Error in demo2 (line 44) [window, windowRect] = PsychImaging('OpenWindow', screenNumber, grey);

The machine is literally a week old and we never anticipated this level of issue. This machine is only being used to create the tests, not to run them with subjects - so even getting PTB to a point where the tests could be designed would be enough. I have followed all the steps/advice on this thread and on the help files in PTB but nothing is improving the situation. Any advice would be most appreciated.

— Reply to this email directly or view it on GitHub https://github.com/Psychtoolbox-3/Psychtoolbox-3/issues/214#issuecomment-67944316 .

kcrowley1 commented 9 years ago

Hi David,

Thanks for the reply. No, it's not a retina display. Maybe an external display might be the only option. It would be great to find another solution though. Thanks for the tip!

iandol commented 9 years ago

You are not showing the full error so it's hard to know what the problem may be. Use a gist to share a full response from running e.g. GratingDemo or even ScreenTest...

With my Screen('Preference', 'SkipSyncTests', 2) enabled I've been having no problems recently with my retina MBP and Yosemite for basic development; Mario did a great job of patching things up.

mattrjohnson commented 9 years ago

+1 to Mario's solution that plugging in an external monitor (even if you then unplug it again before ever running Matlab/PTB) solves the issue enough to pass sync tests. (This is on a mid-2012 MacBook Air, Intel graphics, no Retina display.) Certainly not ideal, but good enough for my own usage cases.

kcrowley1 commented 9 years ago

Sorry! Full error:

PTB-INFO: Connection to Psychtoolbox kernel support driver instance #0 (Revision 1) established.
PTB-INFO: Disconnecting from kernel driver instance #0 for detected Intel GPU for safety reasons. setenv('PSYCH_ALLOW_DANGEROUS', '1') to override.
PTB-INFO: Running on OSX 10.9+ - Enabling protection against AppNap and other evils.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Nov  5 2014).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

PTB-INFO: OpenGL-Renderer is Intel Inc. :: Intel HD Graphics 5000 OpenGL Engine :: 2.1 INTEL-10.0.86
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 900 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.668034 ms [59.995077 Hz]. (298 valid samples taken, stddev=0.723761 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen
See error message printed above.

Error in PsychImaging (line 1913)
            [win, winRect] = Screen('OpenWindow', screenid, clearcolor, winRect, pixelSize, numbuffers, stereomode,
            multiSample, imagingMode, specialFlags, clientRect);

Error in demo1 (line 31)
[window, windowRect] = PsychImaging('OpenWindow', screenNumber, grey);

Thanks for the external monitor advice!

iandol commented 9 years ago

Are you sure you've set SkipSyncTests > 0, as that output suggests otherwise.

kcrowley1 commented 9 years ago

Hi all,

Sincere apologies about the delay in getting back to you on this - other fires to put out etc!

So I have tried the external monitor, again running OSXCompositorIdiocyTest() but no luck with that either.

@iandol I followed the necessary steps and thought I had - followed the instructions as per the help docs - I must be missing something!

Here is what I get now:

>> OSXCompositorIdiocyTest()

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Nov  5 2014).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

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-INFO: OpenGL-Renderer is Intel Inc. :: Intel HD Graphics 5000 OpenGL Engine :: 2.1 INTEL-10.0.86
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1050 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.680880 ms [59.948874 Hz]. (296 valid samples taken, stddev=0.720398 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen
See error message printed above.

Error in OSXCompositorIdiocyTest (line 67)
  win = Screen('Openwindow', testScreen, 0);

Sorry about the n00b-ness! Thought it would be a straightforward matter to get the toolbox running for development purposes. Thanks for the help.

kcrowley1 commented 9 years ago

Not sure if this helps - but I just unloaded and deleted the driver again and tried re-installing PsychtoolboxKernelDriver.kext again.

I get:

kcrowley$ kextstat -b PsychtoolboxKernelDriver
Index Refs Address            Size       Wired      Name (Version) <Linked Against>
   85    0 0xffffff7f80de8000 0xa000     0xa000     PsychtoolboxKernelDriver (1.1) <12 4 3>

I then followed the instructions in the help file again- rebooted, cleared the Screen and added Screen('Preference', 'SkipSyncTests', 1); to the top of the 'demo1' script, as advised. I ran it again.

This time I got a large yellow warning sign, followed by a blank grey screen, nothing happening and then the following error:

>> demo1
PTB-INFO: Connection to Psychtoolbox kernel support driver instance #0 (Revision 1) established.
PTB-INFO: Disconnecting from kernel driver instance #0 for detected Intel GPU for safety reasons. setenv('PSYCH_ALLOW_DANGEROUS', '1') to override.
PTB-INFO: Running on OSX 10.9+ - Enabling protection against AppNap and other evils.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Nov  5 2014).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

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-INFO: OpenGL-Renderer is Intel Inc. :: Intel HD Graphics 5000 OpenGL Engine :: 2.1 INTEL-10.0.86
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1050 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.674860 ms [59.970517 Hz]. (56 valid samples taken, stddev=0.600782 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

PTB-INFO: Support for fast OffscreenWindows enabled.

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 4 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.

WARNING: This session of your experiment was run by you with the setting Screen('Preference', 'SkipSyncTests', 1).
WARNING: This means that some internal self-tests and calibrations were skipped. Your stimulus presentation timing
WARNING: may have been wrong. This is fine for development and debugging of your experiment, but for running the real
WARNING: study, please make sure to set Screen('Preference', 'SkipSyncTests', 0) for maximum accuracy and reliability.
dxjones commented 9 years ago

Hi,

You're getting kicked out because the VBLsync during startup sees the stddev is 0.72 msec, which it concludes is too large and it aborts.

A potential workaround is to skip this test.

Screen('Preference','SkipSyncTests',1);

This will at least get you further, though you may encounter another issue.

I would also invite you to try my code here:

https://github.com/dxjones/MeasureFlipInterval

Try running it like this: (which skips the VBL Sync Test at startup)

MeasureFlipInterval(1)

I have never run my code on a system that PTB claims has no beam position queries, so I am curious to see what happens on your machine. Please cut-and-paste your timing results from the command window and send them to me by email.

-- David Jones

On Tue, Jan 27, 2015 at 12:01 PM, kcrowley1 notifications@github.com wrote:

Hi all,

Sincere apologies about the delay in getting back to you on this - other fires to put out etc!

So I have tried the external monitor, again running OSXCompositorIdiocyTest() but no luck with that either.

@iandol https://github.com/iandol I followed the necessary steps and thought I had - followed the instructions as per the help docs - I must be missing something!

Here is what I get now:

OSXCompositorIdiocyTest()

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Nov 5 2014). PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX. PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

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-INFO: OpenGL-Renderer is Intel Inc. :: Intel HD Graphics 5000 OpenGL Engine :: 2.1 INTEL-10.0.86 PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory. PTB-INFO: VBL startline = 1050 , VBL Endline = -1 PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate. PTB-INFO: Measured monitor refresh interval from VBLsync = 16.680880 ms [59.948874 Hz]. (296 valid samples taken, stddev=0.720398 ms.) PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz]. PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing! Please read 'help SyncTrouble' for information about how to solve or work-around the problem. You can force Psychtoolbox to continue, despite the severe problems, by adding the command Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen See error message printed above.

Error in OSXCompositorIdiocyTest (line 67) win = Screen('Openwindow', testScreen, 0);

Sorry about the n00b-ness! Thought it would be a straightforward matter to get the toolbox running for development purposes. Thanks for the help.

— Reply to this email directly or view it on GitHub https://github.com/Psychtoolbox-3/Psychtoolbox-3/issues/214#issuecomment-71684309 .

kleinerm commented 9 years ago

@kcrowley1 please ignore what @dxjones told you. He has conclusively proven that he doesn't even have the most rudimentary understanding of the issue, but an impressive amount of confidence into his understanding of the issue. It would be nicer if he would only potentially ruin his own work, as sad as that would be, and not try to also ruin others work as well by giving utterly misguided advice, or waste my time by just not taking any input:

Here is the relevant thread on the Psychtoolbox forum - or one of them - marvel at the mindblowing reasoning in there:

https://groups.yahoo.com/neo/groups/PSYCHTOOLBOX/conversations/messages/18629

I considered deleting his misguided advice, but sometimes bad examples are also something one can learn of.

Apart from the measures explained otherwise in this GitHub issue conversation, one thing that might work on your Intel HD-5000 gpu is to switch the resolution of your display to some random video mode (ie. not the default resolution) and then after a few seconds back to its original setting. That forth-and-back switch seems to potentially temporarily "fix" the problem on at least a few OSX machines until the machine is rebooted in which case you have to rinse, wash & repeat.

You should run OSXCompositorIdiocyTest after confirming the above hack helped to get rid of the sync failures as another measure of caution. If you really care about timing you should also always verify your setup at least once with external hardware measurement equipment like photo-diodes, Datapixx devices etc. after each hardware or operating system upgrade.

I haven't tested the one macMini on which this video mode switching hack worked with external measurement equipment, because i a) don't have time for it atm. and b) there are various other bugs in current OSX which make it sometimes impossible, sometimes painful to even use said measurement equipment properly.

So be extra cautious. It's a good trait for a scientist, but especially important when dealing with current OSX versions.

-mario

kcrowley1 commented 9 years ago

Thanks Mario! The hack worked :-) Very much appreciated!

I will be using a different machine for testing that has been thoroughly tested - this is just for development!

Delighted to have this sorted, thank you!

FuZhiyu commented 9 years ago

Mario, I specially sign up to give a thank to you!! Very appreciated! How does this hack works? It seems like a magic!

kleinerm commented 9 years ago

It works because two separate OSX bugs cancel each other out. The 2nd bug is triggered by the resolution switching and keeps the first one in check. Iow., it works because OSX is a broken operating system, and it is indeed magic in the sense of being random and unpredictable, and that is a bad sign for a system that is intended to be used for reproducible research.

Thank yous are best expressed by donations, btw., as they are the thing that keeps the lights on and thereby makes the magic continue ;-)

http://psychtoolbox.org/donations/

FuZhiyu commented 9 years ago

I’m so sorry. I tried but failed to find the way to donate. I'm in China and as a student I don’t have a Credit Cardπ_π

It works because two separate OSX bugs cancel each other out. The 2nd bug is triggered by the resolution switching and keeps the first one in check. Iow., it works because OSX is a broken operating system, and it is indeed magic in the sense of being random and unpredictable, and that is a bad sign for a system that is intended to be used for reproducible research.

Thank yous are best expressed by donations, btw., as they are the thing that keeps the lights on and thereby makes the magic continue ;-)

http://psychtoolbox.org/donations/

— Reply to this email directly or view it on GitHub.

FuZhiyu commented 9 years ago

@kleinerm Unfortunately, it worked well when running a Demo, but failed with a bigger program. My friends told me it also failed on Win7 (the laptop is Lenovo v480s). I'm wondering if I choose to skip the SyncTest, will it impair the timing accuracy to a unbearable extent?

kleinerm commented 9 years ago

I don't know what you mean? This issue is about bugs and problems and solutions specific to Yosemite, so obviously the same failure can't happen on Win7, unless you mean something not directly related to Yosemite, just something else that causes sync failure - there are many reasons. Synctests fail on systems with bad timing, broken timing or some other issues related to getting pixels onto the screen. You'd have to check the user forum, FAQ's, help texts of PTB etc. to see why it happens on your setup and what to do about it. Have you checked the Psychtoolbox forums, "help SyncTrouble" etc.?

Btw. wrt. donations, don't worry, i don't expect students to donate their usually already scarce money. But if labs or PI's etc. can afford to donate a bit, that's appreciated. Nobody has to donate, but if not enough people will donate, it will simply mean that i'll have to turn much of my now free work into paid work - which will be much more expensive to anybody who needs my help than small donations.

francescomarini commented 9 years ago

Hi Mario and all,

I am testing Psychtoolbox on my new setup and I would like to get some feedback (questions below).

My setup is as follows: Macbook Pro Retina Display OSX 10 Yosemite Retina display Matlab R2015a Psychtoolbox Version 3.0.12 PsychtoolboxKernelDriver64Bit.kext installed Single screen mode

I opened Matlab and launched VBLSyncTest. I was expecting to get a sync error, which I actually got:

>VBLSyncTest

PTB-INFO: Connection to Psychtoolbox kernel support driver instance #0 (Revision 1) established.
PTB-INFO: Disconnecting from kernel driver instance #0 for detected Intel GPU for safety reasons. setenv('PSYCH_ALLOW_DANGEROUS', '1') to override.
PTB-INFO: Running on OSX 10.9+ - Enabling protection against AppNap and other evils.

ans =

    0

PTB-INFO: Retina display. Enabling panel fitter for scaled Retina compatibility mode.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Apr 18 2015).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

PTB-INFO: OpenGL-Renderer is Intel Inc. :: Intel Iris OpenGL Engine :: 2.1 INTEL-10.6.20
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1600 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.644721 ms [60.079110 Hz]. (298 valid samples taken, stddev=1.002851 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

So it seems that it's not using the PsychtoolboxKernelDrivers, which is also expected since this laptop has an Intel graphic card. As I see from the output, stddev is about 1 ms. First question: Suppose for my purposes I am fine with a 1 ms uncertainty/variability. May I just skip sync test and trust my timestamps thereafter (keeping in mind the ~1ms uncertainty)? Then, I was interested in testing whether I could get better timing anyways. So I followed Mario's advice and did the trick of connecting and disconnecting an external monitor. I ran VBLSyncTest again, got no sync error, and the test was executed. This is the output code:

>VBLSyncTest

PTB-INFO: Retina display. Enabling panel fitter for scaled Retina compatibility mode.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Apr 18 2015).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

PTB-INFO: OpenGL-Renderer is Intel Inc. :: Intel Iris OpenGL Engine :: 2.1 INTEL-10.6.20
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1600 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.676308 ms [59.965310 Hz]. (50 valid samples taken, stddev=0.054714 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 33793 ...
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus drawing.
PTB-INFO: Enabling panel fitter. Providing virtual framebuffer of 1280 x 800 pixels size.
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus post-processing (if any).
The refresh interval reported by the operating system is 16.66667 ms.
Measured refresh interval, as reported by "GetFlipInterval" is 16.67631 ms. (nsamples = 0, stddev = 0.00000 ms)

ans =

    9.0000

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 605 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.

PTB missed 1 out of 600 stimulus presentation deadlines.
One missed deadline is ok and an artifact of the measurement.
PTB completed 0 stimulus presentations before the requested target time.

Okay, so stddev is much smaller now, which is nice. I am not sure if there are any other improvements that I didn't notice. Then, as Mario recommended on the forum, I decided to make a different test and run OSXCompositorIdiocyTest. This is the output:

> OSXCompositorIdiocyTest

PTB-INFO: Retina display. Enabling panel fitter for scaled Retina compatibility mode.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Apr 18 2015).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

PTB-INFO: OpenGL-Renderer is Intel Inc. :: Intel Iris OpenGL Engine :: 2.1 INTEL-10.6.20
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1600 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.676303 ms [59.965331 Hz]. (50 valid samples taken, stddev=0.063351 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 33793 ...
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus drawing.
PTB-INFO: Enabling panel fitter. Providing virtual framebuffer of 1280 x 800 pixels size.
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus post-processing (if any).
Bye!

Again, there was no sync error, but I quite alarmed because I did not see any flicker at all (not at PASS I and not at PASS II). Does this mean there are still some issues with my setup that the trick of connecting/disconnecting an external monitor did not solve? And what kind of issues? Are there any workarounds? Finally, I ran PerceptualVBLSyncTest and saw the flicker all the time. I apologize if these questions appear very naive, but I am confused about what's behind the OSXCompositorIdiocyTest, and eventually I am unsure about the conclusion I can draw on the reliability of my current setup.

I am willing to run any more tests (if requested), and would appreciate any inputs/comments.

Thanks, Francesco

Francesco Marini Post-doctoral Research Associate Dept. of Psychology, UC San Diego

kleinerm commented 9 years ago

Try this updated OSXCompositorIdiocyTest.m file:

https://github.com/kleinerm/Psychtoolbox-3/raw/master/Psychtoolbox/PsychTests/OSXCompositorIdiocyTest.m

It needed an update to cope with Retina displays, otherwise it would report false failures due to the way it works with our new Retina support. If the new file flickers properly then your setup is probably ok. Another way of getting timing ok'ish is by switching video resolution force and back - that's a bit less annoying than connecting and disconnecting a 2nd display. In general high precision timestamping and various built-in correctness tests and workarounds for problems don't work anymore on Intel cards on OSX, so some graphics bugs would go unnoticed and timing precision will be lower/less robust, so only testing with a photo-diode or other equipment with your own scripts during data collection could give you confidence that everything worked. Only switching to Linux could improve on that. But iff the new test flickers, it is probably ok - we just can't test any further in software if there would be other problems. You could run VBLSyncTest(300, x) with x = 0, 1, 2 or 3 to test timed stimulation further in software, that's something i usually do.

francescomarini commented 9 years ago

Mario, thanks much for the updated OSXCompositorIdiocyTest and for the video resolution switch trick. The resolution switch trick worked just fine and I got rid of the Sync error. The new OSXCompositorIdiocyTest worked great as well (I'm saying this because I saw the flicker during both passes). The difference I noticed with the old (non flickering) version is just that the text (PASS I... PASS II... etc.) was much smaller with the newer version. The output is below:

>> OSXCompositorIdiocyTest

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.12 - Build date: Apr 18 2015).
PTB-INFO: Support status on this operating system release: OSX 10.10 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: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.

PTB-INFO: OpenGL-Renderer is Intel Inc. :: Intel Iris OpenGL Engine :: 2.1 INTEL-10.6.20
PTB-INFO: Renderer has 1536 MB of VRAM and a maximum 1536 MB of texture memory.
PTB-INFO: VBL startline = 1600 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.674692 ms [59.971122 Hz]. (50 valid samples taken, stddev=0.059836 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 263168 ...
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).
Bye!

Then, as you suggested, I ran (various times): VBLSyncTest(300, x) with x = 0, 1, 2 or 3 I observed: a very brief presentation of some text at the screen top (way too brief to be readable), no flicker with any x (was it supposed to flicker?), decreasing speed of the moving square as x increased, and reported misses of the stimulus presentation deadline as follows: 2 misses for x=0, 1 miss for x=1, and 0 misses for x>=2. I suppose this is a fairly good result although I'd appreciate if you might confirm.

Thanks again for your help and advice.

Francesco

kleinerm commented 9 years ago

That's all fine. The smaller text size is because the test now works at the true resolution of the retina panel, not the lower compatibility mode resolution. Compatibility mode caused the false results of the test.

kleinerm commented 8 years ago

Closing, as we no longer care or officially support 10.10.

enoche12 commented 5 years ago

ScreenTest

ScreenTest: Testing Screen 0

PTB-INFO: This is Psychtoolbox-3 for Microsoft Windows, under Matlab 64-Bit (Version 3.0.15 - Build date: Oct 19 2018). PTB-INFO: Support status on this operating system release: Windows 10 (Version 10.0) supported and tested to some limited degree. 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-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-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.

PTB-INFO: OpenGL-Renderer is ATI Technologies Inc. :: AMD Radeon R7 Graphics :: 4.5.13467 Compatibility Profile Context 21.19.414.1280 PTB-INFO: VBL startline = 768 , VBL Endline = 795 PTB-INFO: Measured monitor refresh interval from beamposition = 16.666170 ms [60.001787 Hz]. PTB-INFO: Will use beamposition query for accurate Flip time stamping. PTB-INFO: Measured monitor refresh interval from VBLsync = 0.000000 ms [inf Hz]. (0 valid samples taken, stddev=10000000.000000 ms.) PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz]. PTB-INFO: Small deviations between reported values are normal and no reason to worry. PTB-INFO: ============================================================================================================================== PTB-INFO: WINDOWS DWM DESKTOP COMPOSITOR IS ACTIVE. On this Windows-10 or later system, Psychtoolbox can no longer reliably detect if PTB-INFO: this will cause trouble for timing and integrity of visual stimuli or not. You might be just fine, or you could be in trouble. PTB-INFO: Use external measurement equipment and independent procedures to verify reliability of timing if you care about proper timing. PTB-INFO: ==============================================================================================================================

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?

WARNING: Mismatch between measured monitor refresh interval and interval reported by operating system. This indicates massive problems with VBL sync.

----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing! Please read 'help SyncTrouble' for information about how to solve or work-around the problem. You can force Psychtoolbox to continue, despite the severe problems, by adding the command Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.

Error using Screen See error message printed above.

Error in ScreenTest (line 15) w = Screen('OpenWindow',screen);

my laptoptop is hp,windows 10 AMD RADEON R7 64 BIT OPERATING SYSTEM

iandol commented 5 years ago

@enoche12 — did you carefully read help SyncTrouble as the PTB error message asked you? Also this (closed) issue has nothing to do with you generic error.