AnsweredAssumed Answered

Corrupted display after screen restart on GPU accelerated Xorg

Question asked by Adrien Bruant on Nov 7, 2017
Latest reply on Nov 22, 2017 by igorpadykov

Hi all,

 

I'm porting a graphical application to a custom SBC, based on imx6d and I'm experiencing difficulties with Xorg/GPU integration. With one particular display model (XENARC 700CSH), the display becomes corrupted and distorded (cf. attached picture). The display works fine with any other HDMI source and the board works fine with any other HDMI screen.

 

The problem appears when the screen is turned off, then on. Interestingly enough, it doesn't happen when the HDMI cable is unplugged/replugged.

 

Since the captured screen was dumped directly from the frame buffer with fbgrab, I think it's safe to rule out any line problem and assume the problem appears higher up in the stack.

 

I've activated the Vivante GPU, and I'm using Xorg in DRM mode.

 

MCU: imx6d
Linux Version: 4.1.15-1.0.0_ga
Xorg Server version: 1.18.4Xorg Driver: xdriver_xf86-video-imx-viv 5.0.11.p8.6Vivante kernel module: 5.0.11p8.6Vivante binaries: 5.0.11p8.6

 

I've attached the Xorg log. Restarting the screen doesn't produce any more log.

 

I've also attached comparative kernel log for the action "turn off, then on" for the problematic XENARC screen and for an HP desktop monitor. At the time, I was focusing on a low level cause, so I turned on DEBUG verbosity for these particular files:

  • driver/video/hdmi.c
  • driver/video/fbdev/mxc/mxc_edid.c
  • driver/video/fbdev/mxc/mxc_hdmi.c
  • driver/video/fbdev/mxc/mxc_dispdrv.c
  • driver/video/fbdev/mxc/mxc_ipuv3_fb.c

 

I don't know where to go from here. Nothing caught my attention in these logs. Thank you in advance for your suggestions.

 

Best regards,

Adrien

Outcomes