| Reference | Downloads | Github

Black screen on dual (stimulus display) monitor setup


I have a experimental station that has a dual screen setup. The main monitor is a LED monitor and the presentation monitor, a CRT. This station runs on Ubuntu 14.04, KDE 4.14.3. I have tested presentation on both screens seperately, and they are able to display the psychopy window (visual.Window) screen properly when there is only one monitor connected to the PC at any one time. The problem arises when both monitors are connected to the PC. While I’m still able to get the window to appear on the LED (experimenter) monitor properly when screen=0, changing screen=1 resulted in the CRT (participant) monitor displaying only a black screen if fullscr=True, and a black box-like window when fullscr=False. The KDE background was still visible around the black box when fullscr was on False mode, suggesting that the window was setup, but the CRT couldn’t properly display the stimuli content.

Matlab works fine on dual screen setup on this station. I have updated to the latest nvidia graphics driver as well. Has anyone got a suggestion to this?


I am having the same problem with a dual-monitor setup on xubuntu. I have been able to get around the problem by enabling xinerama, but this introduces some extra delay and occasional vertical tearing on our system. You could try having PsychoPy boot up on the presentation monitor, which I’m guessing is X screen 1 for you, and initialize your window with screen = 0.


I’m assuming the screens have different resolutions. Have you tried manually setting the resolution with size=[w,h] argument when instancing your window?


@jtrinity : I’m not quite sure how but KDE in my case doesn’t allow me to launch any kind of application on the presentation monitor (I can’t even drag a window from screen 0 to screen 1, although the mouse cursor is able to move across screens.)

@mdc : Yes they are both using different resolutions. Tried adding size =(1152,864) (the resolution of my CRT) onto the visual.Window function but the display still comes out as a black screen.

I have to highlight that displaying on dual monitors works fine on Matlab on same the operating system (KDE) as well as psychopy on Windows on each of the testing stations’ alternative dual boot Windows 8 system.


Temporary partial remedy: I was playing around on a testing station today and found out that I can actually present stimulus on the second screen when I set it as an extension to the primary monitor (ie. both are xscreen 0) rather than define xscreen 0 and 1 for each monitor respectively. The problem with doing this however, is that the stimulus on the presentation CRT becomes really choppy. I’ve seen many ‘solutions’ proposed online in regard to fixing the choppiness but there wasn’t one that worked for me so far. Does anyone have any experience with this?


It might be something KDE specific that PTB can account for. I’m currently working on multi-head functionality in PsychoPy (slow progress unfortunately), it might be worth investigating the potential cause of this issue.


This is the setup we currently use. You may want to try changing the vsync settings through your graphics card control panel and within pyschopy itself (try setting waitBlanking to false in the psychopy window). We had tearing and delay issues until we got the right combination of these settings, which unfortunately seems to vary across different systems.