Page 4 of 4 FirstFirst ... 234
Results 31 to 40 of 40

Thread: LLVMpipe rocks :)

  1. #31
    Join Date
    Jan 2009
    Posts
    291

    Default

    meh... the cpu is probably alot more bandwith limited than the cpu anyway so that contributes to slowness as well.

  2. #32
    Join Date
    Jan 2007
    Posts
    459

    Default Libgl_always_software=1

    for no other reason than someone might find this info useful sometime and they referenced an unnamed phoronix thread
    http://lists.freedesktop.org/archive...er/006428.html



    >Álmos: BTW I found absolutely no docs about how to change the driver to softpipe from
    > r300g. After hours of googling the only clue I found was
    > 'LIBGL_ALWAYS_SOFTWARE=1' in a comment on a phoronix forum.

    Marek Olšák: Create an empty directory, add a swrast_dri.so symlink there that points to
    swrastg_dri.so or whatever driver you need. Set LIBGL_DRIVERS_PATH for it to
    contain the path to that directory. Every 3D application will then look for
    $LIBGL_DRIVERS_PATH/r300_dri.so, which wouldn't be there. Then it will look for
    $LIBGL_DRIVERS_PATH/swrast_dri.so and load it.

    To get r300g:
    LIBGL_DRIVERS_PATH=/home/..../mesa/lib/gallium glxinfo

    To get r300c:
    LIBGL_DRIVERS_PATH=/home/..../mesa/lib glxinfo

    To get swrast:
    ln -s /home/..../mesa/lib/swrast_dri.so /some-path/swrast_dri.so
    LIBGL_DRIVERS_PATH=/some-path glxinfo

    To get llvmpipe (assumming you build with --enable-gallium-llvm):
    ln -s /home/..../mesa/lib/gallium/swrastg_dri.so /some-path/swrast_dri.so
    LIBGL_DRIVERS_PATH=/some-path glxinfo

    To get softpipe (assumming you build with --enable-gallium-llvm):
    ln -s /home/..../mesa/lib/gallium/swrastg_dri.so /some-path/swrast_dri.so
    LIBGL_DRIVERS_PATH=/some-path GALLIUM_DRIVER=softpipe glxinfo

    Or you may use LIBGL_ALWAYS_SOFTWARE, but I don't use that.

  3. #33
    Join Date
    Aug 2010
    Location
    Denmark
    Posts
    142

    Default

    Quote Originally Posted by darkbasic View Post
    This is openarena@640x480 with lowest settings on my shitty Intel gma45:
    Code:
    niko2@laptop ~ $ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 14.0 seconds 60.0 fps 6.0/16.7/57.0/3.0 ms
    Obiouvsly it's capped at 60fps by vsync.

    And this is with LLVMpipe on my *1.4Ghz* Core 2 duo ULV:
    Code:
    niko2@laptop ~ $ LIBGL_ALWAYS_SOFTWARE=1 openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 35.6 seconds 23.6 fps 22.0/42.3/794.0/15.0 ms
    Not bad for an 1.4GHz cpu
    That's odd. I get 5.5 fps running lowest settings on my Core 2 Quad 2.83 GHz:

    Code:
    rune@runescomp:~$ LIBGL_ALWAYS_SOFTWARE=1 openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 152.8 seconds 5.5 fps 88.0/181.9/465.0/44.5 ms
    How can that be? I'm using the xorg-edgers PPA, by the way, with code from 20101221 git:

  4. #34
    Join Date
    Dec 2009
    Location
    Italy
    Posts
    174

    Default

    Quote Originally Posted by runeks View Post
    That's odd. I get 5.5 fps running lowest settings on my Core 2 Quad 2.83 GHz:

    Code:
    rune@runescomp:~$ LIBGL_ALWAYS_SOFTWARE=1 openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 152.8 seconds 5.5 fps 88.0/181.9/465.0/44.5 ms
    How can that be? I'm using the xorg-edgers PPA, by the way, with code from 20101221 git:
    Last time I checked (December) xorg-edgers had only the software rasterizer (despite saying otherwise) which would produce results similar to yours. Could you check it with glxinfo?

  5. #35
    Join Date
    Aug 2010
    Location
    Denmark
    Posts
    142

    Default

    ^
    Yep, you are right:
    Code:
    rune@runescomp:~$ LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep OpenGL
    OpenGL vendor string: Mesa Project
    OpenGL renderer string: Software Rasterizer
    OpenGL version string: 2.1 Mesa 7.10-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    Is it because I should be using the Gallium driver? Do they have the LLVM-pipe driver as the default for software rasterization?

    I was actually going to try that, but I don't know where xorg-edgers have put the Gallium drivers now... They're not in /usr/lib/dri/gallium/ like they used to be. And libgl1-mesa-dri-experimental only contains the following:

    Code:
    rune@runescomp:~$ dpkg -L libgl1-mesa-dri-experimental
    /.
    /usr
    /usr/lib
    /usr/lib/dri
    /usr/lib/dri/nouveau_dri.so
    /usr/share
    /usr/share/doc
    /usr/share/doc/libgl1-mesa-dri-experimental
    /usr/share/doc/libgl1-mesa-dri-experimental/changelog.gz
    /usr/share/doc/libgl1-mesa-dri-experimental/changelog.Debian.gz
    /usr/share/doc/libgl1-mesa-dri-experimental/copyright

  6. #36
    Join Date
    Dec 2009
    Location
    Italy
    Posts
    174

    Default

    Quote Originally Posted by runeks View Post
    ^
    Yep, you are right:
    Code:
    rune@runescomp:~$ LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep OpenGL
    OpenGL vendor string: Mesa Project
    OpenGL renderer string: Software Rasterizer
    OpenGL version string: 2.1 Mesa 7.10-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    Is it because I should be using the Gallium driver? Do they have the LLVM-pipe driver as the default for software rasterization?

    I was actually going to try that, but I don't know where xorg-edgers have put the Gallium drivers now... They're not in /usr/lib/dri/gallium/ like they used to be. And libgl1-mesa-dri-experimental only contains the following:

    Code:
    rune@runescomp:~$ dpkg -L libgl1-mesa-dri-experimental
    /.
    /usr
    /usr/lib
    /usr/lib/dri
    /usr/lib/dri/nouveau_dri.so
    /usr/share
    /usr/share/doc
    /usr/share/doc/libgl1-mesa-dri-experimental
    /usr/share/doc/libgl1-mesa-dri-experimental/changelog.gz
    /usr/share/doc/libgl1-mesa-dri-experimental/changelog.Debian.gz
    /usr/share/doc/libgl1-mesa-dri-experimental/copyright
    llvmpipe is part of gallium so you definitely need it. Last time I checked, however, llvmpipe was simply not built in xorg-edgers, so you will probably need to build it from source (not that hard, though).

  7. #37
    Join Date
    Dec 2007
    Posts
    2,341

    Default

    LIBGL_ALWAYS_SOFTWARE=1 uses swrast by default not llvmpipe. As was noted previously, see this link to force which 3D driver is used:
    http://lists.freedesktop.org/archive...er/006428.html

  8. #38
    Join Date
    Aug 2010
    Location
    Denmark
    Posts
    142

    Default

    Thanks for the input all. You're right, xorg-edgers don't package llvmpipe, so I had to build it myself. I finally got around to doing that:

    Runs at a respectable ~30 fps:

    Code:
    rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe
    OpenGL version string: 2.1 Mesa 7.11-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 30.5 seconds 27.6 fps 15.0/36.3/1021.0/16.0 ms
    That's barely slower than my HD 3870! (at ~36 fps)

    Code:
    rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
    OpenGL vendor string: X.Org
    OpenGL renderer string: Gallium 0.4 on AMD RV670
    OpenGL version string: 1.4 (2.1 Mesa 7.11-devel)
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 36.2 seconds 23.2 fps 2.0/43.1/109.0/19.6 ms
    But I guess it's the low resolution right? 640x480 seems to create a bottleneck somewhere in the system. Still though... 36 fps isn't much on a GPU.

    Here's 1600x1200 for a comparison:


    Code:
    rune@runescomp:~/Programming/mesa$ glxinfo | grep Gallium
    OpenGL renderer string: Gallium 0.4 on llvmpipe
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 76.1 seconds 11.0 fps 53.0/90.6/787.0/22.6 ms
    Still, 11 fps at 1600x1200 isn't bad for software!

    Code:
    rune@runescomp:~/Programming/mesa$ glxinfo | grep Gallium
    OpenGL renderer string: Gallium 0.4 on AMD RV670
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 43.2 seconds 19.5 fps 3.0/51.4/113.0/21.1 ms
    It's better, but only less that twice as fast. LLVMpipe does quite a job! (or maybe the RV670 gallium driver just sucks)

    Hmm, by closer look I notice the r600g driver only supports OpenGL 1.4, could that be the problem? Falling back to software to reach version 2.1, or whatever is required by OpenArena?

  9. #39
    Join Date
    Aug 2010
    Location
    Denmark
    Posts
    142

    Default

    I must have messed something up, probably setting LD_LIBRARY_PATH to something invalid. I'm getting proper framerates on r600g now.

    At 640x480, a whopping 58 fps from llvmpipe vs. 72 fps for r600g:

    Code:
    rune@runescomp:~/Programming/mesa$ LD_LIBRARY_PATH=/home/rune/Programming/mesa/lib LIBGL_DRIVERS_PATH=/home/rune/Programming/mesa/lib/gallium/ glxinfo | grep OpenGL
    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe
    OpenGL version string: 2.1 Mesa 7.11-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ LD_LIBRARY_PATH=/home/rune/Programming/mesa/lib LIBGL_DRIVERS_PATH=/home/rune/Programming/mesa/lib/gallium/ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 14.5 seconds 57.8 fps 7.0/17.3/355.0/10.2 ms
    rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
    OpenGL vendor string: X.Org
    OpenGL renderer string: Gallium 0.4 on AMD RV670
    OpenGL version string: 2.1 Mesa 7.11-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 11.6 seconds 72.3 fps 4.0/13.8/50.0/2.6 ms
    At 1600x1200, llvmpipe is up to 20 fps now and r600g is at 77 fps:

    Code:
    rune@runescomp:~/Programming/mesa$ LD_LIBRARY_PATH=/home/rune/Programming/mesa/lib LIBGL_DRIVERS_PATH=/home/rune/Programming/mesa/lib/gallium/ glxinfo | grep OpenGL
    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe
    OpenGL version string: 2.1 Mesa 7.11-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ LD_LIBRARY_PATH=/home/rune/Programming/mesa/lib LIBGL_DRIVERS_PATH=/home/rune/Programming/mesa/lib/gallium/ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 41.5 seconds 20.2 fps 31.0/49.4/519.0/14.0 ms
    rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
    OpenGL vendor string: X.Org
    OpenGL renderer string: Gallium 0.4 on AMD RV670
    OpenGL version string: 2.1 Mesa 7.11-devel
    OpenGL shading language version string: 1.20
    OpenGL extensions:
    rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
    840 frames 11.0 seconds 76.7 fps 2.0/13.0/51.0/5.0 ms
    I'm still impressed by llvm(pipe). r600g frame rate seems to be limited to vsync though, and vblank_mode=0 doesn't seem to help.

  10. #40
    Join Date
    Feb 2011
    Location
    Ukraine
    Posts
    132

    Default

    Quote Originally Posted by runeks View Post
    I'm still impressed by llvm(pipe). r600g frame rate seems to be limited to vsync though, and vblank_mode=0 doesn't seem to help.
    May be Option "SwapbuffersWait" "off" in xorg.conf?

    Code:
    vblank_mode=0 glxgears
    ATTENTION: default value of option vblank_mode overridden by environment.
    ATTENTION: default value of option vblank_mode overridden by environment.
    4469 frames in 5.0 seconds = 893.767 FPS

Posting Permissions

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