NVIDIA Pascal series graphic card: slow graphics operations
I’ve replaced one of my older monitors with a newer one, before I had DP,DP,DVI for my monitors, now I use DP,DP,DP. (DP = Displayport).
Tails doesn’t like that new combination though. While DP,DP,DVI would work, now with DP,DP,DP I can’t get Tails 3.2 to boot. I see the blinking cursor for a few seconds, then for 1 or 2 frames an error message appears, and then Tails seems to crash and no longer has any GPU output (monitors either black or saying “connect stuff”). DP,DP,HDMI also doesn’t work. It seems it was luck that DP,DP,DVI actually worked.
I did film it with my phone so that I’m able to read the error message, it is just one line:
[2.984265] nouveau 0000:03:00:0 DRM: Pointer to flat panel table invalid
Connecting only 2 monitors with DP,DP works fine, if I then connect a 3rd one while Tails runs, it crashes (shows some graphics corruption for a few seconds, then turns all monitors off).
My old monitor combination had only one 1080p monitor, now I have two. Even with only two 1080p monitors connected, it feels like graphics operations are running slower than they should. When dragging windows around, it isn’t fully smooth and it looks like the image is constantly “breaking apart”, as if “vsync” would be disabled. So it looks like if first the upper half of the monitor is updated, and then a while later the lower part is. The height where that cut is is random though, so it moves up/down all the time. So when dragging a window around, the upper half or third etc is sometimes 1 cm further to the left/right (depending in which direction you move it) than the lower half/third/whatever of the window. It is very ugly. I did see that already when my old 3 monitors were still working, it was just less intense.
One other example for it feeling “slow” is that if I open a youtube video (even just 720p) on one monitor, and try to use the browser on a website like this on the other monitor, even the scrolling in the browser starts to feel very laggy. If I pause the youtube video, scrolling feels way better. So I’m not sure if its actually fully software rendering everything or if the GPU stuff is only working in some very slow mode.
I have tried to play around with commands like nouveau.modeset=X and nouveau.noaccel=X, but setting those to either 0 or 1 doesn’t improve anything, either it does nothing or it makes it worse.
I am using a Nvidia GTX 1080, which is a Pascal Series GPU.
I already posted about the issue here: https://labs.riseup.net/code/issues/11831 And it was suggested to me that I should create a dedicated ticket about it.
I did test this suggested ISO now: https://nightly.tails.boum.org/build_Tails_ISO_feature-buster/lastSuccessful/archive/build-artifacts/tails-amd64-feature_buster-3.4-20171022T0917Z-f62837af72%2Bdevel%40dd985681bf.iso
And the issue is in fact partly fixed there. I can boot Tails, it does start, all 3 monitors work. It also feels a bit smoother, though its still far from perfect. So when a 720p youtube video is running, scrolling on another website is still slow and laggy. I also still see a lot of that “breaking apart” of the image (I’ve attached a gif showing the issue).
But it’s a lot better than 3.2, since in 3.2 Tails didn’t work at all. Will this fix be in 3.3?
|Related to Tails - Bug #15116: X.Org does not start with some NVidia Maxwell and Pascal graphic cards||Confirmed||2017-12-27|
Related to Tails -
Blocks Tails -
#2 Updated by intrigeri 2017-11-11 14:43:54
- Category set to Hardware support
- Status changed from New to Confirmed
- Assignee changed from intrigeri to 110100111011
- Target version set to Tails_3.5
- QA Check set to Info Needed
Please test Tails 3.3 once it’s out (Nov 14): it’ll likely include a newer Linux kernel, which might be what fixed the problem for you in the Buster-based ISO you’ve tested. It might equally be that it was fixed thanks to Buster’s newer graphics drivers though. We’ll see, fingers crossed!
#3 Updated by 110100111011 2017-11-15 03:10:03
As requested, I’ve tested with 3.3.
3.3 does feel 100% same like the other ISO I tested. All 3 monitors work, but there is that very visible breaking apart of the image and a 720p youtube video on one screen is enough to make scrolling in the browser on another screen, or also just moving a window in Tails around, very slow/laggy.
Not sure if its using the GPU at all or if its actually just software rendering, that it gets so slow with a bit of load might suggest that its all just happening on the CPU.
So graphics operations are way slower than they should be, but Tails boots correctly even with 3 monitors connected. It is an improvement over 3.2, but obviously still far from perfect.
#5 Updated by intrigeri 2017-11-18 11:14:08
- Assignee deleted (
- Target version deleted (
- QA Check deleted (
- Type of work changed from Research to Wait
So, Tails 3.3 fixed the “crashes on boot” problem. Great! I’m therefore repurposing this ticket to track only the remaining performance issue.
The nouveau driver (starting at 1.0.15, while we ship 1.0.13 currently) has very preliminary support for Pascal. https://nouveau.freedesktop.org/wiki/FeatureMatrix/. So I’m not surprised that even on Buster (1.0.15) it’s slow. There’s nothing we can do about this but wait :/
#9 Updated by intrigeri 2018-08-04 00:46:43
- Assignee changed from intrigeri to segfault
- % Done changed from 0 to 50
- QA Check set to Ready for QA
- Type of work changed from Communicate to Debian
#12 Updated by intrigeri 2018-08-04 01:12:45
To answer the obvious questions:
- how/when are we going to upgrade this custom backport: I’ve subscribed to https://tracker.debian.org/pkg/xserver-xorg-video-nouveau so I’ll stay on top of new uploads and will file tickets whenever we need to consider upgrading
- why not upload to stretch-backports: if I did that, I would have to maintain the backport for the entire Stretch life cycle, which includes at least a year during which I’ll have no motivation to do this work since Tails will have upgraded to Buster already
#16 Updated by 110100111011 2018-08-28 05:16:46
I’ve just tested 3.9RC1, and there’s one thing I’ve noticed that’s broken, I assume its due to GPU driver stuff so I mention it in this thread:
The monitor position adjustment breaks the rendering. So when you go into the settings, to monitor settings, and then to the menu where you can drag the displays around to correctly adjust them for where they are placed on your desk, when I hit apply then one of my 3 monitors (seems random which one, is a different one every time) stops rendering the desktop, and stays like that.
Instead of the Tails Desktop, it then shows multiple small images of the initial thing you see when you start Tails, where you can choose between “Tails” and "Tails (Throubleshooting). So it looks like the monitor suddenly displays some weird corrupted image of the last thing it received before Tails really started booting.
The other monitors keep working correctly, until I do any more adjustments to the monitor positions in that menu again, if I do that then one more other monitor stops working.
Normally, when you’re using Tails you can press Ctrl+Alt+F1 to go into that other desktop where you only see the blue background, taskbar with clock, and shutdown button on the top right. And when you press Ctrl+Alt+F2 you are back at the regular Tails Desktop. You can freely switch between those two desktops all the time.
When I do that monitor position adjustment and one monitor “breaks”, then I can still use Ctrl+Alt+F1 to go into that “other Desktop”, and that one is still working correctly on all 3 monitors then. But if I switch back to the “real” desktop using Ctrl+Alt+F2 then, all 3 monitors “break” and display the weird stuff with multiple of those black selection screens.
So I think the “GPU Driver” is working fine, it looks like changing the monitor positions does somehow just let the Desktop Renderer crash in some way, so that it keeps working for all monitors except for 1.
I post it here since I assume if it would happen for all GPUs then people would have noticed that already, so I assume it only happens for specific GPUs.