Announcement

Collapse
No announcement yet.

LLVMpipe Effectively At OpenGL 4.6 With Anistropic Filtering Now Supported

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

  • LLVMpipe Effectively At OpenGL 4.6 With Anistropic Filtering Now Supported

    Phoronix: LLVMpipe Effectively At OpenGL 4.6 With Anistropic Filtering Now Supported

    The LLVMpipe software OpenGL driver in Gallium3D as well as the Lavapipe Vulkan software implementation now have anisotropic texture filtering support with Mesa 20.3 development code...

    https://www.phoronix.com/scan.php?pa...Mpipe-Lands-AF

  • #2

    Comment


    • #3
      Typo: Mesa 20.3 should be Mesa 21.3!

      Comment


      • #4
        Just curiosity :

        -What do you think is the performance ratio of a general purpose CPU executing OpenGL 4.6 via LLVMpipe vs a GPU using its native libraries?

        Comment


        • #5
          Great milestone. Is llvmpipe still limited to a fixed number of threads?

          Comment


          • #6
            That would be fun to compare lavapipe + Zink against llvmpipe

            Comment


            • #7
              Originally posted by DebianLinuxero View Post
              Just curiosity :

              -What do you think is the performance ratio of a general purpose CPU executing OpenGL 4.6 via LLVMpipe vs a GPU using its native libraries?
              It would largely depends on the CPU and on the GPU, but expect the performance to be “very low”.

              For example with my aging FX-9590 CPU and R9 390X GPU with Unvanquished (which only requires GL 3 anyway):

              kind model driver resolution preset fps
              GPU AMD R9 390X radeonsi 3840×2160 ultra 110
              GPU AMD R9 390X zink/radv 3840×2160 ultra 100
              CPU AMD FX-9590 llvmpipe 3840×2160 ultra 0.5
              GPU AMD R9 390X radeonsi 640×480 lowest 300
              GPU AMD R9 390X zink/radv 640×480 lowest 280
              CPU AMD FX-9590 llvmpipe 640×480 lowest 20

              The 0.5 fps is not a typo, it's half of a frame per second, two seconds per frame. So unless you play on a VGA screen and are OK with textures having 64×64 resolution and can live with 20 fps, you may be able to play.

              In fact the performance on that CPU with llvmpipe is close to what a Radeon 9500 from 2002 would bring (the Radeon 9500 can do 60 fps on some scenes but 10 fps on others, while the FX-9590 CPU does an average 20 fps across the scenes).

              The llvmpipe driver is useful for debugging though. On the other hand I distribute llvmpipe with the Windows build of the NetRadiant level editor as an optional fallback for some broken Windows driver, for such application that is not a game, that can be usable.

              I would like to know how performs the best ThreadRipper out there, though.

              Side note: one may notice zink/radv seems to perform slightly less than radeonsi (not a big deal, it's really usable), and it's fun to notice zink/radv is somewhat matching amdgpu-pro or fglrx performances.

              One may use LIBGL_ALWAYS_SOFTWARE=true GALLIUM_DRIVER=llvmpipe to run a game on llvmpipe, and AMD_VULKAN_ICD=RADV MESA_LOADER_DRIVER_OVERRIDE=zink to run a game over zink/radv. On my end it looks like zink/amdvlk does not work, and swr (alternative to llvmpipe) crashes, softpipe (another alternative to llvmpipe) is much much much slower than llvmpipe.

              Comment


              • #8
                Originally posted by gufide View Post
                That would be fun to compare lavapipe + Zink against llvmpipe
                I tried this but I got llvmpipe instead, maybe they recognize this and do a shortcut?

                lavapipe + zink:

                Code:
                $ LD_LIBRARY_PATH="${mesa_prefix}/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}" \
                    LIBGL_DRIVER_PATH="${mesa_prefix}/lib/x86_64-linux-gnu/dri" \
                    VK_ICD_FILENAMES="${mesa_prefix}/share/vulkan/icd.d/lvp_icd.x86_64.json" \
                    MESA_LOADER_DRIVER_OVERRIDE=zink \
                    glxinfo -B
                name of display: :0
                display: :0 screen: 0
                direct rendering: Yes
                Extended renderer info (GLX_MESA_query_renderer):
                Vendor: Mesa/X.org (0xffffffff)
                Device: llvmpipe (LLVM 10.0.0, 256 bits) (0xffffffff)
                Version: 21.3.0
                Accelerated: no
                Video memory: 32074MB
                Unified memory: no
                Preferred profile: core (0x1)
                Max core profile version: 4.5
                Max compat profile version: 3.1
                Max GLES1 profile version: 1.1
                Max GLES[23] profile version: 3.2
                OpenGL vendor string: Mesa/X.org
                OpenGL renderer string: llvmpipe (LLVM 10.0.0, 256 bits)
                OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL core profile shading language version string: 4.50
                OpenGL core profile context flags: (none)
                OpenGL core profile profile mask: core profile
                
                OpenGL version string: 3.1 Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL shading language version string: 1.40
                OpenGL context flags: (none)
                
                OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
                llvmpipe:

                Code:
                $ LD_LIBRARY_PATH="${mesa_prefix}/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}" \
                    LIBGL_DRIVER_PATH="${mesa_prefix}/lib/x86_64-linux-gnu/dri" \
                    LIBGL_ALWAYS_SOFTWARE=true \
                    GALLIUM_DRIVER=llvmpipe \
                    glxinfo -B
                name of display: :0
                display: :0 screen: 0
                direct rendering: Yes
                Extended renderer info (GLX_MESA_query_renderer):
                Vendor: Mesa/X.org (0xffffffff)
                Device: llvmpipe (LLVM 10.0.0, 256 bits) (0xffffffff)
                Version: 21.3.0
                Accelerated: no
                Video memory: 32074MB
                Unified memory: no
                Preferred profile: core (0x1)
                Max core profile version: 4.5
                Max compat profile version: 3.1
                Max GLES1 profile version: 1.1
                Max GLES[23] profile version: 3.2
                OpenGL vendor string: Mesa/X.org
                OpenGL renderer string: llvmpipe (LLVM 10.0.0, 256 bits)
                OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL core profile shading language version string: 4.50
                OpenGL core profile context flags: (none)
                OpenGL core profile profile mask: core profile
                
                OpenGL version string: 3.1 Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL shading language version string: 1.40
                OpenGL context flags: (none)
                
                OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.0-devel (git-6455ab6e5a)
                OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
                Notice how both report the same things and especially 32 GB of video memory, which is my CPU RAM, not my GPU VRAM.
                Last edited by illwieckz; 21 July 2021, 09:50 AM.

                Comment


                • #9
                  So llvmpipe is GL on cpu and lavapipe is Vulkan on cpu.
                  Gosh the namings in Mesa....

                  cpugl and cpuvk who have been more clear.

                  Comment


                  • #10
                    Originally posted by rmfx View Post
                    So llvmpipe is GL on cpu and lavapipe is Vulkan on cpu.
                    Gosh the namings in Mesa....

                    cpugl and cpuvk who have been more clear.
                    That's cuz Vulkan is hotter than hot! It's hot, Hot, HOT!

                    Comment

                    Working...
                    X