Bug 110245 - Severe tearing and display corrupting when using SNA
Summary: Severe tearing and display corrupting when using SNA
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
Depends on:
Reported: 2019-03-26 10:14 UTC by nvaert1986
Modified: 2019-11-27 13:50 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

My Xorg.0.log file (53.58 KB, text/x-log)
2019-03-26 10:27 UTC, nvaert1986
no flags Details
Part of the screenshot of the display corruption happening (38.86 KB, image/jpeg)
2019-04-08 15:21 UTC, nvaert1986
no flags Details

Description nvaert1986 2019-03-26 10:14:28 UTC
Dear sir/miss,

I'm using a Lenovo ThinkPad P52 (Intel Core i7-8750H) with the latest 1.22 UEFI firmware and have severe screen tearing and display corruption when using the xf86-video-intel driver. When I'm using the latest stable driver version and the situation is sometimes unworkable, because the screen simply goes blank and can't even revert back to the TTY after a while (I've got no display at all). When I'm using the latest GIT version the driver is stable, but I've got severe tearing and artifacts (square cubes in red / greenish in particular). I've tried both DRI 2 and DRI 3, but that doesn't make a difference. The situation is stable when using the modesetting driver, but then I can't use my external displays, as it's hard-wired to the NVIDIA chip. The same goes for uxa driver, it doesn't allow me to use intel-virtual-output, so sna is the only option for me.  (I'm making use of bumblebee / bbswitch and intel-virtual-output) This can especially be observed when browsing websites.

I'm running Gentoo Linux with kernel 4.19.27 with xorg-server-1.20.3. If there's anything additional  you need, please let me know
Comment 1 Chris Wilson 2019-03-26 10:22:55 UTC
Please attach your Xorg.log. Did you specify TearFree?
Comment 2 nvaert1986 2019-03-26 10:27:38 UTC
Created attachment 143779 [details]
My Xorg.0.log file
Comment 3 nvaert1986 2019-03-26 10:27:56 UTC
Please see the file attached. I've tried using both TearFree with true and false, but it makes no difference. I've used both: https://wiki.archlinux.org/index.php/intel_graphics and https://wiki.gentoo.org/wiki/Intel as guides to try and get a working situation with various options
Comment 4 Chris Wilson 2019-03-26 10:33:41 UTC
Ok, which screens experience the tearing, and which the corruption? Is it possible to grab a photo of the corruption? And does the corruption exist in a screenshot?
Comment 5 nvaert1986 2019-03-26 10:38:59 UTC
I'm experiencing it mostly on the external screens, but sometimes on the internal screen too. I'll try to grab a screenshot if possible, but it'll be hard, because it's there for about 1 sec. but repeats frequently. It looks like a big red square with sometimes some green in it. An example where it regularly occurs is scrolling in Mozilla Firefox on certain web pages, but sometimes it happens at random on the desktop too.
Comment 6 nvaert1986 2019-03-26 10:47:13 UTC
I've tried capturing a screenshot a few times now. The tearing (which is constantly present) isn't present in the screenshot at all. The graphical corruption either wasn't captured or not visible in the screenshot either. Do you still want me to upload the screenshots?
Comment 7 nvaert1986 2019-03-26 10:58:44 UTC
P.S.: I forgot to mention that the tearing does not occur when I'm starting the application from the terminal with optirun in front of it (as in rendering it on the NVIDIA Quadro P1000 graphics cards).
Comment 8 Chris Wilson 2019-03-26 11:20:00 UTC
It's just whether the corruption is apparent int the screenshots and if that corruption only occurs on the external outputs that is particularly of interest. If you don't see it in a screenshot (and that screenshot shows the remote output windows correctly) that implies the corruption is entering in ivo -> bumblebee path.

We should be pageflipping on the internal screen, no matter what. That may still tear across between client rendering (if the client split his update into two requests and we perform a page flip in between), or it may tear in situations where we give the client direct access to the screen and require them to manage it through glXSwapBuffers (that should only impact DRI3 iirc).

ivo doesn't try to avoid tearing on the external screens at all atm. It's a wishlist item along with using DRI3 to avoid the copies; at which point, xrandrproviders were meant to be the better solution. Nothing should have changed to make it any worse, though.

Anyway, the immediate problems are tearing on the internal and corruption on the external?
Comment 9 nvaert1986 2019-03-26 11:31:15 UTC
Thank you for the explanation :-) and yes / no. There's both screen tearing (constantly) and corruption (regularly; like approx. every 3 - 4 minutes for like 1- 2 seconds) on all of the 3 displays. It was way worse when using the non-git driver version. Then display corruption would occur constantly (every few seconds those cubes would occur and the screen would constantly flicker too).

The only thing I haven't tested yet, is disabling my external monitors and using my internal LVDS-0 only in SNA mode I realized, which I can do to see if that stops the tearing. The tearing occurs on all 3 screens. When starting an application with optirun, the tearing is mostly gone (unless you start moving the item around the screen extremely quickly). I haven't noticed any display corruption yet either when starting an application with optirun, but if it occurs I'll let you know.
Comment 10 nvaert1986 2019-03-27 11:38:08 UTC
Update: I've been running without attaching my external displays and without running intel-virtual-output this morning and both the tearing and corruption are gone using xf86-video-intel (GIT version) and haven't seen them so far. If I'm not using the GIT version I've still got display corruption and such. All of the issues start as soon as I run intel-virtual-output (even without screens attached).

Is there an alternative to using my iGPU on my laptop and using the dGPU for the external screens?
Comment 11 nvaert1986 2019-04-03 12:19:33 UTC
Update: After using the laptop without an external screen for several days there's been display corruption too, but it's much less frequent than when used with external displays. Is there anything I can do to to provide additional testing or logging?
Comment 12 nvaert1986 2019-04-08 15:08:19 UTC
I've finally been able to take a screenshot of the graphical corruption and can now verify that the corruption is visible in the screenshot.
Comment 13 nvaert1986 2019-04-08 15:21:04 UTC
Created attachment 143900 [details]
Part of the screenshot of the display corruption happening
Comment 14 Martin Peres 2019-11-27 13:50:14 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/issues/161.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.