On 01/23/2011 10:30 PM, Jakob Bornecrantz wrote:
> 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.

Jakob,

I pulled your branch and tested with piglit with llvmpipe.  Looks like 
there's a number of regressions in the "general" catagory:

general/bgra-sec-color-pointer
general/bgra-vert-attrib-pointer
general/draw-batch
general/draw-elements
general/draw-vertices
general/primitive-restart
etc.

You can run this group of tests with:

./piglit-run.py -t ^general tests/all.tests results/new

I suspect that either the reduced prim removal or one of the new 
conditionals put around the flushing code is at fault.

Otherwise, this patch series looks like good stuff.

-Brian

------------------------------------------------------------------------------
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