Page 2 of 2 FirstFirst 12
Results 11 to 16 of 16

Thread: XWayland being under active development again

  1. #11

    Default

    Quote Originally Posted by ChrisXY View Post
    Seriously, how do you guys do this? It hasn't compiled for me in weeks.
    If you are on Arch, you can use these PKGBUILDS:
    http://pastebin.com/qMWuF2Sx
    http://pastebin.com/GNrp14ZA
    They should work fine.

  2. #12
    Join Date
    Dec 2012
    Posts
    155

    Default

    Quote Originally Posted by LinuxGamer View Post
    Let me know if any games run well on it will you?
    It's not a game, but I tested glmark2.

    Since most glmark2 benchmarks are very high fps, I only compare the terrain test at fullscreen to have a <60 fps benchmark, that can be used to deduce game's performance.

    Weston: 51 fps
    Bare X: 47 fps
    Xwayland: 44 fps

    On Weston (with a recent bug fix), compositing is bypassed since the application is fullscreen and opaque: The buffer sent by the application is directly used for the framebuffer.

    I expected the performance to be the same on X, because I thought it would bypass compositing too.

    On Xwayland, the surface is fullscreen and then the buffer sent by Xwayland is directly used for the framebuffer. I do not understand really why the performance is lower. Since I saw there is problem with vsync or vblank (glxgears runs at 60fps on bare X, but 18000 fps or more on Xwayland), that may cause the performance hit. I expect this to be solved when people will use Xwayland.

    My tests were done with the last xwayland and xf86-video-intel on an intel hd4000.

  3. #13
    Join Date
    Jun 2010
    Location
    ฿ 16LDJ6Hrd1oN3nCoFL7BypHSEYL84ca1JR
    Posts
    1,021

    Default

    Quote Originally Posted by stativ View Post
    If you are on Arch, you can use these PKGBUILDS:
    http://pastebin.com/qMWuF2Sx
    http://pastebin.com/GNrp14ZA
    They should work fine.
    Thanks, I added a few flags to the xserver and it compiled. The previous xwayland-1.12 didn't require that I think.

    I'm trying to install it to /opt/xwayland and got it almost working by creating a xorg.conf that sets the ModulePath "/opt/xwayland/lib/xorg/modules" and adding a few configure flags like --prefix=/opt/xwayland --with-serverconfig-path=/opt/xwayland/etc --with-module-dir=/opt/xwayland/lib/xorg/modules but I haven't been able to get those two correct:
    Using config directory: "/etc/X11/xorg.conf.d"
    Using system config directory "/usr/share/X11/xorg.conf.d"

    There's always this when running weston in X:
    (II) xfree86: Adding drm device (/dev/dri/card0)
    [334133.684] setversion 1.4 failed: Permission denied
    But I don't think it's a problem...

    Then it loads /opt/xwayland/lib/xorg/modules/extensions/libxwayland.so /opt/xwayland/lib/xorg/modules/extensions/libglx.so and /opt/xwayland/lib/xorg/modules/drivers/intel_drv.so nicely.

    And then it's over with:
    (EE) Screen 0 deleted because of no matching config section.
    (II) UnloadModule: "intel"
    (EE) Device(s) detected, but none match those in the config file.


    They really ought to make setting up xwayland easier.

  4. #14
    Join Date
    Dec 2012
    Posts
    155

    Default

    Quote Originally Posted by mannerov View Post
    I expected the performance to be the same on X, because I thought it would bypass compositing too.

    On Xwayland, the surface is fullscreen and then the buffer sent by Xwayland is directly used for the framebuffer.
    I have an update about this,
    Since there isn't sync support right now, XWayland doesn't bypass X compositing (whereas the applications could because they are fullscreen).
    There is a copy and that explains the lower performance than on bare X.

    The way to avoid the copy would be reenabled, when sync to the frame Wayland display is implemented. (and then performance would be the same than on X).

  5. #15
    Join Date
    Jul 2013
    Location
    USA
    Posts
    715

    Default

    Quote Originally Posted by mannerov View Post
    I have an update about this,
    Since there isn't sync support right now, XWayland doesn't bypass X compositing (whereas the applications could because they are fullscreen).
    There is a copy and that explains the lower performance than on bare X.

    The way to avoid the copy would be reenabled, when sync to the frame Wayland display is implemented. (and then performance would be the same than on X).
    we may end up getting better performance then Xorg using Xwayland once its all said and done

  6. #16
    Join Date
    Dec 2012
    Posts
    155

    Default

    Quote Originally Posted by LinuxGamer View Post
    we may end up getting better performance then Xorg using Xwayland once its all said and done
    Probably.

    I finally managed to test PRIME on X. Applications launched on the dedicated card (radeonsi) were black, except when fullscreen.
    Performance was cool (there was a lot of tearings however).

    I made some benchmarks that show the cost of a copy (and we can hope better performance when this copy will be avoided) for my card.


    glmark2-wayland, fullscreen (1920x1080) on an embedded weston (under weston) running on the dedicated card.
    Code:
    =======================================================
        glmark2 2012.12
    =======================================================
        OpenGL Information
        GL_VENDOR:     X.Org
        GL_RENDERER:   Gallium 0.4 on AMD CAPE VERDE
        GL_VERSION:    2.1 Mesa 9.3.0-devel (git-15da955)
    =======================================================
    [build] use-vbo=false: FPS: 753 FrameTime: 1.328 ms
    [build] use-vbo=true: FPS: 789 FrameTime: 1.267 ms
    [texture] texture-filter=nearest: FPS: 658 FrameTime: 1.520 ms
    [texture] texture-filter=linear: FPS: 659 FrameTime: 1.517 ms
    [texture] texture-filter=mipmap: FPS: 665 FrameTime: 1.504 ms
    [shading] shading=gouraud: FPS: 674 FrameTime: 1.484 ms
    [shading] shading=blinn-phong-inf: FPS: 675 FrameTime: 1.481 ms
    [shading] shading=phong: FPS: 672 FrameTime: 1.488 ms
    [bump] bump-render=high-poly: FPS: 620 FrameTime: 1.613 ms
    [bump] bump-render=normals: FPS: 762 FrameTime: 1.312 ms
    [bump] bump-render=height: FPS: 760 FrameTime: 1.316 ms
    [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 404 FrameTime: 2.475 ms
    [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 256 FrameTime: 3.906 ms
    [pulsar] light=false:quads=5:texture=false: FPS: 462 FrameTime: 2.165 ms
    [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 164 FrameTime: 6.098 ms
    [desktop] effect=shadow:windows=4: FPS: 207 FrameTime: 4.831 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 305 FrameTime: 3.279 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 301 FrameTime: 3.322 ms
    [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 326 FrameTime: 3.067 ms
    [ideas] speed=duration: FPS: 293 FrameTime: 3.413 ms
    [jellyfish] <default>: FPS: 344 FrameTime: 2.907 ms
    [terrain] <default>: FPS: 59 FrameTime: 16.949 ms
    [shadow] <default>: FPS: 192 FrameTime: 5.208 ms
    [refract] <default>: FPS: 92 FrameTime: 10.870 ms
    [conditionals] fragment-steps=0:vertex-steps=0: FPS: 618 FrameTime: 1.618 ms
    [conditionals] fragment-steps=5:vertex-steps=0: FPS: 618 FrameTime: 1.618 ms
    [conditionals] fragment-steps=0:vertex-steps=5: FPS: 618 FrameTime: 1.618 ms
    [function] fragment-complexity=low:fragment-steps=5: FPS: 617 FrameTime: 1.621 ms
    [function] fragment-complexity=medium:fragment-steps=5: FPS: 617 FrameTime: 1.621 ms
    [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 618 FrameTime: 1.618 ms
    [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 617 FrameTime: 1.621 ms
    [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 617 FrameTime: 1.621 ms
    =======================================================
                                      glmark2 Score: 501 
    =======================================================
    glmark2, fullscreen (1920x1080) on the dedicated card with PRIME on bare X.
    Code:
    =======================================================
        glmark2 2012.12
    =======================================================
        OpenGL Information
        GL_VENDOR:     X.Org
        GL_RENDERER:   Gallium 0.4 on AMD CAPE VERDE
        GL_VERSION:    2.1 Mesa 9.3.0-devel (git-15da955)
    =======================================================
    [build] use-vbo=false: FPS: 196 FrameTime: 5.102 ms
    [build] use-vbo=true: FPS: 196 FrameTime: 5.102 ms
    [texture] texture-filter=nearest: FPS: 188 FrameTime: 5.319 ms
    [texture] texture-filter=linear: FPS: 188 FrameTime: 5.319 ms
    [texture] texture-filter=mipmap: FPS: 189 FrameTime: 5.291 ms
    [shading] shading=gouraud: FPS: 187 FrameTime: 5.348 ms
    [shading] shading=blinn-phong-inf: FPS: 187 FrameTime: 5.348 ms
    [shading] shading=phong: FPS: 187 FrameTime: 5.348 ms
    [bump] bump-render=high-poly: FPS: 188 FrameTime: 5.319 ms
    [bump] bump-render=normals: FPS: 195 FrameTime: 5.128 ms
    [bump] bump-render=height: FPS: 195 FrameTime: 5.128 ms
    [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 156 FrameTime: 6.410 ms
    [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 141 FrameTime: 7.092 ms
    [pulsar] light=false:quads=5:texture=false: FPS: 153 FrameTime: 6.536 ms
    [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 114 FrameTime: 8.772 ms
    [desktop] effect=shadow:windows=4: FPS: 129 FrameTime: 7.752 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 160 FrameTime: 6.250 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 159 FrameTime: 6.289 ms
    [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 160 FrameTime: 6.250 ms
    [ideas] speed=duration: FPS: 145 FrameTime: 6.897 ms
    [jellyfish] <default>: FPS: 131 FrameTime: 7.634 ms
    [terrain] <default>: FPS: 55 FrameTime: 18.182 ms
    [shadow] <default>: FPS: 127 FrameTime: 7.874 ms
    [refract] <default>: FPS: 79 FrameTime: 12.658 ms
    [conditionals] fragment-steps=0:vertex-steps=0: FPS: 180 FrameTime: 5.556 ms
    [conditionals] fragment-steps=5:vertex-steps=0: FPS: 180 FrameTime: 5.556 ms
    [conditionals] fragment-steps=0:vertex-steps=5: FPS: 180 FrameTime: 5.556 ms
    [function] fragment-complexity=low:fragment-steps=5: FPS: 180 FrameTime: 5.556 ms
    [function] fragment-complexity=medium:fragment-steps=5: FPS: 180 FrameTime: 5.556 ms
    [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 180 FrameTime: 5.556 ms
    [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 180 FrameTime: 5.556 ms
    [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 180 FrameTime: 5.556 ms
    =======================================================
                                      glmark2 Score: 163 
    =======================================================
    glmark2 running on XWayland under an embedded weston (under weston) running on the dedicated card.
    Code:
    =======================================================
        glmark2 2012.12
    =======================================================
        OpenGL Information
        GL_VENDOR:     X.Org
        GL_RENDERER:   Gallium 0.4 on AMD CAPE VERDE
        GL_VERSION:    2.1 Mesa 9.3.0-devel (git-15da955)
    =======================================================
    [build] use-vbo=false: FPS: 215 FrameTime: 4.651 ms
    [build] use-vbo=true: FPS: 216 FrameTime: 4.630 ms
    [texture] texture-filter=nearest: FPS: 202 FrameTime: 4.950 ms
    [texture] texture-filter=linear: FPS: 202 FrameTime: 4.950 ms
    [texture] texture-filter=mipmap: FPS: 203 FrameTime: 4.926 ms
    [shading] shading=gouraud: FPS: 201 FrameTime: 4.975 ms
    [shading] shading=blinn-phong-inf: FPS: 201 FrameTime: 4.975 ms
    [shading] shading=phong: FPS: 201 FrameTime: 4.975 ms
    [bump] bump-render=high-poly: FPS: 201 FrameTime: 4.975 ms
    [bump] bump-render=normals: FPS: 213 FrameTime: 4.695 ms
    [bump] bump-render=height: FPS: 213 FrameTime: 4.695 ms
    [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 157 FrameTime: 6.369 ms
    [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 139 FrameTime: 7.194 ms
    [pulsar] light=false:quads=5:texture=false: FPS: 156 FrameTime: 6.410 ms
    [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 106 FrameTime: 9.434 ms
    [desktop] effect=shadow:windows=4: FPS: 123 FrameTime: 8.130 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 167 FrameTime: 5.988 ms
    [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 167 FrameTime: 5.988 ms
    [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 168 FrameTime: 5.952 ms
    [ideas] speed=duration: FPS: 145 FrameTime: 6.897 ms
    [jellyfish] <default>: FPS: 127 FrameTime: 7.874 ms
    [terrain] <default>: FPS: 50 FrameTime: 20.000 ms
    [shadow] <default>: FPS: 114 FrameTime: 8.772 ms
    [refract] <default>: FPS: 60 FrameTime: 16.667 ms
    [conditionals] fragment-steps=0:vertex-steps=0: FPS: 190 FrameTime: 5.263 ms
    [conditionals] fragment-steps=5:vertex-steps=0: FPS: 191 FrameTime: 5.236 ms
    [conditionals] fragment-steps=0:vertex-steps=5: FPS: 191 FrameTime: 5.236 ms
    [function] fragment-complexity=low:fragment-steps=5: FPS: 191 FrameTime: 5.236 ms
    [function] fragment-complexity=medium:fragment-steps=5: FPS: 191 FrameTime: 5.236 ms
    [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 191 FrameTime: 5.236 ms
    [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 191 FrameTime: 5.236 ms
    [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 191 FrameTime: 5.236 ms
    =======================================================
                                      glmark2 Score: 171 
    =======================================================
    Comparing Wayland - XWayland (the main difference being the additional copy) gives that a copy on my card costs about 3 ms (18% for a 60 fps application).

    EDIT: And don't interpret figures as XWayland performs better than X. If you look at fps around 60 fps, you see that X performs better. The better performance for high fps benchmarks may be due to the format of the pixmap shared from XWayland to Wayland being different than the one X gives to the screen. The last copy done by X may then be slightly slower than the one by XWayland before giving the pixmap to Wayland, and we see the difference for high fps benchmarks, were we do much more copies than for slow fps benchmarks
    Last edited by mannerov; 09-23-2013 at 05:29 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •