Announcement

Collapse
No announcement yet.

RadeonSI Finally Sees Experimental ACO Patches As Alternative To LLVM Shader Compiler

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

  • RadeonSI Finally Sees Experimental ACO Patches As Alternative To LLVM Shader Compiler

    Phoronix: RadeonSI Finally Sees Experimental ACO Patches As Alternative To LLVM Shader Compiler

    The Valve-backed ACO shader compiler for Mesa's Radeon Vulkan "RADV" driver has been an enormous success story where this year it's been the default as opposed to AMD's officially supported AMDGPU LLVM shader compiler back-end as pretty much for all major Linux gaming workloads is delivering superior performance. RADV+ACO performance has been so great that gamers have been eager to see the RadeonSI Gallium3D driver also adapted to see ACO as an option to the same AMDGPU LLVM back-end. Well, experimental patches have finally materialized...

    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
    I've been using it with ppsspp. Doesn't work nice with Qt, but SDL2 no problem. Only ends up using 2 MB (MB, not GB) video RAM, but then again the original PSP also only had 2MB video RAM.

    It's cool. It even does some pre-caching. It managed to fill that directory from empty initially to 125 MB pre-cached. Not sure what it does, but everything seems to work A-ok and I don't seem to get below 60 fps ever except pre-rendered scenes that are made to go slower.

    Comment


    • #3
      Thank you Valve for ACO. Llvm is a joke.

      Comment


      • #4
        This screems for benchmarks.

        Comment


        • #5
          Originally posted by Volta View Post
          Thank you Valve for ACO. Llvm is a joke.
          LLVM is primarily a general purpose compiler, it wasn't built specifically for GFX shader compilation, ACO was. As a general compiler LLVM is fantastic

          Comment


          • #6
            Dear AMD...

            Please don't waste efforts and coordinate better with the efforts made with the rest about supporting your hardware. Valve people are doing great things, please better join forces with them.

            Comment


            • #7
              Originally posted by Grim85 View Post

              LLVM is primarily a general purpose compiler, it wasn't built specifically for GFX shader compilation, ACO was. As a general compiler LLVM is fantastic
              I agree. It seems that a specialized shader compiler is just better than a generic compiler adapted as a shader compiler because just like aco, AMD's proprietary shader compiler that is used in amdvlk-pro, delivers both higher fps and faster compilation speed when compared to amdvlk-open.

              Comment


              • #8
                Originally posted by Grim85 View Post

                As a general compiler LLVM is fantastic
                I would rather call it untrustable. Seriously, how can anything be trusted to run stable if it runs via a low level virtual machine. I mean sure, its cool that it even works and that it can kinda keep up with real compiled bytecode, but its a unstable mess. The same issue with rust that is currently not supported at all by real compilers.

                Comment


                • #9
                  Originally posted by Alexmitter View Post

                  how can anything be trusted to run stable if it runs via a low level virtual machine
                  As it literally says in the first paragraph on the projects main page, LLVM has very little do with any actual virtual machines

                  Comment


                  • #10
                    Originally posted by Alexmitter View Post

                    I would rather call it untrustable. Seriously, how can anything be trusted to run stable if it runs via a low level virtual machine. I mean sure, its cool that it even works and that it can kinda keep up with real compiled bytecode, but its a unstable mess. The same issue with rust that is currently not supported at all by real compilers.
                    This is quite a nonsense. LLVM and clang are widely used for production systems. I think you don't understand what LLVM exactly means. It is just a framework for compilers. The generated code is often better than GCC, MSVC or ICC. LLVM is very much trusted, and in some areas is more trusted than GCC, because LLVM is more modular and more modern architecture. Entirety of Google infrastructure uses LLVM for example, one of the reasons being LLVM and clang gives very good diagnostic and warnings, and support very well sanitizers and advanced testing and debugging techniques. LLVM is very universal too. It not only supports many architectures, but also many non-CPU targets. It does produce in many cases better code than ACO, but usually not. It is not because of the LLVM itself, just optimisations put into it. LLVM also is not optimized (it was never its design goal) for very low latency compilation, that is often needed for games, so it is not the best fit for gaming, and that is the primary reason ACO was born.

                    Comment

                    Working...
                    X