Announcement

Collapse
No announcement yet.

Damage Rectangle Interface Proposed For Atomic DRM Drivers

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

  • Damage Rectangle Interface Proposed For Atomic DRM Drivers

    Phoronix: Damage Rectangle Interface Proposed For Atomic DRM Drivers

    DisplayLink developers in cooperation with interest from VMware's virtual graphics driver team have sent out a draft proposal for adding a damage interface to the Direct Rendering Manager drivers...

    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
    the description sounds like something that could be useful for everything.
    can somebody expert explain me why not?

    Comment


    • #3
      Originally posted by davidbepo View Post
      the description sounds like something that could be useful for everything.
      can somebody expert explain me why not?
      probably because there is no interest to save bandwidth on a dedicated wire to the monitor (VGA, DVI, HDMI), but it become useful on a shared bus (USB)

      Comment


      • #4
        Originally posted by davidbepo View Post
        the description sounds like something that could be useful for everything.
        can somebody expert explain me why not?
        Yeah, maybe this could help with tearing...

        Comment


        • #5
          Originally posted by trek View Post

          probably because there is no interest to save bandwidth on a dedicated wire to the monitor (VGA, DVI, HDMI), but it become useful on a shared bus (USB)
          It's not useful for "everything", but it's useful for software that needs to pay attention to what is happening on the screen.

          Sometimes, instead of bandwidth, it's about saving local compute. There's a whole class of software that needs to monitor changes to the framebuffer. ie window manager, compositor, vidcap, desktop automation, I'm sure there's more.

          Comment


          • #6
            Originally posted by davidbepo View Post
            the description sounds like something that could be useful for everything.
            can somebody expert explain me why not?
            The main reason this won't be useful for 'everything' is that it will have some small overhead and there won't always be a way to make good use of the notifications, so then that overhead goes to waste.

            Imagine a web browser sending notifications to the desktop compositor via this interface every time a rectangle is updated in the browser. It would be a huge win to update only the 32x32 rotating loading image instead of the entire browser window at every frame. But sending notifications for every image in a page with hundreds of images, or for each character of a scrolling line of text, or for each cell of a table during initial layout... those would all be fails. So it needs to be used strategically.

            Comment


            • #7
              Originally posted by trek View Post
              probably because there is no interest to save bandwidth on a dedicated wire to the monitor (VGA, DVI, HDMI), but it become useful on a shared bus (USB)
              It will be interesting to watch if that remains the case. As we are getting higher and higher resolution screens and items like display-port wanting to put 3 monitors on 1 cable and DVI can in fact do 2 monitors on 1 cable..

              Originally posted by TheOne View Post
              Yeah, maybe this could help with tearing...
              Adaptive Sync, G-sync(nvidia), Freesync(amd) are designed to prevent tearing by altering the frame rate up and down. So tearing is prevented as this comes into usage. The reason for looking at thisdamaged rectangle stuff is bandwidth.

              Now the possible usage cases of this change long term.
              1. Prime buffer sharing could possibly benefit from damaged rectangle so only what is changed has to be transferred between video card/user-space. https://www.kernel.org/doc/html/v4.1...buffer-sharing
              2. VM interfaces like virtio-gpu and VMware's virtual graphics driver
              3. Bandwidth restricted Items like display link evdi that is over usb. Or possible hdmi/dvi/displayport if screen resolutions keep on growing.
              4. Remote Desktop
              One of the reasons why Splice, RDP and VNC have be implemented at the compositor/server level this has been how to get access to damaged rectangle information that you need to make doing them perform. Now if this information is now at DRM level in kernel and standard this alters the game and may fix the issue of each wayland compositor having to implement RDP/VNC .... Instead just make them a graphics driver..

              Now people have said RDP has like video acceleration and Wayland design does not allow for this. If implemented as a kernel driver set RDP screens could expose accelerated video decode.

              This is another one of these areas were we need to think about have we been implementing remote desktop software in the right place.

              Comment


              • #8
                Originally posted by oiaohm View Post
                It will be interesting to watch if that remains the case. As we are getting higher and higher resolution screens and items like display-port wanting to put 3 monitors on 1 cable and DVI can in fact do 2 monitors on 1 cable..
                DVI does it by physically having two different sets of pins, resulting in "Dual-link DVI" cables being two cables in one, electrically. It's still a protocol built around fixed timing.

                Comment


                • #9
                  Originally posted by linuxgeex View Post

                  The main reason this won't be useful for 'everything' is that it will have some small overhead and there won't always be a way to make good use of the notifications, so then that overhead goes to waste.

                  Imagine a web browser sending notifications to the desktop compositor via this interface every time a rectangle is updated in the browser. It would be a huge win to update only the 32x32 rotating loading image instead of the entire browser window at every frame. But sending notifications for every image in a page with hundreds of images, or for each character of a scrolling line of text, or for each cell of a table during initial layout... those would all be fails. So it needs to be used strategically.
                  I think it's possible to make a heuristic that chooses whether it's worth sending a few damaged regions or rather whole screen.

                  Comment


                  • #10
                    Originally posted by ssokolow View Post
                    DVI does it by physically having two different sets of pins, resulting in "Dual-link DVI" cables being two cables in one, electrically. It's still a protocol built around fixed timing.
                    Digital video stream:
                    Single link: 1920 × 1200 (WUXGA) @ 60 Hz
                    Dual link: 2560 × 1600 (WQXGA) @ 60 Hz
                    Above is what DVI specification says.
                    But you do find single link displays doing WQXGA (2560 × 1600) @ 30 Hz with CVT-RB blanking (132 MHz).

                    The reality here is yes DVI is fixed speed to a point. Add adaptive sync and only sending what has changed could be used to exceed these limits by a lot larger margins than currently done. Its not like unapproved extensions to have not turned up before like how to output HDMI audio out a DVI port. Time will tell if DVI ports add a mode to only send what has changed.

                    As screen size increases bandwidth limits of cables comes more of a problem even cables we would think are very fast.

                    Comment

                    Working...
                    X