Overlaying polygon stimulus on image stimulus causes image stim to flicker

PsychoPy version: 2023.2.2

Hi all,

I am designing a stop signal task. The go stimuli are arrows, and the participant is asked to make a response for every arrow. On 25% of the trials, a blue circle border will appear around the arrow (after a variable, dynamic delay) to tell the participant to stop their response to the arrow.

I have outlined my variables in an excel file fed into a loop. The arrows are pngs and are defined in an image component. The blue border is a polygon component (circle). I have outlined in an input file whether it is a stop or a go trial; if stop=0, the color of the circle stim is transparent fill and transparent border. If stop=1, the polygon stim has transparent fill and blue border.

Right now the stims are all appearing, BUT when the polygon appears over top of the arrow (both when stop=0 AND stop=1), the arrow flickers. This is actually a huge problem for this paradigm and could really mess up my data. Why is this happening, and how can I stop the arrow from flickering when the polygon stim appears?

I tried disabling the polygon component, and that makes the flickering disappear. So I know that something about the polygon being overlayed on top of the image creates the flicker. I don’t know enough about how images are drawn or how win.flip works to know how to debug this issue. Thanks for any help in advance!!

Have you seen this query? Becca mentions the flickering issue in one of her responses and suggests a solution around the timing of accepted responses. I’m not sure if it will help here, but probably worth a shot.

Hi there, thanks for the link–I hadn’t seen that post. Was definitely worth a try, but unfortunately it doesn’t appear to be the same issue.

SOLUTION WAS FOUND: Apparently I had to move the polygon stimulus to the top of the builder screen. A colleague of mine suggested this, as apparently it changes the sequence in which Python draws the stims? So now it is drawing the border first? Not even quite sure why this fixed the problem, but it did. If anyone would like to explain for learning purposes, I would appreciate it!