| Reference | Downloads | Github

Cannot achieve 60Hz refresh rate with multiple components set to refresh each frame

OS: Win 10 (21H1; 19043.1165)
PsychoPy version: 2021.2.3
Standard Standalone? : Yes

So I believe I had this problem for a while now. It started abruptly (a couple of months after I had started data collection), and is still unresolved, with trouble loading movie files (<1mb mp4) each trial which takes >3 seconds to load every trial, and now trouble keeping the frame count per trial in trials where multiple image objects (8) are asked to refresh every frame (“set every frame”).
Basically, I want to refresh the image in each image component every 2 seconds (every 120 frames assuming a 60Hz refresh rate). However, I can only achieve this by means of t and not frameN and only in a very rough (not timingly adequate as you’ll see below) manner by saying something like:

index = 1
time_ref = 2
if t >= time_ref:
	image_1_path = movie_path_list[index]
	time_ref += 2
    index += 1

This is because I can’t achieve nowhere near 60 frame refresh rate per trial.
I can see by print(frameN) and print(t) in the “every frame” section of a code component that each print() comes up around every ~100ms, meaning that I also get only to frame ~10 every second, and not the frame 60 I should be getting (and was always getting till a few months ago).
I’ve tried it in different (and more powerful) computers, different tasks, but the result is always way beneath the 60 frames per second I should be getting (only when I ask multiple components to refresh each frame), leading to numerous timing problems.

I’ve also attached the timing performance (demo) of my computer, where it clearly has no difficulty keeping up with a 60Hz refresh rate.

I would appreciate any help on this, since I’ve currently stopped multiple data collection due to this problem.