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

An Improved Register Allocator For Gallium3D R300

Mesa

Published on 29 March 2011 08:44 AM EDT
Written by Michael Larabel in Mesa
11 Comments

In recent days I have mentioned many interesting Google Summer of Code project that have been proposed for this year: WebM VDPAU state tracker, better multi-GPU support, the OpenCL state tracker, and even a Direct3D HLSL shader compiler. It will be interesting to see which of these projects actually materialize since the success rate of GSoC projects aren't incredibly high, especially if counting the ones that end up succeeding but never end up being maintained after the summer or the code is never merged. Fortunately, one of last year's GSoC Mesa projects is still being hacked on and there's more to report on it today.

One of last year's projects for Mesa was on improving the GLSL (GL Shading Language) compiler for the ATI R300 Gallium3D driver. Improvements were made to the R300 GLSL compiler, some of which were merged to master. Tom Stellard, the student developer working on this project, didn't stop working on the code once the summer was over and he was paid by Google.

Tom Stellard has just announced that he's nearly done with a new and improved register allocator for fragment shaders in the R300 compiler. "The new allocator takes advantage of a register allocation algorithm designed for irregular architectures from a paper by Johan Runeson and Sven-Olof Nyström. Eric Anholt implemented this algorithm and added it to mesa, so all drivers could make use of it." Tom mentioned this work on his blog.

Tom mentions this new register allocator will cause a big impact on shaders that use a lot of scalar values. As an example, the Lightsmark benchmark uses 30~50% less registers with this new design and on a RV515 GPU he's seeing a ~10% increase in performance as a result. This looks like an invitation for me to run some new benchmarks on some higher-end R500 GPUs.

Right now this R300 allocator is living in a branch of Mesa, but hopefully it will be merged to master in time for Mesa 7.11. It would also be great if this is eventually supported in the R600 Gallium3D driver.

In related Mesa news, Marek Olšák completed a bit more OpenGL 3.x support for Mesa. To master he's committed clamping controls support via GL_ARB_color_buffer_float and he's completed work on signed normalized textures with GL_EXT_texture_snorm. Though as acknowledged in GL3.txt, there's still a lot of work left before OpenGL 3.0 support will be finished, especially as some of the work is held up by legal issues.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Scythe Mugen MAX
  2. Intel Core i7 5960X Haswell-E On Linux
  3. Intel 80GB 530 Series M.2 SSD On Linux
  4. With A New Motherboard, The Core i7 5960X Haswell-E Lights Up
Latest Linux Articles
  1. A Tour Of The New Phoronix Office
  2. 7-Way Linux Desktop Gaming Comparison On Ubuntu 14.10
  3. Intel P-State vs. CPUFreq Benchmarks On The i7-5960X
  4. RadeonSI GLAMOR Benchmarks With X.Org Server 1.16
Latest Linux News
  1. Linux 3.17-rc6 Released; Linux 3.17 Final Might Come In One Week
  2. X.Org Server 1.16.1 Released
  3. Mesa Gets Closer To Having OpenGL 4.0 Tessellation Support
  4. Uselessd: A Stripped Down Version Of Systemd
  5. F2FS Tools Gain FSCK Support
  6. FreeBSD 10.1 Has The New VT Driver, Hardware Improvements
  7. AntiMicro 2.6 Yields Greater Compatibility For Gamepads On Linux
  8. OpenGL 3.3 / GLSL 3.30 Lands For Intel Sandy Bridge On Mesa
  9. AMD's RadeonSI Gallium3D Driver Sees Some Improvements
  10. Mesa 10.3 Released With The Latest Open-Source GPU Driver Improvements
Latest Forum Discussions
  1. Uselessd: A Stripped Down Version Of Systemd
  2. State of Nouveau now and in the near future?
  3. X.Org Women Outreach Program Only Turns Up Two Applicants So Far
  4. Wasteland 2 Officially Launched Today, Including For Linux Gamers
  5. NVIDIA GTX 770/780 -works ?
  6. Trolling on the Phoronix forums
  7. New stress testing utility for GPU's
  8. ASRock AM1H-ITX: One Of The Best AM1 Mini-ITX Motherboards