Announcement

Collapse
No announcement yet.

Radeon RADV+ACO Vulkan Performance Is In Great Shape For Mesa 20.2

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

  • smitty3268
    replied
    Originally posted by Mez' View Post
    As an absolute non geek, I'm also wondering how a compiler can affect the performance of the end result driver. My initial non geek thought would be that it's just a matter of time of compilation, not performance.
    Some vulgarization from specialists would be welcome.
    The graphics driver is responsible for compiling shader programs from games into something the GPU hardware can run.

    It can happen either ahead of time (at a level loading screen) or dynamically during gameplay (which can cause stutters).

    So updates to that compiler process can effect the binary output and the runtime performance it has on the GPU hardware. The act of compiling faster can also reduce stutters if the app is doing them at runtime which can lead to higher fps results as well, though that is going to be a lot more minimal of an effect especially since most drivers end up caching shaders after they've been compiled the first time.

    Leave a comment:


  • oleid
    replied
    Originally posted by TemplarGR View Post

    Perhaps there is some configuration needed. I don't own Mad Max so i can't test it, but for example in Civ VI i had a lot of issues, it couldn't even load properly it took tens of minutes to allow me to start a map. I then found out that the issue was a low ulimit. For some odd reason the port didn't ask for a higher one and stayed at the default 1024 and that caused a lot of issues and freezes. I had to put every single setting at the lowest just so i can start a game properly. But then i went into systemd configuration and changed the default ulimit and then Civ VI ran properly, even faster than on Windows. I heard that this solves issues in a lot of games, and it is even recommended by Lutris to do if you are using esync with WINE.

    Also, perhaps the issue could be with the number of threads. Some older ports have issues with more than a certain number of cores. Maybe that's it? I don't know, just throwing some ideas here. Sometimes even Vsync could be the culprit. Or even just a bad port.
    Are you talking about the maximum number of files?
    https://wiki.winehq.org/FAQ#Too_many...o_be_increased

    Leave a comment:


  • Kepsz
    replied
    This ACO will fix the new area load stuttering in games?

    So far I excepted stuttering in World War Z and Mass Effect Andromeda, when I enter a previously un-visited area. In these games. I think those games generate shaders for the new areas, but I'm unsure. In other games, I did not experienced this stuttering.

    Leave a comment:


  • pal666
    replied
    Originally posted by ntropy View Post
    These little shader compilation, need a compiler and llvm wasnt made for this originally. So with aco there was a big boost
    and it should be irrelevant with distributed precompiled shaders by steam

    Leave a comment:


  • pal666
    replied
    Originally posted by Mez' View Post
    As an absolute non geek, I'm also wondering how a compiler can affect the performance of the end result driver. My initial non geek thought would be that it's just a matter of time of compilation, not performance.
    just like with any other software, its speed depends on optimizations performed by compiler(and heavy optimizations make compilation time slower btw)

    Leave a comment:


  • pal666
    replied
    Originally posted by TemplarGR View Post
    I then found out that the issue was a low ulimit. For some odd reason the port didn't ask for a higher one and stayed at the default 1024 and that caused a lot of issues and freezes.
    it's hard to infer what are you talking about. ulimit is many things, ulimit without parameters is ulimit -f, which stands for maximum size of files written and i doubt that's what reduces performance of civ 6

    Leave a comment:


  • ntropy
    replied
    Originally posted by Mez' View Post
    It's still quite abstract to me...
    But if it compiles complex stuff in real-time during the games (I thought it was the radeon driver package compilation ), I understand why the use of one or the other can lead to differences in performance. Your explanation served its purpose. Thanks for taking the time.
    Its quite a complex process and there is way more to it. Here is a nice explanation: https://www.youtube.com/watch?v=qHpKfrkpt4c
    Before he shows the rendering pipeline from vertex to fragment shader, he explains the command buffer, so dont get confused there in the beginning.

    I have a very basic OpenGL Project here: https://github.com/ntropy83/pandora
    If you go to the folder bin/shaders you will find the programm code for the fragment and vertex shader. In my program there are only 2 of those programming snippets, in AAA games you have several thousand. Those little programm snippets are used to calculate the vertices or the mesh of an object then in game and need to be compiled.

    Sometimes you see that steam downloads in Linux, Vulkan shader definitions for a game. Those are precompiled shaders, it downloads to minimize stuttering for you in game.

    The process is the same in windows, but you have much more precompiled shaders there and often games already ship them. So the stuttering is never an issue there. It will be gone for Linux too eventually, with more people playing and compiling shaders. Some stuttering tho will persist with heavy graphics intense titles, but that is for windows too. And if your GPU is fast enough, you wont even notice.
    Last edited by ntropy; 14 July 2020, 07:13 AM.

    Leave a comment:


  • BNieuwenhuizen
    replied
    Originally posted by zboszor View Post

    I think you might be interested in this patch: https://gitlab.freedesktop.org/mesa/..._requests/5865
    According to the MR description, cache misses have caused stuttering which is greatly smoothed by some extra caching in a hash.
    That is unrelated to shader cache misses, and is mostly around stuttering around window resizes on APUs.

    Leave a comment:


  • Mez'
    replied
    Originally posted by ntropy View Post
    If you render a frame with the GPU, the frame will go through a pipeline of elements in which the final picture gets composed. The most basic pipeline has a set of vertices at the beginning, so a set of coordinates and then it goes into a vertex shader, a tesselation shader, a fragment shader and much more. This is the so called render pipeline. All these shaders get compiled real-time and it depends on the game how its done. Some games pre-compile a lot of shaders on first load, others are more gpu-intensive and calculate everything anew with real lightning and so on. These little shader compilation, need a compiler and llvm wasnt made for this originally. So with aco there was a big boost
    It's still quite abstract to me...
    But if it compiles complex stuff in real-time during the games (I thought it was the radeon driver package compilation ), I understand why the use of one or the other can lead to differences in performance. Your explanation served its purpose. Thanks for taking the time.

    Leave a comment:


  • Azpegath
    replied
    Originally posted by fagnerln View Post
    Azpegath are you sure that you are using vulkan? I can't test it right now, but iirc you should select vulkan on the launcher. With a lower end than yours, I got 60fps easily
    Yes, I'm certain. The FPS counter in the game actually said it was a fairly stable 60 FPS. I was running at highest quality, with 60 fps but stuttering.

    Of course it could be related to power settings on the card or something.

    Leave a comment:

Working...
X