From 987abfb832cc95c7d3c14070dd7e1ca683bda1a7 Mon Sep 17 00:00:00 2001 From: Tvrtko Ursulin Date: Tue, 16 May 2017 13:49:21 +0100 Subject: gem_wsim: Implement sw sync point support Two new workload commands are added, 'f' and 'q.' which enable creation and signalling of non i915 fences. Signed-off-by: Tvrtko Ursulin --- benchmarks/wsim/README | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'benchmarks/wsim') diff --git a/benchmarks/wsim/README b/benchmarks/wsim/README index 617b1338..01766d37 100644 --- a/benchmarks/wsim/README +++ b/benchmarks/wsim/README @@ -3,7 +3,8 @@ Workload descriptor format ctx.engine.duration_us.dependency.wait,... ..[-].[/][...].<0|1>,... -d|p|s|t|q.,... +d|p|s|t|q|a.,... +f For duration a range can be given from which a random value will be picked before every submit. Since this and seqno management requires CPU access to @@ -17,8 +18,10 @@ Additional workload steps are also supported: 'p' - Adds a delay relative to the start of previous loop so that the each loop starts execution with a given period. 's' - Synchronises the pipeline to a batch relative to the step. - 't' - Throttle every n batches - 'q' - Throttle to n max queue depth + 't' - Throttle every n batches. + 'q' - Throttle to n max queue depth. + 'f' - Create a sync fence. + 'a' - Advance the previously created sync fence. Engine ids: RCS, BCS, VCS, VCS1, VCS2, VECS @@ -77,8 +80,33 @@ as a dependency in the current step. Example: - 1.VCS1.3000.0.1 + 1.VCS1.3000.0.0 1.RCS.500-1000.-1/f-1.0 In this case the second step will have both a data dependency and a sync fence dependency on the previous step. + +Example: + + 1.RCS.500-1000.0.0 + 1.VCS1.3000.f-1.0 + 1.VCS2.3000.f-2.0 + +VCS1 and VCS2 batches will have a sync fence dependency on the RCS batch. + +Example: + + 1.RCS.500-1000.0.0 + f + 2.VCS1.3000.f-1.0 + 2.VCS2.3000.f-2.0 + 1.RCS.500-1000.0.1 + a.-4 + s.-4 + s.-4 + +VCS1 and VCS2 batches have an input sync fence dependecy on the standalone fence +created at the second step. They are submitted ahead of time while still not +runnable. When the second RCS batch completes the standalone fence is signaled +which allows the two VCS batches to be executed. Finally we wait until the both +VCS batches have completed before starting the (optional) next iteration. -- cgit v1.2.3