1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Why The Radeon Gallium3D Performance Is Down

Michael Larabel

Published on 23 December 2011
Written by Michael Larabel
Page 2 of 4 - 16 Comments

Combine the Phoronix Test Suite with a fast Intel CPU and most any change in performance can be quickly located. With the OpenArena Mesa 7.12-devel drop in frame-rate this was no different. The Radeon X1950PRO graphics card was again used from the Core i7 870 desktop, all the details are hosted on this OpenBenchmarking.org page.

So what did the Phoronix Test Suite find? The performance drop in OpenArena for the current Mesa 7.12-devel Git head is caused by ef64da8f013691c66744064769db379e57ef95de -- a.k.a. winsys/radeon: don't use the new GEM_WAIT ioctl for now -- was the biggest offender that's currently impairing the OpenArena performance for the RV570 graphics card. This change by Marek Olšák to the Radeon winsys for Gallium3D simply disables using the GEM_WAIT ioctl code-path, even when a Linux kernel is in use that supports this particular ioctl.

This commit is not too terribly surprising, since the GEM_WAIT ioctl is known to increase performance (particularly for CPU-bottlenecked graphics workloads) and is talked about in this Phoronix article. The DRM_RADEON_GEM_WAIT ioctl was only introduced a few months back, so unless using a very new Linux kernel snapshot chances are you would not have noticed the boost in performance in the first place. Here is a partial explanation of this work from when Marek was originally pushing the kernel changes:

Sometimes we want to know whether a buffer is busy and wait for it (bo_wait). However, sometimes it would be more useful to be able to query whether a buffer is busy and being either read or written, and wait until it's stopped being either read or written. The point of this is to be able to avoid unnecessary waiting, e.g. if a GPU has written something to a buffer and is now reading that buffer, and a CPU wants to map that buffer for read, it needs to only wait for the last write. If there were no write, there wouldn't be any waiting needed.

This, or course, requires user space drivers to send read/write flags with each relocation (like we have read/write domains in radeon, so we can actually use those for something useful now).

However, the DRM_RADEON_GEM_WAIT ioctl work was introduced to Mesa in August past the 7.11 release. There is another problem at hand.

Latest Linux Hardware Reviews
  1. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  2. Intel Pentium G3258 On Linux
  3. SilverStone Precision PS10
  4. ASRock Z97 Extreme6
Latest Linux Articles
  1. KVM Benchmarks On Ubuntu 14.10
  2. X.Org Server 1.16 Officially Released With Terrific Features
  3. Ubuntu With Linux 3.16 Smashes OS X 10.9.4 On The MacBook Air
  4. Preview: Benchmarking CentOS 7.0 & Scientific Linux 7.0
Latest Linux News
  1. Fedora 21 Has Been Delayed By Three Weeks
  2. Mono Begins To Focus On Performance, Assembles A Team
  3. Oracle Linux 7 Released Today As Its RHEL7 Clone
  4. Unigine Develops City Traffic System, A Driving Simulator
  5. Intel 3.0 X.Org Driver Still Baking, New Development Release
  6. Eric Anholt Makes Progress With Broadcom VC4 Graphics Driver
  7. Intel Is Getting Very Close To OpenGL 4.0/4.1/4.2 Mesa Support
  8. Valve Is Still Hiring For SteamOS, Linux Work
  9. Users Warned About Possible Regressions With DRI3
  10. GNOME Shell Gets Wayland HiDPI Fonts, Mutter Gets Touch Gestures
Latest Forum Discussions
  1. Radeon related kernel bug??
  2. how the US intellegentia operates:
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. AMD Publishes Open-Source Linux HSA Kernel Driver
  5. Next-Gen OpenGL To Be Announced Next Month
  6. Open-Source Radeon Performance Boosted By Linux 3.16
  7. Remote gui not accessible in Phoronix Test Suite 5.2
  8. AMD "Hawaii" Open-Source GPU Acceleration Still Not Working Right