From: Plamena Manolova Date: Mon, 2 Oct 2017 20:58:25 +0000 (+0300) Subject: i965: Indroduce brw_finish_drawing. X-Git-Tag: upstream/18.1.0~5589 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=646e1123859405da36c7a9920e0c5e270eb4979f;p=platform%2Fupstream%2Fmesa.git i965: Indroduce brw_finish_drawing. In order to add our ARB_indirect_parameters implementation we need to refactor brw_try_draw_prims so that it operates on a per primitive basis and move the loop into brw_draw_prims. This commit introduces the brw_finish_drawing function where we move the code that executes once after the loop. Signed-off-by: Plamena Manolova Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 1e93cb6..513a05b 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -658,6 +658,19 @@ brw_prepare_drawing(struct gl_context *ctx, brw->ctx.NewDriverState |= BRW_NEW_VERTICES; } +static void +brw_finish_drawing(struct gl_context *ctx) +{ + struct brw_context *brw = brw_context(ctx); + + if (brw->always_flush_batch) + intel_batchbuffer_flush(brw); + + brw_program_cache_check_size(brw); + brw_postdraw_reconcile_align_wa_slices(brw); + brw_postdraw_set_buffers_need_resolve(brw); +} + /* May fail if out of video memory for texture or vbo upload, or on * fallback conditions. */ @@ -796,13 +809,6 @@ retry: brw_render_state_finished(brw); } - if (brw->always_flush_batch) - intel_batchbuffer_flush(brw); - - brw_program_cache_check_size(brw); - brw_postdraw_reconcile_align_wa_slices(brw); - brw_postdraw_set_buffers_need_resolve(brw); - return; } @@ -863,6 +869,7 @@ brw_draw_prims(struct gl_context *ctx, * to it. */ brw_try_draw_prims(ctx, arrays, prims, nr_prims, xfb_obj, stream, indirect); + brw_finish_drawing(ctx); } void