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

Reply via email to