There has been discussions about how much coding efficiency improved speed in video drivers. One opinion is that with the CPU stuffing video card commands in a buffer for the video card to DMA them into its command buffer as needed that coding efficiency doesn't matter much. The other opinion is that every little bit of speed helps.
With a little slack time at work I decided to hot rod radeonhd's r6xx/7xx exa acceleration code and do some tests and create a patch. I don't expect this patch to be accepted because its sloppy and it makes the code unmaintainable. The reason for doing it was to see what some of the potential for speed improvement actually was.
Benchmarking with the command "x11perf -v1.3 -all" between the latest git and my patch showed gains in some tests greater than 10%. Notable are the gains gains in the move window, put image, and
circle drawing tests. There were a few slow downs too but overall its a win.
People with fast video cards, slow processors, or both will see the most gains.
My patch should apply cleanly to radeonhd-1.2.5 all the way through a git pull of todays date.
latest patch http://lists.opensuse.org/radeonhd/2.../msg00288.html
Performance of a previous version http://lists.opensuse.org/radeonhd/2.../msg00208.html
Note when downloading from this link it will down load as a dos text file with a CR/LF at the end of every line.
we can fix it with the command
sed 's/.$//' patch > fixed.patch
Last edited by Obscene_CNN; 05-22-2009 at 03:07 PM.
is it feasible to clean the patch up into something maintainable that might get accepted, or is it intrinsically messy. a 10% speed up would be nice.
I could clean it up a little, however its inherently messy. As long as there are new chips being supported by this section of code it is not reasonable to expect this to be incorporated. There may be some things that could go in but I doubt it would make much improvement in speed.
By the way,
I would appreciate any before and benchmark data from people trying my patch. Also please include speed of processor and gpu chip. Thanks
I did some quick testing with GtkPerf, and I couldn't find a significant performance increase.
CPU: AMD Athlon(tm) Dual Core Processor 4850e @ 2800MHzCode:Test rounds: 100 Test All Driver: Minimum Total time: -------------------------------------------------------- radeon (latest git) 5.37 radeonhd (latest git) 5.36 radeonhd (latest git + patch) 5.32
GPU: ATI Radeon HD 3200 Graphics (IGP)
try changing the number of test rounds gtkperf does from 100 to 1000. Your CPU is quite a bit faster than mine so I would expect less of an improvement. (I have only a 2GHz laptop with a radeonhd 3100)
x11perf is a better benchmark if you have several hours to spare
Thanks for sharing your results
If an improvement will only appear after accumulating times for several hours, then I'd say such an improvement is rather irrelevant :P
Its not the improvement accumulating over several hours. Its the fact that "x11perf -v1.3 -all" takes about 2.5 hours to run regardless of how fast the machine and video card are.