Announcement

Collapse
No announcement yet.

poor 2d performance with radeon

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

  • poor 2d performance with radeon

    I run "x11perf -all" to test the 2d performance. using "radeon" driver, the result show that the performance lower than using "fbdev" driver's . In most test cases, the performance of using "radeon" radeon is slightly less than that of using "fbdev" driver. But in some test cases, the performance of using "fbdev" driver is twice that of using "radeon" driver.

    But when i run "glxgears" , the performance of using "radeon" driver is 50 times than that using "fbdev" driver.

    so, is the 2d performance normal for my system ?? I need a QT project in my system , which need high 2d performance. I am dissatisfied with the 2d performance with radeon. what can i do ??

  • #2
    Be aware that "real world 2D performance" and "x11perf performance" are increasingly different things. You might do better to test with something that uses a drawing stack closer to that of your intended application.

    Same goes for "real world 3D performance" and "glxgears performance", but that seems to be more broadly understood.

    Comment


    • #3
      Originally posted by bridgman View Post
      Be aware that "real world 2D performance" and "x11perf performance" are increasingly different things. You might do better to test with something that uses a drawing stack closer to that of your intended application.

      Same goes for "real world 3D performance" and "glxgears performance", but that seems to be more broadly understood.
      Thank you. I found that using radeon driver ,the performance of some tests is 8 times than that using "fbdev" driver.
      But drawing dot and drawing small pixel region, the performance of using radeon driver is very poor.. It is a contrastive analysis below

      1: using fbdev driver
      2: using radeon driver

      1 2 Operation
      -------- -------- ---------
      41700000.0 2420000.0 Dot
      4910000.0 2440000.0 1x1 rectangle
      1880000.0 2440000.0 10x10 rectangle
      37100.0 490000.0 100x100 rectangle
      1550.0 14700.0 500x500 rectangle
      2250000.0 1650000.0 1x1 stippled rectangle (8x8 stipple)
      357000.0 341000.0 10x10 stippled rectangle (8x8 stipple)
      5390.0 5560.0 100x100 stippled rectangle (8x8 stipple)
      223.0 232.0 500x500 stippled rectangle (8x8 stipple)
      2300000.0 1680000.0 1x1 opaque stippled rectangle (8x8 stipple)
      532000.0 486000.0 10x10 opaque stippled rectangle (8x8 stipple)
      10600.0 10200.0 100x100 opaque stippled rectangle (8x8 stipple)
      452.0 438.0 500x500 opaque stippled rectangle (8x8 stipple)
      2800000.0 1580000.0 1x1 tiled rectangle (4x4 tile)
      542000.0 15600.0 10x10 tiled rectangle (4x4 tile)
      9230.0 8950.0 100x100 tiled rectangle (4x4 tile)
      387.0 3600.0 500x500 tiled rectangle (4x4 tile)

      Comment


      • #4
        Originally posted by Top_lee View Post
        Thank you. I found that using radeon driver ,the performance of some tests is 8 times than that using "fbdev" driver.
        But drawing dot and drawing small pixel region, the performance of using radeon driver is very poor.. It is a contrastive analysis below
        Software rendering is almost always faster most most X rendering operations regardless of the driver. The problem is a lot of older X ops map poorly to modern hardware or they are used so seldomly in modern apps they are not accelerated. What kills performance is ping-ponging of data between the CPU and GPU. It's almost always faster to do everything on the GPU or everything on the CPU. The data migration required for mixed GPU and CPU renderng kills performance.

        Comment


        • #5
          Originally posted by agd5f View Post
          Software rendering is almost always faster most most X rendering operations regardless of the driver. The problem is a lot of older X ops map poorly to modern hardware or they are used so seldomly in modern apps they are not accelerated. What kills performance is ping-ponging of data between the CPU and GPU. It's almost always faster to do everything on the GPU or everything on the CPU. The data migration required for mixed GPU and CPU renderng kills performance.
          what I should do to Improve performance . I have a database in my system , which store map data. My application using QT get the data in the database and display it. I using fbdev driver before, found display slowly. so I changed the driver to radeon, but display slowly than that before...should I change my application code source using modern API ??

          There I have some other problems with x11perf test. I will post a new thread to discuss it. .

          Comment


          • #6
            Originally posted by Top_lee View Post
            what I should do to Improve performance . I have a database in my system , which store map data. My application using QT get the data in the database and display it. I using fbdev driver before, found display slowly. so I changed the driver to radeon, but display slowly than that before...should I change my application code source using modern API ??
            Ideally use something like OpenGL. If you want to use X rather than GL, you'd need to profile your app and see what ops it's using and why they are slow; then, implement or optimize support for those ops in either EXA or glamor.

            Comment


            • #7
              Originally posted by agd5f View Post
              Ideally use something like OpenGL. If you want to use X rather than GL, you'd need to profile your app and see what ops it's using and why they are slow; then, implement or optimize support for those ops in either EXA or glamor.
              Thank you. I will do it at your suggestion . I also have some problems with my x11perf test here. could you give me some advice, or show me the right direction ?

              Comment

              Working...
              X