With a patch sent to the Mesa development list on Monday, Marek Olšák has made another significant performance improvement to the commonly used R600 Gallium3D driver for AMD Radeon graphics cards.
Marek Olšák, the independent contributor to the AMD Radeon Gallium3D driver stack that has achieved feats from R300g HyperZ support
to various performance optimizations
, has achieved some additional performance gains out of this open-source Linux graphics driver.
The patch being talked about today is r600g: use u_upload_mgr for allocating staging transfer buffers
. The patch, which weighs in at just a couple of lines of code, is described as "u_upload_mgr suballocates memory from a large buffer and maps the allocated range (unsychronized), which is perfect for short-lived staging buffers. This reduces the number of relocations sent to the kernel."
By using this sub-allocator to reduce the number of buffers being allocated and synchronized to the video RAM, there's a performance win for some scenarios. Aaron Watry, a Phoronix reader and frequent Phoronix Forums contributor, has already benchmarked the impact of this single Mesa R600g patch.
you can find his benchmark result for a Radeon HD 6850 graphics card while running Reaction Quake 3 with and without this sub-allocator patch. For this configuration, a 27% boost in the OpenGL frame-rate was witnessed.
This recent work plus the a-sync DMA engine support
that came out of AMD this week is quite exciting for seeing some open-source AMD Radeon Linux graphics performance improvements on the horizon.