diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-03-25 17:47:37 (GMT) |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-03-27 11:28:45 (GMT) |
commit | 586428852a4fe64d77dc3e34c446fba33a2ca971 (patch) | |
tree | bdf81cc0ab4d837dc1468a19c1a39507690cf7f0 /drivers/message | |
parent | 96d79b52701758404cf8701986891afc99ce810b (diff) | |
download | linux-fsl-qoriq-586428852a4fe64d77dc3e34c446fba33a2ca971.tar.xz |
drm/i915: implement inline clflush for pwrite
In micro-benchmarking of the usual pwrite use-pattern of alternating
pwrites with gtt domain reads from the gpu, this yields around 30%
improvement of pwrite throughput across all buffers size. The trick is
that we can avoid clflush cachelines that we will overwrite completely
anyway.
Furthermore for partial pwrites it gives a proportional speedup on top
of the 30% percent because we only clflush back the part of the buffer
we're actually writing.
v2: Simplify the clflush-before-write logic, as suggested by Chris
Wilson.
v3: Finishing touches suggested by Chris Wilson:
- add comment to needs_clflush_before and only set this if the bo is
uncached.
- s/needs_clflush/needs_clflush_after/ in the write paths to clearly
differentiate it from needs_clflush_before.
Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/message')
0 files changed, 0 insertions, 0 deletions