summaryrefslogtreecommitdiff
path: root/benchmarks/wsim
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2017-05-16 13:49:21 +0100
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2017-05-16 13:49:21 +0100
commit987abfb832cc95c7d3c14070dd7e1ca683bda1a7 (patch)
treea47cfa59a9d2f69145229114eae702ca36f3386c /benchmarks/wsim
parent3e622a8f9222f4a670b5365111ddf85b1fb4afa7 (diff)
gem_wsim: Implement sw sync point support
Two new workload commands are added, 'f' and 'q.<idx>' which enable creation and signalling of non i915 fences. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'benchmarks/wsim')
-rw-r--r--benchmarks/wsim/README36
1 files changed, 32 insertions, 4 deletions
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,...
<uint>.<str>.<uint>[-<uint>].<int <= 0>[/<int <= 0>][...].<0|1>,...
-d|p|s|t|q.<uiny>,...
+d|p|s|t|q|a.<int>,...
+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.