From: Francisco Jerez Date: Fri, 17 Nov 2017 22:07:21 +0000 (-0800) Subject: i965/gen6-7/sol: Bump primitive counter BO size. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=53d8508f1d964423123b7a444e07eabe2d723f7e;p=mesa.git i965/gen6-7/sol: Bump primitive counter BO size. Improves performance of SynMark2 OglGSCloth by a further 9.65%±0.59% due to the reduction in overwraps of the primitive count buffer that lead to a CPU stall on previous rendering. Cummulative performance improvement from the series 81.50% ±0.96% (data gathered on VLV). Tested-By: Eero Tamminen Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/gen6_sol.c b/src/mesa/drivers/dri/i965/gen6_sol.c index b1baf01bcd9..355acd42189 100644 --- a/src/mesa/drivers/dri/i965/gen6_sol.c +++ b/src/mesa/drivers/dri/i965/gen6_sol.c @@ -197,7 +197,7 @@ brw_new_transform_feedback(struct gl_context *ctx, GLuint name) brw_obj->offset_bo = brw_bo_alloc(brw->bufmgr, "transform feedback offsets", 16, 64); brw_obj->prim_count_bo = - brw_bo_alloc(brw->bufmgr, "xfb primitive counts", 4096, 64); + brw_bo_alloc(brw->bufmgr, "xfb primitive counts", 16384, 64); return &brw_obj->base; } @@ -287,7 +287,8 @@ brw_save_primitives_written_counters(struct brw_context *brw, assert(obj->prim_count_bo != NULL); /* Check if there's enough space for a new pair of four values. */ - if ((obj->counter.bo_end + 2) * streams * sizeof(uint64_t) >= 4096) { + if ((obj->counter.bo_end + 2) * streams * sizeof(uint64_t) >= + obj->prim_count_bo->size) { aggregate_transform_feedback_counter(brw, obj->prim_count_bo, &obj->previous_counter); aggregate_transform_feedback_counter(brw, obj->prim_count_bo,