Commit 9b8c4a0b authored by Chris Wilson's avatar Chris Wilson Committed by Eric Anholt

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: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
parent 68f95ba9
...@@ -971,7 +971,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data, ...@@ -971,7 +971,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
if (obj_priv->phys_obj) if (obj_priv->phys_obj)
ret = i915_gem_phys_pwrite(dev, obj, args, file_priv); ret = i915_gem_phys_pwrite(dev, obj, args, file_priv);
else if (obj_priv->tiling_mode == I915_TILING_NONE && 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); ret = i915_gem_gtt_pwrite_fast(dev, obj, args, file_priv);
if (ret == -EFAULT) { if (ret == -EFAULT) {
ret = i915_gem_gtt_pwrite_slow(dev, obj, args, ret = i915_gem_gtt_pwrite_slow(dev, obj, args,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment