summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2017-11-17 14:07:21 -0800
committerFrancisco Jerez <[email protected]>2018-01-16 16:03:56 -0800
commit53d8508f1d964423123b7a444e07eabe2d723f7e (patch)
tree465d9d77320cc5a687b2a26a7c6d892eed35ebe3
parentf476b3f6e7b9f61c5bd93cf463005fd88aacaeba (diff)
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 <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/gen6_sol.c5
1 files changed, 3 insertions, 2 deletions
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,