drm/i915: Synchronize pread/pwrite with wait_rendering
authorBen Widawsky <benjamin.widawsky@intel.com>
Wed, 11 Sep 2013 21:57:48 +0000 (14:57 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 12 Sep 2013 19:56:52 +0000 (21:56 +0200)
commit23f54483980cea980af37e436ff4e6701aadce12
tree59a63af7edd990a8d4ea4b2593e96e10fee3d04c
parent6c4a8962a4a078cacfc8eb5d4bd79f6343b8cd7a
drm/i915: Synchronize pread/pwrite with wait_rendering

lifted from Daniel:
pread/pwrite isn't about the object's domain at all, but purely about
synchronizing for outstanding rendering. Replacing the call to
set_to_gtt_domain with a wait_rendering would imo improve code
readability. Furthermore we could pimp pread to only block for
outstanding writes and not for reads.

Since you're not the first one to trip over this: Can I volunteer you
for a follow-up patch to fix this?

v2: Switch the pwrite patch to use \!read_only. This was a typo in the
original code. (Chris, Daniel)

Recommended-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
[danvet: Fix up the logic fumble - wait_rendering has a bool readonly
paramater, set_to_gtt_domain otoh has bool write. Breakage reported by
Jani Nikula, I've double-checked that igt/gem_concurrent_blt/prw-*
would have caught this.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c