Re: [RFC 21/31] drm/i915: Convert i915_gem_flush_ggtt_writes to intel_gt

Chris Wilson
2019-06-14T16:24:36Z

Quoting Tvrtko Ursulin (2019-06-14 16:17:21)
> @@ -367,7 +368,6 @@ void
> i915_gem_object_flush_write_domain(struct drm_i915_gem_object *obj,
> unsigned int flush_domains)
> {
> - struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
> struct i915_vma *vma;
>
> assert_object_held(obj);
> @@ -377,8 +377,6 @@ i915_gem_object_flush_write_domain(struct drm_i915_gem_object *obj,
>
> switch (obj->write_domain) {
> case I915_GEM_DOMAIN_GTT:
> - i915_gem_flush_ggtt_writes(dev_priv);
> -
> intel_fb_obj_flush(obj,
> fb_write_origin(obj, I915_GEM_DOMAIN_GTT));
>
> @@ -386,6 +384,7 @@ i915_gem_object_flush_write_domain(struct drm_i915_gem_object *obj,
> if (vma->iomap)
> continue;
>
> + intel_gt_flush_ggtt_writes(vma->vm->gt);

Hmm. I'd like to have the flush before we tell fbc it can read from
memory, and I'd rather not have the heavy flush on every vma.

I'm probably being overly sensitive, but at the very least I would
reorder this flush to memory before the frontbuffer.
-Chris