Nouveau For Open-Source NVIDIA In Mesa 8.0 Is Mixed
Phoronix: Nouveau For Open-Source NVIDIA In Mesa 8.0 Is Mixed
After looking last week at the ATI/AMD Radeon Gallium3D performance under Mesa 8.0 and comparing its performance to Mesa 7.11 and the closed-source AMD Catalyst driver, along with the LLVMpipe driver performance, we're now focusing upon the Nouveau Gallium3D implementation that seeks to provide open-source NVIDIA hardware support. This comparison is pitting Nouveau in Mesa 8.0 against Mesa 7.11 and the official NVIDIA Linux driver.
Michael, could you post the frequencies of the card as reported by nouveau in the kernel logs ? Really, this *is* important.
FYI, the 8600GTS performs well *because* it runs at the same frequency with nouveau as with the blob. I know that since I have the same card at home
This is however only valid on low-end cards and never the case on higher cards or on geforce 200+ where there are different performance level and the highest one is never the default one.
I hope we can talk about that at FOSDEM and we should have our reclocking code for geforce 8/9 merged with timing management by then. Nva3-c0 is also on the way but will require a little more time.
Oh, and I forgot to tell that the work towards mesa 8 in Nouveau is really recent and haven't been thouroughtly tested on all cards we have, even by Nouveau devs.
If any enthusiast user was to test it when the beta comes out and some bugs are still present, please show up on IRC and report it.
I think VDrift should never be benchmarked since it always yields controversial results and afaik it uses non-standard stuff.
Originally Posted by MùPùF
From here you can click on any of those links to get the logs that have been auto-captured - http://openbenchmarking.org/system/1...BY-MESA80NOU33
grep for the lazy
[ 15.974436] [drm] nouveau 0000:03:00.0: 1 available performance level(s)
[ 15.974440] [drm] nouveau 0000:03:00.0: 0: core 675MHz shader 1458MHz memory 1008MHz fanspeed 100%
[ 15.974451] [drm] nouveau 0000:03:00.0: c: core 675MHz shader 1458MHz memory 1008MHz voltage 1300mV
[ 15.846547] [drm] nouveau 0000:03:00.0: 1 available performance level(s)
[ 15.846551] [drm] nouveau 0000:03:00.0: 3: core 550MHz shader 1350MHz memory 400MHz fanspeed 100%
[ 15.846561] [drm] nouveau 0000:03:00.0: c: core 400MHz shader 800MHz memory 399MHz
[ 15.832138] [drm] nouveau 0000:03:00.0: 1 available performance level(s)
[ 15.832141] [drm] nouveau 0000:03:00.0: 3: core 660MHz shader 1625MHz memory 950MHz fanspeed 100%
[ 15.832153] [drm] nouveau 0000:03:00.0: c: core 399MHz shader 810MHz memory 399MHz voltage 1000mV
I saw similar results on my 8600M GT, when set to highest perf level I got 90%+(sometimes up to 98%) of the blob performance (openarena), so kudoz to the nouveau team.
Thanks, here is what we have:
Originally Posted by Michael
[ 15.414194] [drm] nouveau 0000:03:00.0: 0: core 675MHz shader 1458MHz memory 1008MHz fanspeed 100%
[ 15.414206] [drm] nouveau 0000:03:00.0: c: core 675MHz shader 1458MHz memory 1008MHz voltage 1300mV
So current perflvl == only perflvl available (ie, the only one the blob will use). Good. Nouveau = 96% of the blob
[ 15.449991] [drm] nouveau 0000:03:00.0: 3: core 550MHz shader 1350MHz memory 400MHz fanspeed 100%
[ 15.450002] [drm] nouveau 0000:03:00.0: c: core 400MHz shader 800MHz memory 399MHz
Memory is at the right speed, but core and shader are too slow. That shouldn't change a lot of things and doesn't explain the performance difference with the blob. ~= 68% of the blob
[ 16.114845] [drm] nouveau 0000:03:00.0: 3: core 660MHz shader 1625MHz memory 950MHz fanspeed 100%
[ 16.114859] [drm] nouveau 0000:03:00.0: c: core 399MHz shader 810MHz memory 399MHz voltage 1000mV
Whaouh, memory is 2.3 times slower than on the blob. Some linear adjustment (that is valid on my nv86) tell that this would lead to 80fps in doom3 compared to 107 with the blob. Not bad! That's about 75% of the blob
I'll assume this is the same as mine since I can't retrieve the logs:
boot: Core 50MHz Memory 135MHz Shader 101MHz
Maximum: Core 715MHz Memory 1800MHz Shader 1430MHz
That's a 13.3 factor! If we extrapolate, that would mean around 106 fps in the doom3 test. I haven't checked the linearity of performance compared to memory speed on this card though. I'll get to it when we do memory reclocking on nvc0. Anyway, that does about 62% of the blob performance.
Conclusion: Not sure why the 8600GTS works that good, but we can say that the gallium driver is at least 60% as fast as the blob at equal frequency. That's not bad but can definitely be improved, indeed.
Edit: That's assuming the drivers all do the same thing like antialiasing and so on, of course.
Last edited by MùPùF; 01-16-2012 at 09:20 AM.
Basically benchmarking is easy with nouveau as long as you can switch the performance level to the fastest one. I benchmarked nouveau last year and saw that immediately with my test cards that the clock speed must be different. Would be certainly nice when this could be done dynamically. I think it crashed sometimes with a forced change, but that was several month ago. At least you usually dont have to worry about vsync slowing down benchmarks. I would certainly use nvidia binary for those newer cards as those support vdpau as well, but for oss fans and maybe for optimus support (?) they could be really interesting.
Finally found a working solution for fully stable reclocking about 2 weeks ago. It is on its way to be merged into the nouveau tree and will be part of Linux 3.4 along with memory timing management on geforce 8/9 and maybe on geforce 200/300 too.
Originally Posted by Kano
Originally Posted by MùPùF
You the man!