drm/i915: Avoid moving from CPU domain during pwrite
We can avoid an early clflush when pwriting if we use the current CPU write domain rather than moving the object to the GTT domain for the purposes of the pwrite. This has the advantage of not flushing the presumably hot data that we want to upload into the bo, and of ascribing the clflush to the execution when profiling. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
68f95ba9e2
commit
9b8c4a0b21
|
@ -971,7 +971,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
|||
if (obj_priv->phys_obj)
|
||||
ret = i915_gem_phys_pwrite(dev, obj, args, file_priv);
|
||||
else if (obj_priv->tiling_mode == I915_TILING_NONE &&
|
||||
dev->gtt_total != 0) {
|
||||
dev->gtt_total != 0 &&
|
||||
obj->write_domain != I915_GEM_DOMAIN_CPU) {
|
||||
ret = i915_gem_gtt_pwrite_fast(dev, obj, args, file_priv);
|
||||
if (ret == -EFAULT) {
|
||||
ret = i915_gem_gtt_pwrite_slow(dev, obj, args,
|
||||
|
|
Loading…
Reference in New Issue