Announcement

Collapse
No announcement yet.

GNOME DMA-BUF Screencasting Now Limited To Intel Drivers Due To Bugs Elsewhere

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GNOME DMA-BUF Screencasting Now Limited To Intel Drivers Due To Bugs Elsewhere

    Phoronix: GNOME DMA-BUF Screencasting Now Limited To Intel Drivers Due To Bugs Elsewhere

    Prior to tagging Mutter 3.38 for this week's GNOME 3.38 desktop release there was a last-minute change around the DMA-BUF screencasting feature...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    > Hopefully the AMDGPU driver and other DRM drivers can get their DMA-BUF buffer sharing code improved upon in short order.

    I think this is a mismatch of expectations ...

    > Other drivers, e.g. amdgpu will function, but may hit very slow memory download paths, resulting in worse performance.

    amdgpu will allocate memory in VRAM (or on APU in uncached memory) because that is needed for scanout and because it delivers better GPU perf. However, downloads tend to be dirt slow (and uploads tend to be as fast as normal). This is the exact same performance behavior as you get in the userspace driver without sharing it through a DMA-BUF, so I don't think the DMA-BUF behavior is broken as such. But it certainly seems to not be what the screensharing was implementation expecting.

    Comment


    • #3
      Originally posted by BNieuwenhuizen View Post
      amdgpu will allocate memory in VRAM (or on APU in uncached memory) because that is needed for scanout and because it delivers better GPU perf. However, downloads tend to be dirt slow (and uploads tend to be as fast as normal). This is the exact same performance behavior as you get in the userspace driver without sharing it through a DMA-BUF, so I don't think the DMA-BUF behavior is broken as such. But it certainly seems to not be what the screensharing was implementation expecting.
      Didn't read the code but I'm guessing dma-buf + amdgpu will lead to remote read from VRAM after mmap, which is worse than copying back when we do not have dma-buf?

      If it's the case, I think the main reason i915 works well is because Intel GPUs do not have discrete VRAM by far...

      Comment


      • #4
        Originally posted by zxy_thf View Post
        Didn't read the code but I'm guessing dma-buf + amdgpu will lead to remote read from VRAM after mmap, which is worse than copying back when we do not have dma-buf?

        If it's the case, I think the main reason i915 works well is because Intel GPUs do not have discrete VRAM by far...
        Makes me wonder if they'll have to blacklist Xe or come up with a proper way to detect IGPU vs. DGPU once it comes out.

        Comment


        • #5
          Originally posted by zxy_thf View Post
          Didn't read the code but I'm guessing dma-buf + amdgpu will lead to remote read from VRAM after mmap, which is worse than copying back when we do not have dma-buf?

          If it's the case, I think the main reason i915 works well is because Intel GPUs do not have discrete VRAM by far...
          Well even on the AMD APUs amdgpu uses uncached system memory (problem being that the display unit is not coherent with the CPU caches). I guess one could deal with some explicit flush+invalidate ioctl/syscall and then make it cached ... (and inherently incoherent between the users)

          Comment


          • #6
            I don't have any Intel GPU systems (various amd systems) and every time I've used Gnome Wayland screencasting, performance is absolute garbage. I can use OBS with Xcomposite window capture on X11 and continue to use the system without even noticing I'm capturing 1080p30 h264 locally.

            Is there some special software/settings combination that actually works?

            Comment


            • #7
              Originally posted by nranger View Post
              I don't have any Intel GPU systems (various amd systems) and every time I've used Gnome Wayland screencasting, performance is absolute garbage. I can use OBS with Xcomposite window capture on X11 and continue to use the system without even noticing I'm capturing 1080p30 h264 locally.

              Is there some special software/settings combination that actually works?
              I'm on the same boat, and after playing around it seems you can get reasonable performance if you build OBS studio from source with latest flathub version (26.0.0-rc1).

              Comment


              • #8
                Hmm, interesting. OBS studio works fine here on Arch with amdgpu driver. It's there no need to improve Radeon performance or an i missing something?

                Comment


                • #9
                  Originally posted by oleid View Post
                  Hmm, interesting. OBS studio works fine here on Arch with amdgpu driver. It's there no need to improve Radeon performance or an i missing something?
                  The official OBS studio does not offer the screen sharing function in Wayland, and you need a special plugin obs-xdg-portal.

                  Unfortunately this is not the end of the story. This plugin was initially released mainly for demo purpose rather than for production use, and only the gbsneto/pipewire branch provides good performance. Not sure if Arch ships the latest version but in Fedora I have to build OBS from source (in flatpak, the rpmfusion one is broken from the beginning)

                  Comment


                  • #10
                    Originally posted by zxy_thf View Post
                    The official OBS studio does not offer the screen sharing function in Wayland, and you need a special plugin obs-xdg-portal.

                    Unfortunately this is not the end of the story. This plugin was initially released mainly for demo purpose rather than for production use, and only the gbsneto/pipewire branch provides good performance. Not sure if Arch ships the latest version but in Fedora I have to build OBS from source (in flatpak, the rpmfusion one is broken from the beginning)
                    If I recall correctly, I installed some Gnome-shell plug in. Can look up its name, if you're interested.

                    Comment

                    Working...
                    X