Hi everyone,
I’m encountering an issue when running my experiment code on macOS using Psychtoolbox. The error message is:
PTB-ERROR: PsychPipelineProcessMacros: IMAGINGPIPE_FLIPTWHEN variable assignment failed in runtime! Skipped slot!
This happens when the code executes the following line:
lastScrOnsetTime(1) = begin(iLoop_0_cOpR).onsetTime;
As a result, Psychtoolbox is unable to show any text or image on the screen (presumably because the next flip time depends on lastScrOnsetTime
, which failed to get assigned properly). The program continues to run, but nothing appears visually—presumably due to a mismatch or failure in screen flip timing.
System configuration:
- OS: macOS (M3 Pro MacBook)
- MATLAB: R2023b
- Psychtoolbox: 3.0.21.0
Here’s the startup output related to my display setup:
PTB-INFO: OpenGL-Renderer is Apple :: Apple M3 Pro :: 2.1 Metal - 88.1
PTB-INFO: Renderer has 27648 MB of VRAM and a maximum 27648 MB of texture memory.
PTB-INFO: Screen 0 : Window 10 : VBL startline = 1964 : VBL Endline = -1
PTB-INFO: Will try to use mechanisms in the external display backend for accurate Flip timestamping.
PTB-INFO: Reported monitor refresh interval from operating system = 8.333333 ms [120.000000 Hz].
PTB-INFO: All startup display tests and calibrations disabled. Assuming a refresh interval of 120.000000 Hz.
Additional context:
The same code runs perfectly fine on Windows, using the same MATLAB and Psychtoolbox version, and the lastScrOnsetTime value is correctly retrieved there. Only on my macOS machine does this error appear, causing the screen to remain blank.
Questions:
- What might be the potential cause of this IMAGINGPIPE_FLIPTWHEN variable assignment error on macOS?
- Is this issue specific to the Apple M3 / Metal backend?
- Are there any recommended workarounds or configuration flags to resolve this and make the flip timestamping work properly?
Any insight or advice would be greatly appreciated. Thanks in advance!
Best,
Ning