[Mesa-dev] r600g/mesa/gallium performance, whois to blame ?
Zack Rusin
zackr at vmware.com
Fri Nov 12 16:18:30 PST 2010
On Friday 12 November 2010 14:55:08 Jerome Glisse wrote:
Hi Jerome,
It's a bit tough to answer your email because it's composed of several quite
distinct parts (benchmarking, gallium, new state trackers, ttm...). If
anything it'd be good to seperate those into seperate threads.
> Drawoverhead outcome is i believe that gallium is severly
> under-performing in front of states changes. If i had to guess i would
> say that an improvement of factor n in this would gives an improvement
> of ~n for the overall (at least for r600g and likely for r300g too).
> Does any one works on this ? Or knows what could be done to improve
> this ? I didn't spot any obvious mistake in mesa state tracker. Of
> course one could argue that it's the pipe driver which is slow but i
> don't it's the only one to blame. Classic driver doesn't fallover in
> drawoverhead test, thought classic driver are lot less performant on
> this benchmark so maybe bottleneck in classic is also somewhere in
> state world.
>
> To me gallium need to be improved to be more efficient at changing
> only the smallest number of states and try avoid call into the pipe
> driver. I am not saying there is nothings to be done in the pipe
> driver but there is a limit on what we can do there and gpu driver is
> all about avoiding doing things :o)
To be honest I'm not exactly sure what are you suggesting. Is someone working
on what? Do you want to improve hashing of the states? Improve the hash table
we use to cache them? Improve the state tracker?
I guess when you say EGL2 you mean GL ES2, and when you say GL2 you mean GL4.1
because 4.1 is the one that is a real superset of GL ES2. Even then though I
don't quite understand what makes you think that a new state tracker would
improve anything.
I'm very skeptical of making the connection between "i don't really know
what's going on, in fact it might be the driver" and "so lets rewrite all the
code". Not to say that writing an OpenGL 4.1 state tracker from scratch is a
bad idea. We could then just drop old mesa model and use gallium helper libs
all over the code which would definitely make it cleaner but I don't think we
should be naive enough to assume that it will result in a hugely better
performance.
I guess it boils down to what makes you think that even though you can't even
identify the bottlenecks in the current code rewriting it would result in
something better :)
z
More information about the mesa-dev
mailing list