Text display problems at high resolution

Hi everyone,

I am trying to run an experiment that works on other PCs. I am having problems displaying text why screen (in the psychopy settings) is set to high resolutions. When I run it full screen (3840x2160), there is no text. If I uncheck the full screen display, it has 1280x720 as the default, and my text displays fine. This is true at twice the resolution (2560x1440), but at three times the resolution (the same as the monitor, 3840x2160), there is no text again.

Is there a way to fix the text at high resolutions? Or do I need to use a windowed display on a lower resolution?

For info purposes, I am running the standalone psychopy builder 1.85.1 (for pyxid compatibility) on Windows 10.

Hi. You probably need to tell us how (and in what units) you are specifying the size and position of the text.

Thanks for the reply!

The text is placed using the text object in the builder. Most of the text is in the center of the screen [0,0] in normalized units, though some of the text is set to other portions of the screen. The letter height is .1 in most cases (norm I assume since I have no special settings for it).

I wouldn’t assume that. Units can be set in 3 places (PsychoPy prefs, Experiment prefs, individual components). You should explicitly set the units to see what happens. If you are changing the pixel dimensions but not correspondingly also amending the entry for the physical width of the screen, then units like cm and deg would no longer produce constant physical-size stimuli, and would actually yield physically smaller stimuli on the full screen compared to a smaller window containing fewer pixels. They could conceivably become invisible, particularly with a value like 0.1.

But without screen shots of your stimuli and the full component settings, it is difficult to be definitive.

So when I change the text object setting and the experiment setting to norm (the PsychoPy prefs already had that option chosen), the text still does not display at higher resolutions. I have previously changed the letter height to 1 and that did not help.

Here are the screenshots you requested.

Text settings:

What it looks like at 2560x1440:

What it looks like at full screen:

This is very weird. Do you have multiple monitors?

No, though attaching a second monitor did not help (the other monitor at a lower resolution did not display the text when full screen was checked).

Mmm. So there must be some transition at which this occurs. It is either categorical (full screen vs not-full screen) or occurs at some critical value of the pixel dimensions.

What happens if you define the window to have the full pixel size (3840 × 2160) but still have the full screen setting unchecked ? (This isn’t a recommendation for how to actually run the experiment, just purely diagnostic.)

If that doesn’t make a difference, try a binary search to increase the pixel size from the OK value to the full size and see where the problem happens.

Ok, I have some new and maybe interesting information.

3840x2160 does not work, even outside of full screen (windowed mode)
At 2816x1539, .1 norm font size works.

At 2832x1548, .1 norm font size stops working, but .07 size does.

This is sufficiently weird that I’m going to just fall back on saying that this is a graphics card issue (does this computer use Intel integrated graphics rather than have a discrete AMD/Nvidia graphics card)?

You could display text using images rather than a text component, but that can get tedious pretty quickly unless they are just one-off stimuli, like for instructions.

Otherwise I don’t have much useful to suggest. Perhaps @jon might have some insight?

Thanks for the info Joe. As it happens I can confirm this; I was teaching on a workshop yesterday and one of the delegates was using a win10 high-res display (a retina display mac booted into Win10) and we saw exactly that.

The work around we used was that pixel units seemed to work fine; text became visible again. My guess is that this is something to do with a scaling issue in pyglet but I don’t have a fix for using norm units right now

Hi This prompts me to chip in - Very occasionally Psychopy fails to display text - I have no idea why, but it tends to happen the first time you draw the text. The only work around I came up with was to use the AutoDraw command. This is a bit of a pain however, because you then need to switch it off. Currently it is refusing to draw the first text associated with an end of block message - hey ho.

Philip.

I’m having a similar problem with text stimuli. I have a monitor with a resolution of 1920x1080 on a Win10 pc with a nvidia dedicated graphic card, and text does not appear when letter height is set higher than 2.5 cm. Text does appear when executing the program windowed (even at full resolution). The same happens when using other units such as pixels.

I tried also on a laptop with a lower resolution (1366x768, with a different dedicated graphics card) and the same happens.

It seems to be a bug that appeared with psychopy 1.85.0, it has been reported on psychopy’s GitHub some time ago:
https://github.com/psychopy/psychopy/issues/1385