Is there a way to skip frame rate measurement on each initialisation?

OS: MacOS Ventura13.4.1 (c) (22F770820d)
PsychoPy version: v2023.2.1
Standard Standalone? (y/n) Yes
What are you trying to achieve?: I want to determine whether I can skip measuring frame rate of screen in situations when I am repeatedly re-running an experiment to test minor adjustments.
What did you try to make it work?:
• Changed refresh rate from adaptive (ProMotion) to constant (60 Hz).
• Specified my laptop’s size and screen width in monitor centre. Specified this monitor in the ‘Screen’ section of my experiment’s properties menu.

What specifically went wrong when you tried that?:
Running the experiment still presents the following message 'Attempting to measure frame rate of scree, please wait… ’

Console output:

## Running: /Users/USERNAME/Desktop/Project RP(psychoPy)/psychoPy_tutorial_Faces/GFMT/GFMT_lastrun.py ##
1869.3448     INFO     Loaded monitor calibration from ['2023_08_28 16:04']
using PyQt5
2023-08-29 13:00:12.004 python[9228:146414] ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to /var/folders/f4/rlv2931x0f7fbrrdcvb0s2x40000gn/T/org.opensciencetools.psychopy.savedState
2023-08-29 13:00:13.803 python[9228:146414] TSM AdjustCapsLockLEDForKeyTransitionHandling - _ISSetPhysicalKeyboardCapsLockLED Inhibit
5.3811     WARNING     Couldn't measure a consistent frame rate!
  - Is your graphics card set to sync to vertical blank?
  - Are you running other processes on your computer?

6.2979     WARNING     Couldn't measure a consistent frame rate!
  - Is your graphics card set to sync to vertical blank?
  - Are you running other processes on your computer?

0.0277     WARNING     t of last frame was 20.31ms (=1/49)
1.1492     WARNING     t of last frame was 22.40ms (=1/44)
1.2954     WARNING     Monitor specification not found. Creating a temporary one...
ioHub Server Process Completed With Code:  0
################# Experiment ended with exit code 0 [pid:9228] #################

Inspecting the console, it would seem that my monitor specification either cannot be found or cannot be saved.

Hardware:
16-inch Apple M2 Pro, 2023

My Question:
From my attempts with PsychToolBox in MATLAB, I’ve come to appreciate that Apple Silicon computers have compatibility issues with most psychophysics-related software. Thus, I’m wondering whether there is a setting I can change that would skip having to see this message each time I boot up an experiment.

It seems like PsychoPy recently started to show a message when measuring monitor timing (NF: Window textbox for system messages · psychopy/psychopy@5dff6a4 · GitHub). It doesn’t seem like this message can be disabled, but you can completely turn off the entire timing check (since you don’t need it anyway if I understood you correctly) via checkTiming=False as an argument to psychopy.visual.Window().

Hi, have you found a solution yet? I’ve tried setting the checkTiming flag to be false but it seems the popup still appears. Would save valuable time when booting up the code multiple times in succession to make minor changes.

1 Like

Hi ! I don’t understand why it is showing me this message neither. Same problem for me. If you find a solution, please tell me ! :') :slight_smile:

1 Like

I’ve created an issue: [Bug]: Measuring frame rate now displays a text · Issue #5937 · psychopy/psychopy · GitHub

This is certainly meant to be a feature rather than a bug. I believe it’s good for people to know what their software is doing - previously people just thought PsychoPy was being slow and hadn’t even thought about that this being turned off if you don’t care about screen timing.

I certainly managed to turn it off in code by setting checkTiming=False for the Window (@Rodrigo_Raimundo I’m not sure why this didn’t work for you):

from psychopy import visual

win = visual.Window(size=(1080, 720), checkTiming=False, units='height')
stim = visual.TextBox2(win, "hello", alignment='center')
for frame in range (5):
    stim.draw()
    win.flip()

In the next release we’ll add a setting for that to the Builder>ExpSettings>Screen

We haven’t added the further option to do the test but without the message which it sounds like @cbrnr would prefer (as usual every possible variant is the preference for at least one user! :rofl: : ). So i guess we’ll make the Builder ExpSettings a drop-down setting like:

Check screen timing:

  • always, with info message
  • always, with no info
  • never
1 Like

@jon I’ll reply in the GitHub issue, but three comments:

  • It’s good for developers to know what their software is doing. Users (i.e. participants) should not have to deal with such technical details.
  • I believe I’m not the only one who would prefer the previous behavior of measuring frame rate with a blank screen.
  • Given that this behavior suddenly changed without prior notice, and because of the two previous reasons, I think the default behavior should still be a blank screen (with an option to display a message).

The idea (with the new intended settings) is that the researcher sees the message, while debugging their study, and can make a decision to turn it off before it gets to the participant. In the past, most researchers never knew why it was taking so long to the start of their study so never knew there was a setting that might warrant turning off.

The change was documented in advance, in the changelog for 2023.2.0 (but people don’t tend to read that either).

Happy to continue hearing from people what the default should be, but my own preference, driven by the desire to increase researchers’ understanding of their software, is that the message is on by default with an easy option to disable.

1 Like

We appreciate the frame rate measurement in general, but it regularly got stuck on some computers. We could fix it by using a different BIOS setting and a new Intel driver. Perhaps this issue might be worth looking into for the next version as well.

I totally agree! But currently, the message cannot be turned off, only the entire frame measurement. That’s why a new parameter makes sense.

I have the same issue as reported by some here that I cannot turn the message off using checkTiming=False in the visual.Window function. It still shows up.

What is also weird is that there is no massive computation or screen composition between flips. Actually I am flipping once for the fixaton cross, once for the empty screen between fixation and display, and once for the display. There is some SR-eyetracker related stuff within the trial, but his should not be that demanding…