[Mesa-dev] [PATCH 10/18] i965: Speculatively flush the batch after transform feedback

Kenneth Graunke kenneth at whitecape.org
Mon Jul 6 12:36:04 PDT 2015


On Monday, July 06, 2015 11:33:15 AM Chris Wilson wrote:
> Since the purpose of transform feedback tends to be for the client to
> act upon the results to change the geometry in the scene, it is likely
> that the client will soon be waiting upon the results. Flush the batch
> early so that we don't build up a long queue of commands afterwards that
> could delay the readback.
> ---
>  src/mesa/drivers/dri/i965/gen7_sol_state.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/gen7_sol_state.c b/src/mesa/drivers/dri/i965/gen7_sol_state.c
> index 857ebe5..13dbe5b 100644
> --- a/src/mesa/drivers/dri/i965/gen7_sol_state.c
> +++ b/src/mesa/drivers/dri/i965/gen7_sol_state.c
> @@ -494,6 +494,12 @@ gen7_end_transform_feedback(struct gl_context *ctx,
>  
>     brw_batch_end(&brw->batch);
>  
> +   /* We will likely want to read the results in the very near future, so
> +    * push this primitive to hardware if it is currently idle.
> +    */
> +   if (!brw_batch_busy(&brw->batch))
> +      brw_batch_flush(&brw->batch);
> +
>     /* EndTransformFeedback() means that we need to update the number of
>      * vertices written.  Since it's only necessary if DrawTransformFeedback()
>      * is called and it means mapping a buffer object, we delay computing it
> 

We need some data to justify this change.

--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150706/62175800/attachment.sig>


More information about the mesa-dev mailing list