The all new OutputSink feature aka reverse PRIME

Let’s gather data and info about the feature introduced with the 450 driver.
Starting to fill with questions
Q: Does this work with PRIME synchronisation?

Q: Does this work with Render Offload?

Q: Does this work with D3/runtime power management?

Feel free to share your adventures and failures during those.

A: It doesn’t appear to. External display is highly lagged
A: Yes
A: Yes, once screen is unplugged

Also though, in Prime mode the external screen seems to be undetected/unused (but still shows in gnome-control-center) when the laptop wakes from sleep.

The main issues I have, and seemingly many others is:

  • in reverse-prime mode the external + internal screens are treated as one large virtual screen with the smaller screen showing only a portion of the virtual screen.
  • laggy external display
  • above a certain res threshold the ext-display looks like a scrambled CRT (v-sync invalid on CRT style).

This is what I get with defaults suggested by Nvidia. I tried to center the screens vertically. If you look at the wallpaper you can see which portion of the virtual spanned desktop is being shown by the laptop screen.

Still can not get native res on external.

Nothing has changed between 550.52 and 550.57, pretty much.

My results are virtually the same as SenojEkul’s.

  • Synchronization doesn’t work.
  • Yes.
  • I wouldn’t quite know how to tell.

Essentially, Reverse PRIME is still completely unusable.

No change with 450.57

  • External as single display is extremely laggy
  • Same virtual desktop issue as above post with photos
  • Virtual desktop means that tiling windows left/right spans both screens
  • Native res on external of 3440x1440 is warped like a CRT with incorrect v-sync

I have a notebook with a 1060, and tried it with an old 1080p TV so far. Distro is Debian unstable, DE is gnome3 (with mutter 3.36.3), Xorg 1.20.8, with 450.57 driver installed from experimental.

What works:

  • Prime synchronization seems to work
  • render offload works
  • visually works ok, display resolutions are good
  • gnome’s display settings detect and manage the screens correctly
  • blanking and unblanking works

Issues:

  • no runtime power management, as driver still has no proper support for it on this card
  • results in very high CPU usage: 20-40% Xorg and 9-20% nv_queue
  • when only external display is configured it becomes extremely slow – clicks and keypresses take effect seconds too late

Overall it works surprisingly well, the biggest issue seems to be the cpu usage for my personal use

Using nVidia as the main output device for the DE and another GPU as the graphics accelerator still doesn’t seem to work in 450.57 on Arch.

I’m hoping that one day I’ll be able to fully utilize the GPU I bought 7 years ago. So far, the mostly amateur hobby-grade community of open-source enthusiasts has done a better job than this multi-billion corporation, despite the said company’s obstructions. Switching to nouveau, again…

1 Like

In my hardware, an AMD Ryzen laptop with dedicated Nvidia GTX 1650 card, Reverse PRIME is kind of not working but working at the same time.

I already had an Xorg configuration file for Prime Offloading (AMD integrated GPU used by default) and that was working well, the issue I have with Reverse PRIME is that I get a black screen when I connect an external monitor, it may seem like it’s not detecting the HDMI monitor but that would be a false assumption, there is actually a video signal being sent but I think the framebuffer is not being copied at all. I know that’s the issue because when I go into Nvidia settings and change the gamma and brightness options the display actually goes through different tones of white while I change the settings.

This problem is not exclusive to the proprietary Nvidia driver though, if I do the same with the Nouveau driver there is also a black screen but in Nouveau the cursor also shows up. I heard that this might be an issue with dma_buf in the amdgpu driver (it was supposedly fixed on Intel) and with Nouveau I got a kernel stack trace when connecting the HDMI cable so I’m going to report this to the Linux DRI bug report infrastructure.

Reverse PRIME is known not to work with amdgpu. For future reference, we’re investigating what goes wrong with mapping its dma_bufs in internal bug number 2759189. The bug tracker isn’t public, but you can use that number to refer to this issue.

The garbled screen with some reverse PRIME resolutions is being investigated in internal bug number 200627069 and it looks like the problem has been identified and a fix is in progress.

So after some further testing it seems that scaling works incorrectly: if the framebuffer is bigger than the display’s resolution, only a part of it will be rendered. However the hardware cursor still renders even “outside” the image (see attachment)

1 Like

I can confirm I have the exact same issue:

  • Driver 450.57

  • Thinkpad X1Eg1 with 1050 TI MaxQ and Intel Video on Kernel 5.7.8-1

It works on my ThinkPad P52, but is unusable in this state unfortunately.

  • It’s horribly slow (almost unusable) on a Lenovo ThinkPad Thunderbolt 3 Docking Station (works fine with bumblebee and xf86-video-intel)
  • It only detects 1 external screen, while 2 are connected
  • It does display the second screen in xrandr, but the screens are called 23 (as in 2 and 3 together) and there doesn’t seem to be a way to split them
  • My laptop screen is 1920x1080 and my monitors are: 1920x1200 and have the issue described above with the black bars.

Unusable for me unfortunately so far
Kernel: 5.7.6
Driver: 450.57

Hi nvaert1986,

Could this be because your laptop resolution is lower than the monitor, hence opposite of us? Do you notice part of the desktop missing on the external monitor in the vertical direction?

My laptop resolution is 1920x1080. The resolution of my monitors is 1920x1200 and I’ve a black horizontal bar almost on the bottom (but not completely on the bottom) of my external screens when the resolution of the external monitors is set to 1920x1200. Below that is like a little bit of wallpaper, which is visible, but the area is unusable. So the black bar in gnome is not completely on the bottom, as it’s supposed to be (using the Window List extension in Gnome). It looks the Window List extension is exactly set at 1920x1080, because the amount of pixels that are missing, is approximately the leftover.

I see there is another tracking issue in another post as 3063041.

Can you give a status update on these? I’ve been running a small discord server for people with ASUS gaming laptops and a lot of people are very excited by the possibilities this will enable.