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 Articles & Reviews
  1. AMD FX-8320E Performance On Linux
  2. Linux Compiler Benchmarks Of LLVM Clang 3.5 vs. LLVM Clang 3.6-rc1
  3. Intel Broadwell HD Graphics 5500: Windows 8.1 vs. Linux
  4. Linux Benchmarks Of NVIDIA's Early 2015 GeForce Line-Up
  5. NVIDIA GeForce GTX 960: A Great $200 GPU For Linux Gamers
  6. Disk Encryption Tests On Fedora 21
Latest Linux News
  1. Intel Broadwell On Linux Has Working OpenCL 1.2, VP8 Video Acceleration
  2. GParted 0.21 Brings ReFS Detection, EXT4 For RHEL5, Reiser4 For Linux 3.x
  3. Wine Staging Update Has Better CUDA Support, Driver Testing Framework
  4. Nouveau In Linux 3.20 Will Have A Lot Of Code Cleaning
  5. Compare Your Linux System To The i7-5600U Broadwell X1 Carbon ThinkPad
  6. Debian 8.0 "Jessie" Installer RC1 Released
  7. Chromebook "Rush" With 64-bit Tegra SoC Support Lands In Coreboot
  8. 2015 X.Org Elections Get Underway For Board Members, SPI Merger
  9. Linux 3.19-rc6 Kernel Released: LInux 3.19 Final In Two Weeks
  10. Ubuntu's Mir Gains Server-Side Platform Probing
Most Viewed News This Week
  1. Windows 10 To Be A Free Upgrade: What Linux Users Need To Know
  2. Google Admin Encourages Trying Btrfs, Not ZFS On Linux
  3. TraceFS: The Newest Linux File-System
  4. My Initial Intel Broadwell Linux Experience With The ThinkPad X1 Carbon
  5. Keith Packard Leaves Intel's Linux Graphics Work
  6. Interstellar Marines On Linux With Catalyst: Bull S*#@
  7. NetworkManager Now Supports WiFi Power Savings
  8. Intel's Open-Source Graphics Team Poaches A Top Nouveau Driver Developer