Announcement

Collapse
No announcement yet.

radeonhd r6xx-7xx EXA performance patch

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

  • radeonhd r6xx-7xx EXA performance patch

    Hi everyone

    There has been discussions about how much coding efficiency improved speed in video drivers. One opinion is that with the CPU stuffing video card commands in a buffer for the video card to DMA them into its command buffer as needed that coding efficiency doesn't matter much. The other opinion is that every little bit of speed helps.

    With a little slack time at work I decided to hot rod radeonhd's r6xx/7xx exa acceleration code and do some tests and create a patch. I don't expect this patch to be accepted because its sloppy and it makes the code unmaintainable. The reason for doing it was to see what some of the potential for speed improvement actually was.

    Benchmarking with the command "x11perf -v1.3 -all" between the latest git and my patch showed gains in some tests greater than 10%. Notable are the gains gains in the move window, put image, and
    circle drawing tests. There were a few slow downs too but overall its a win.

    People with fast video cards, slow processors, or both will see the most gains.

    My patch should apply cleanly to radeonhd-1.2.5 all the way through a git pull of todays date.

    latest patch http://lists.opensuse.org/radeonhd/2.../msg00288.html

    Performance of a previous version http://lists.opensuse.org/radeonhd/2.../msg00208.html

  • #2
    Originally posted by Obscene_CNN View Post
    My patch should apply cleanly to radeonhd-1.2.5 all the way through a git pull of todays date.

    latest patch http://lists.opensuse.org/radeonhd/2.../msg00288.html
    Is there someplace I can download the patch? copy/pasting it from that message results in a malformed patch...

    Comment


    • #3
      Originally posted by monraaf View Post
      Is there someplace I can download the patch? copy/pasting it from that message results in a malformed patch...
      Oops my bad.

      Sorry.

      http://pastebin.com/f304c7654

      EDIT:
      Note when downloading from this link it will down load as a dos text file with a CR/LF at the end of every line.

      we can fix it with the command

      sed 's/.$//' patch > fixed.patch
      Last edited by Obscene_CNN; 05-22-2009, 02:07 PM.

      Comment


      • #4
        is it feasible to clean the patch up into something maintainable that might get accepted, or is it intrinsically messy. a 10% speed up would be nice.

        Comment


        • #5
          I could clean it up a little, however its inherently messy. As long as there are new chips being supported by this section of code it is not reasonable to expect this to be incorporated. There may be some things that could go in but I doubt it would make much improvement in speed.

          Comment


          • #6
            By the way,

            I would appreciate any before and benchmark data from people trying my patch. Also please include speed of processor and gpu chip. Thanks

            Comment


            • #7
              I did some quick testing with GtkPerf, and I couldn't find a significant performance increase.


              Code:
              Test rounds: 100  Test All
              
              Driver:                           Minimum Total time:
              --------------------------------------------------------
              radeon   (latest git)             5.37
              radeonhd (latest git)             5.36
              radeonhd (latest git + patch)     5.32
              CPU: AMD Athlon(tm) Dual Core Processor 4850e @ 2800MHz
              GPU: ATI Radeon HD 3200 Graphics (IGP)

              Comment


              • #8
                try changing the number of test rounds gtkperf does from 100 to 1000. Your CPU is quite a bit faster than mine so I would expect less of an improvement. (I have only a 2GHz laptop with a radeonhd 3100)

                x11perf is a better benchmark if you have several hours to spare

                Thanks for sharing your results

                Comment


                • #9
                  If an improvement will only appear after accumulating times for several hours, then I'd say such an improvement is rather irrelevant :P

                  Comment


                  • #10
                    Its not the improvement accumulating over several hours. Its the fact that "x11perf -v1.3 -all" takes about 2.5 hours to run regardless of how fast the machine and video card are.

                    Comment


                    • #11
                      How's that possible?

                      Comment


                      • #12
                        Originally posted by Obscene_CNN View Post
                        try changing the number of test rounds gtkperf does from 100 to 1000. Your CPU is quite a bit faster than mine so I would expect less of an improvement. (I have only a 2GHz laptop with a radeonhd 3100)
                        Code:
                        Test rounds: 1000  Test All
                        
                        Driver:                           Total time:
                        --------------------------------------------------------
                        radeon   (latest git)             108.77
                        radeonhd (latest git + patch)     109.14
                        Most of the time however is spend in GtkTextView - Add text (54 seconds) and the more test rounds the slower the widget becomes.

                        x11perf probably is a better way to benchmark graphics performance, but I don't have several hours to spare

                        Comment


                        • #13
                          Originally posted by RealNC View Post
                          How's that possible?
                          x11perf runs a benchmark for a set period of time and counts the number of times an operation is performed.

                          Comment


                          • #14
                            Originally posted by monraaf View Post
                            Code:
                            Test rounds: 1000  Test All
                            
                            Driver:                           Total time:
                            --------------------------------------------------------
                            radeon   (latest git)             108.77
                            radeonhd (latest git + patch)     109.14
                            Most of the time however is spend in GtkTextView - Add text (54 seconds) and the more test rounds the slower the widget becomes.

                            x11perf probably is a better way to benchmark graphics performance, but I don't have several hours to spare
                            I don't particularly like gtkperf. I can underclock my 2GHz CPU to 500MHz and get 20% better scrolling times in it.

                            Strange... thanks for testing my patch and sharing the results though.

                            Comment


                            • #15
                              radeonhd+patch 100x gtkperf 6.47
                              radeonhd+patch 1000x gtkperf 102.10

                              tormods latest git radeonhd 100x gtkperf 7.04
                              tormods latest git radeonhd 1000x gtkperf 111.something

                              I was a little excited and forgot to save the results before installing and resstarting X

                              I can re-run with tormods during the weekend.

                              Kubuntu 9.04, kernel 2.6.30rc6 x86_64, amd athlon x2 5600+ 2.8GHz, radeon hd3850

                              Comment

                              Working...
                              X