https://bugs.freedesktop.org/show_bug.cgi?id=34969 --- Comment #16 from Andrew Randrianasulu <randrik@xxxxxxx> 2011-11-14 15:16:55 PST --- So, I bisected mesa tree (7.11 branch) Result: 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 is the first bad commit commit 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 Author: Marek OlЕЎГЎk <maraeo@xxxxxxxxx> Date: Sun Dec 26 04:30:51 2010 +0100 st/mesa: set vertex arrays state only when necessary The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM) is dirty. This assumes user buffer content is mutable, which will be sorted out in the next commit. The following usage case should be much faster now: for (i = 0; i < 1000; i++) { glDrawElements(...); } Or even: for (i = 0; i < 1000; i++) { glSomeStateChangeOtherThanArraysOrProgram(...); glDrawElements(...); } The performance increase from this may be significant in some apps and negligible in others. It is especially noticable in the Torcs game (r300g): Before: 15.4 fps After: 20 fps Also less looping over attribs in st_draw_vbo yields slight speed-up in apps with lots of glDraw* calls. :040000 040000 45e5630d445206ce8c7eab6ac6bfe144901695bb 927efd20e354ecae459227bd464dbb6001cb448e M src guest@slax:~/botva/src/src/mesa$ git bisect log git bisect start # good: [0f7325b89038937bd428f7c89ed9859189a0ab0b] i965: Emit texel offsets in sampler messages. git bisect good 0f7325b89038937bd428f7c89ed9859189a0ab0b # bad: [8767fe2437094f33db140a6b92f25116de4fc371] mesa: Sort extensions in extension string by year. git bisect bad 8767fe2437094f33db140a6b92f25116de4fc371 # bad: [fbd681f1a03f6ad62432107dc94e02674f6de7bf] i915g: Use dump function in sw winsys git bisect bad fbd681f1a03f6ad62432107dc94e02674f6de7bf # good: [1f5b67416810f7331fe71db0f767418473083701] egl_dri2: add nouveau support. git bisect good 1f5b67416810f7331fe71db0f767418473083701 # bad: [e0481cac7d57757d75a39763a1dd36b915979bb4] svga: Disable surface cache for textures git bisect bad e0481cac7d57757d75a39763a1dd36b915979bb4 # bad: [fc5ab1b19780ef97c5e7f6257a2d91121503bd53] mesa: use gl_format type instead of GLuint git bisect bad fc5ab1b19780ef97c5e7f6257a2d91121503bd53 # bad: [56029ce52bafbc51b5b6660383767257b7770cd7] r300g: inline some of the pipe_buffer_map/unmap calls git bisect bad 56029ce52bafbc51b5b6660383767257b7770cd7 # good: [9e96ea0652dda64f8eb311d7dfc9c50519ad02f0] r600g: add alignment cases for linear aligned git bisect good 9e96ea0652dda64f8eb311d7dfc9c50519ad02f0 # bad: [588fa884d212eba5ffbc69fda75db37d7c77214c] gallium: notify drivers about possible changes in user buffer contents git bisect bad 588fa884d212eba5ffbc69fda75db37d7c77214c # good: [cfaf217135d8a8e903b3fbf380f18170df018f0c] vbo: bind arrays only when necessary git bisect good cfaf217135d8a8e903b3fbf380f18170df018f0c # good: [cdca3c58aa2d9549f5188910e2a77b438516714f] gallium: remove pipe_vertex_buffer::max_index git bisect good cdca3c58aa2d9549f5188910e2a77b438516714f # bad: [2a904fd6a0cb80eec6dec2bae07fd8778b04caf3] st/mesa: set vertex arrays state only when necessary git bisect bad 2a904fd6a0cb80eec6dec2bae07fd8778b04caf3 -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel