Announcement

Collapse
No announcement yet.

Vulkan Wayland Compositors Are Nearing Reality

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

  • #11
    Soooo Sway is going to play nicely with nvidia GPUs via Vulkan support?

    Comment


    • #12
      Originally posted by polarathene View Post
      Soooo Sway is going to play nicely with nvidia GPUs via Vulkan support?
      AFAIK the people working on WLROOTS are also making Sway, so if WLROOTS adds support, it would be weird if Sway didn't.

      Comment


      • #13
        Originally posted by bofh80
        while, that's nice. n all. great work. kudos all around.
        however, would someone put me out of my misery and tell me WHY we need 3d for desktop?
        What's wrong with the fastest path, cpu? like we've been doing for years. (with or without buggy 2d accel).
        And i don't mean the software emulated compositor. . Unless you're going to tell me it's as fast and responsive as.
        Is it just the resolutions we use these days or what?
        (I don't care for stupid fancy effects, i'm looking for some technical reasons beyond eye candy)

        Considering that most of you are using a composited desktop i expect a lot of considered responses.
        A lot of it has to do with power consumption. Sure, maybe a barebones compositor can maintain 60fps, but don't expect it to run particularly efficiently or be able to have any kind of advanced featureset. And then as you open up more applications that'll slow it down even more. There are tricks that one can use to reduce input latency to something completely imperceptible on a GPU accelerated system

        Comment


        • #14
          Originally posted by bofh80
          while, that's nice. n all. great work. kudos all around.
          however, would someone put me out of my misery and tell me WHY we need 3d for desktop?
          What's wrong with the fastest path, cpu? like we've been doing for years. (with or without buggy 2d accel).
          And i don't mean the software emulated compositor. . Unless you're going to tell me it's as fast and responsive as.
          Is it just the resolutions we use these days or what?
          (I don't care for stupid fancy effects, i'm looking for some technical reasons beyond eye candy)

          Considering that most of you are using a composited desktop i expect a lot of considered responses.
          Not an expert on how compositors work, but I believe for years we've NOT been using the CPU. It's currently using OpenGL to render your windows, and with this they are just switching from OpenGL to Vulkan. Why we need to use the GPU instead of the CPU? So that you get smoother UI (even without fancy effects you still need the GPU for just normal usage; smoother scrolling for example), keep your CPU colder, keep your fan noise lower, save battery, and leave the CPU free to do more important things.

          Comment


          • #15
            Originally posted by shmerl View Post
            So now they won't need GBM and EGLstreams anymore?
            Vulkan uses DMA_BUF, which the nVidia driver is on the road to support. And eventually (and eventually is not tomorrow, but neither is it years away) then the entire GBM/EGLStreams issue will no longer be interesting except for those that need a reason to hate (and you know who you are).
            Last edited by CommunityMember; 20 January 2021, 09:52 PM.

            Comment


            • #16
              Originally posted by CommunityMember View Post

              Vulkan uses DMA_BUF, which the nVidia driver is on the road to support. And eventually the the entire GBM/EGLStreams issue will no longer be interesting except for those that need a reason to hate (and you know who you are).
              If I remember correctly, Nvidia can't support DMA-BUF due to GPL "symbol poisoning" that their blob would cause if they do. So not sure if this can be fixed in an way besides Nvidia upstreaming their driver and cooperating with kernel developers properly.

              Comment


              • #17
                Originally posted by bofh80
                however, would someone put me out of my misery and tell me WHY we need 3d for desktop?
                What's wrong with the fastest path, cpu? like we've been doing for years.
                Is it just the resolutions we use these days or what?
                Even if you're not fond of any eye-candy, depending on DE it would make sense to prefer the more performant choice for such when it comes to supporting those who would like such.

                What's your definition of eye candy though? You can have transition effects that are rather subtle, be that scaling transforms or fade-ins that are very brief, or accessibility things like zooming into a region of the display that follows the mouse or highlights where the cursor is, inverts display for those with visual impairments. Not everything needs to be stupid fancy effects that benefits from GPU.

                CPU has to blit each individual pixel and track dirty regions for updates vs letting the GPU stack a bunch of layers and decide what's visible from that to paint/update a texture that everything is composited into. I'm not a DE/compositor dev mind you, but I've done some similar stuff in the past with GPU/CPU updates for apps/games.

                CPU gets worse perf as resolution scales, GPU can be very efficient. So yeah I think moving to 4k displays and up, you'd rather not waste CPU resources for one. GPUs excel at handling image data, whereas a CPU is more generic in purpose, doesn't parallelize as well, similar case when it comes to baking 2D textures or rendering 2D frames in 3D graphics for film/games.

                Why do you think CPU is the fastest path? CPUs can do certain tasks faster than GPUs, but image manipulation isn't one of them.

                3D btw is just a bunch of triangles filled with some pixel information, in todays graphics those are often very small triangles, or big triangles with plenty of pixels. The triangle may be skewed on some angle and represent more pixels than the space it has to render in, so another term is often used texels which refer to the pixels the triangle actually can represent, these texels may be rendered at a different scale like resizing an image pixels based on how the triangle is rendered to 2D, those texels may then be represented as a larger or reduced ratio to actual pixels used. This might be better understood if you look at old games from like 10-20 years ago where it was more obvious, but when you go up close to a 3D object in a game, the pixels may get more blurry/pixelated looking as it lacks the actual pixel data to represent details that close to save on memory/performance back then, these days modern games can have much more texture information.

                So if you take away one dimension for those triangles to be in, you get 2D. That third dimension is still used to layer/stack the triangles on top of one another, so call that what you will, 2D, 2.5D, whatever. We work with rectangular shapes on desktop usually, that's a simple 2 triangles, a quad. You can map an image on to that, add a transparency mask for rounded corners and such and be happy with that, it's not as efficient though as subdividing that into some more triangles where you can optimize the textures some more, I don't entirely know how compositors are going about it, and the individual UI toolkits may play a role in it somewhere, every button/icon or letter in text can be two triangles with a texture (text is a good example, since it's one where you can have many instances of the same letters, but texture wise only needs to be one texture with all the letters in it, and some software adds a bunch of quads with offsets that reference a portion of that texture to build up lines of text.

                When you move the windows or resize them, on CPU you are blitting fixed pixels based on position, it gets more complicated with sub-pixels where it may round to the nearest pixel and for movement like resizing sort of look like snapping. Less of an issue the higher the pixel density is, but this is something GPUs handle quite nicely. It's been a while so my knowledge about such could be a bit outdated, I assume it'd still be another slow down for CPU vs GPU however. Not something you'd consider eye-candy, but definitely something you'd notice.

                ---

                TL;DR

                CPU is not the fastest path, GPUs are great at manipulating a lot of pixels and 3D is generally broken down into many triangles, those can still be arranged into shapes for 2D usage where the 3rd dimension is depth for layers (eg windows over other windows, context menus, etc).

                Comment


                • #18
                  For more information about this: https://youtu.be/4PflCyiULO4?t=28058

                  I for one welcome Vulkan taking over everything :B.

                  Comment


                  • #19
                    Originally posted by bofh80
                    while, that's nice. n all. great work. kudos all around.
                    however, would someone put me out of my misery and tell me WHY we need 3d for desktop?
                    What's wrong with the fastest path, cpu? like we've been doing for years. (with or without buggy 2d accel).
                    And i don't mean the software emulated compositor. . Unless you're going to tell me it's as fast and responsive as.
                    Is it just the resolutions we use these days or what?
                    (I don't care for stupid fancy effects, i'm looking for some technical reasons beyond eye candy)

                    Considering that most of you are using a composited desktop i expect a lot of considered responses.
                    Something to be aware of is in modern GPU there is basically no 2d accel hardware. Glamour stuff in X11 is about using 3d parts of the gpu for 2d acceleration.

                    CPU are not designed to shove around image data at speed like GPU are.

                    Comment


                    • #20
                      Originally posted by bofh80
                      while, that's nice. n all. great work. kudos all around.
                      however, would someone put me out of my misery and tell me WHY we need 3d for desktop?
                      What's wrong with the fastest path, cpu? like we've been doing for years. (with or without buggy 2d accel).
                      And i don't mean the software emulated compositor. . Unless you're going to tell me it's as fast and responsive as.
                      Is it just the resolutions we use these days or what?
                      (I don't care for stupid fancy effects, i'm looking for some technical reasons beyond eye candy)

                      Considering that most of you are using a composited desktop i expect a lot of considered responses.
                      Because CPU is not a fastest path anymore. Count pixels on a 4K screen, then multiply by bpp, then multiply by some fixed factor to account for multiple layers of textures in compositing, and then compare that with RAM throughput and CPU frequency*IPC. You'll be surprised.

                      TL;DR: yes, we've been doing this for years. If you are content with a single 1024x768 display with windows drawn in immediate mode (so basically no protection against unresponsive apps), feel free to continue to do that. But copying huge blocks of pixels back and forth is literally the worst possible use of CPU time and RAM bandwidth.
                      Last edited by intelfx; 20 January 2021, 11:57 PM.

                      Comment

                      Working...
                      X