AMD RadeonSI & R600g Gallium3D Tests On Mesa 11.0 + DRM-Next

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

  • haagch
    replied
    Hm. It actually looks relatively easy.

    Code:
    diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c
    index 95eed26..b2ba8d8 100644
    --- a/src/gallium/auxiliary/hud/hud_context.c
    +++ b/src/gallium/auxiliary/hud/hud_context.c
    @@ -50,7 +50,9 @@
     #include "util/u_upload_mgr.h"
     #include "tgsi/tgsi_text.h"
     #include "tgsi/tgsi_dump.h"
    +#include <sys/time.h>
     
    +unsigned long time_in_micros = 0;
     
     struct hud_context {
        struct pipe_context *pipe;
    @@ -349,6 +351,7 @@ hud_pane_accumulate_vertices(struct hud_context *hud,
           number_to_human_readable(gr->current_value, pane->max_value,
                                    pane->type, str);
           hud_draw_string(hud, x, y, "  %s: %s", gr->name, str);
    +      fprintf(stderr, "[HUD_OUTPUT]\t%lu\t%s\t%s\n", time_in_micros, &gr->name, &str);
           i++;
        }
     
    @@ -510,6 +513,10 @@ hud_draw(struct hud_context *hud, struct pipe_resource *tex)
        hud_alloc_vertices(hud, &hud->text, 4 * 512, 4 * sizeof(float));
     
        /* prepare all graphs */
    +   struct timeval tv;
    +   gettimeofday(&tv,NULL);
    +   time_in_micros = 1000000 * tv.tv_sec + tv.tv_usec;
    +
        LIST_FOR_EACH_ENTRY(pane, &hud->pane_list, head) {
           LIST_FOR_EACH_ENTRY(gr, &pane->graph_list, head) {
              gr->query_new_value(gr);
    And then
    Code:
    $ GALLIUM_HUD="fps,GPU-load+cpu,draw-calls,num-compilations+num-shaders-created+num-cs-flushes,buffer-wait-time,VRAM-usage+GTT-usage" unigine-heaven 2> hud.txt
    $ grep "HUD_OUTPUT" hud.txt | cut -f 3 -d$'\t' | sort | uniq | \
    while read line
    do
            grep "HUD_OUTPUT" hud.txt | cut -f 1 --complement -d$'\t' | grep "$line" | sed 's/\%//g' | gnuplot -e 'set term png; set output "'"$line"'.png"; set datafile separator "\t"; plot "<cat" using 1:3 with lines title "'"$line"'"'
    done
    Result: https://imgur.com/a/OB0hC

    Anyone who knows c and mesa well enough to do this in a way that makes sure it doesn't hurt performance and is in line with how things in mesa are done can probably do it properly pretty quickly .
    Last edited by haagch; 31 August 2015, 01:15 PM.

    Leave a comment:


  • marek
    replied
    Originally posted by SystemCrasher View Post
    Hmm, btw... it's quite big omission there is no way to dump raw gallium hud data into file. I found HUD quite useful for getting idea what goes on, but sometimes I need to do automated/batch processing of this kind of data and Gallium HUD would not help with that. This is very sad, since it actually got most code and data in hand and it literally about being able to write it to some file.
    Patches welcome.

    Leave a comment:


  • SystemCrasher
    replied
    Hmm, btw... it's quite big omission there is no way to dump raw gallium hud data into file. I found HUD quite useful for getting idea what goes on, but sometimes I need to do automated/batch processing of this kind of data and Gallium HUD would not help with that. This is very sad, since it actually got most code and data in hand and it literally about being able to write it to some file.

    Leave a comment:


  • Michael
    replied
    Originally posted by haagch View Post
    The results don't surprise me. I recently tried mesa 10.5 + llvm 3.5 on my HD 7970M.
    Michael is there any chance to include information like this in the phoronix test suite tests so that more parameters can be compared?

    Does mesa support printing the GALLIUM_HUD info to the console or a log file, or does it only support displaying it in an overlay? If the first, how do developers feel about adding logging to a file or so?
    As far as I know, there is no dumping support right now for the GALLIUM HUD data. But if there was, it would be trivial to support by the Phoronix Test Suite.

    Leave a comment:


  • haagch
    replied
    Originally posted by darkbasic View Post

    Agree. Please test all git, you missed great perf improvements in mesa with this commit.
    On the plus side, we will be able to compare the impact of this revert for different GPUs once Michael tests again.

    Leave a comment:


  • haagch
    replied
    The results don't surprise me. I recently tried mesa 10.5 + llvm 3.5 on my HD 7970M.

    Here are a few screenshots with a few GALLIUM_HUD graphs enabled: https://imgur.com/a/GrwtL

    Here are a few screenshots with mesa git + llvm svn from a few days ago (without SI scheduler patch): https://imgur.com/a/kmMKD

    I'm not completely sure because the units are different, but I think the buffer wait times were lower with mesa 10.5 and the gpu usage (load) was better (higher) with mesa 10.5.

    Michael is there any chance to include information like this in the phoronix test suite tests so that more parameters can be compared?

    Does mesa support printing the GALLIUM_HUD info to the console or a log file, or does it only support displaying it in an overlay? If the first, how do developers feel about adding logging to a file or so?

    Leave a comment:


  • darkbasic
    replied
    Originally posted by andrei_me View Post
    Michael

    Any system on linuxbenchmarking hit one of these regressions?
    If you dig the results, there is any indication of this regressions?
    Unfortunately Linuxbenchmarking is simply useless in its current state for a number of reasons which I can't explain right now. I'm thinking about building my own to (seriously) test amdgpu resgressions on a per-commit base if Michael is willing to help me to setup the Phoromatic server plus making the needed modifications to the suite. Costs will be a problem of course, but I guess there are enough people willing to donate to cover expenses.
    Last edited by darkbasic; 28 August 2015, 04:53 AM.

    Leave a comment:


  • darkbasic
    replied
    Originally posted by dungeon View Post
    Apply this patch to rc1 and retest again It is known one and will be in rc2:

    http://cgit.freedesktop.org/mesa/mes...bab900006648aa

    BTW generally that mesa 11 + llvm 3.8-git does not make sense to me Really, you want RC of all (mesa 11 and llvm 3.7) or git heads of all
    Agree. Please test all git, you missed great perf improvements in mesa with this commit.

    Leave a comment:


  • andrei_me
    replied
    Michael

    Any system on linuxbenchmarking hit one of these regressions?
    If you dig the results, there is any indication of this regressions?

    Leave a comment:


  • smitty3268
    replied
    Originally posted by dungeon View Post
    Apply this patch to rc1 and retest again It is known one and will be in rc2:

    http://cgit.freedesktop.org/mesa/mes...bab900006648aa
    Yeah, I think the win in Valley probably comes from a newer LLVM shader backend, and the losses mostly come from that commit which got reverted.

    Leave a comment:

Working...
X