i965/iris: perf-queries: don't invalidate/flush 3d pipeline
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Mon, 20 May 2019 06:56:18 +0000 (07:56 +0100)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 13 Dec 2019 09:27:22 +0000 (11:27 +0200)
commitbd888bc1d65cefbd4e3fc0a40d416c75d9632951
treec566453a19e10d1e1483d63c069406f2498b01e2
parenta575b3cd5c1e61a7e92fa2521ced95d24b64f392
i965/iris: perf-queries: don't invalidate/flush 3d pipeline

Our current implementation of performance queries is fairly harsh
because it completely flushes and invalidates the 3d pipeline caches
at the beginning and end of each query. An argument can be made that
this is how performance should be measured but it probably doesn't
reflect what the application is actually doing and the actual cost of
draw calls.

A more appropriate approach is to just stall the pipeline at
scoreboard, so that we measure the effect of a draw call without
having the pipeline in a completely pristine state for every draw
call.

v2: Use end of pipe PIPE_CONTROL instruction for Iris (Ken)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/gallium/drivers/iris/iris_perf.c
src/intel/perf/gen_perf.c
src/intel/perf/gen_perf.h
src/mesa/drivers/dri/i965/brw_performance_query.c