Hi all I have pushed some draw module changes here http://cgit.freedesktop.org/~wallbraker/mesa/log/?h=i915g-speed&showmsg=1 which improves speed in the draw module by avoiding unneeded flushing and setup on draw calls.
The first two commits (starting from the bottom, right after master) doesn't yield much improvements especially after the last commit. Remove_reduce_prim is required as any call to draw_do_flush would result in the following call draw_vbo would be called with STATE_CHANGE, which with the last commit would call into prepare when it is not needed. The last commit is the one that does the biggest difference. As it is the one that stops prepare from being called on every draw_vbo call. And as a side effect removes the last draw_do_flush call, enabling at last the pipeline to gather up vertices from several draw_vbo calls into a single draw_elements. The paste below shows the difference, first column are from the test application (tests/step that I just pushed), the rest are either from i915g or draw, it should be obvious which is which. http://pastebin.com/5i3BejgJ A follow up to these changes would be try to unify draw_pipe_vbuf and draw_pt_emit into a single file or to refractor code into a single vbuf primitive collector that would allow draw_arrays calls to be grouped into a single vbuf_render->draw_arrays call (provided primitive can be combined). This would improve draw_pt_emit_run_linear performance on draw heavy applications. I guess one could also look into merging draw_elements with each other by manipulating indices (between draw_pt_emit and the pipeline). As well as draw_arrays and draw_elements by doing the same. Comments please. Cheers Jakob. ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev