Hi, On 13 November 2015 at 10:08, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > On Thu, Nov 12, 2015 at 05:49:28PM -0800, Alex Goins wrote: >> static const uint32_t i8xx_primary_formats[] = { >> @@ -11170,10 +11172,19 @@ static void ilk_do_mmio_flip(struct intel_crtc *intel_crtc) >> static void intel_do_mmio_flip(struct intel_crtc *intel_crtc) >> { >> struct drm_device *dev = intel_crtc->base.dev; >> + struct drm_i915_gem_object *pending_flip_obj = >> + intel_crtc->unpin_work->pending_flip_obj; >> u32 start_vbl_count; >> >> intel_mark_page_flip_active(intel_crtc); >> >> + /* For framebuffer backed by dmabuf, wait for fence */ >> + if (pending_flip_obj->base.dma_buf) { >> + reservation_object_wait_timeout_rcu( >> + pending_flip_obj->base.dma_buf->resv, >> + true, false, msecs_to_jiffies(96)); >> + } > > This wait should be prior to marking the flip as waiting for the > flip-completion interrupt. My personal preference (aside from putting > this next to the other wait) would to have been to use crtc->primary->fb > to match the do_mmip_flips funcs (I expect that we will eliminate the > pending_flip_obj in the near future). No, don't use crtc->primary->fb for anything. Cheers, Daniel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel