From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH] drm/i915: Android sync points for i915 v2 Date: Tue, 05 Aug 2014 10:09:56 +0200 Message-ID: <53E09154.8010005@canonical.com> References: <53DB3275.6010102@canonical.com> <1407194292-16218-1-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by gabe.freedesktop.org (Postfix) with ESMTP id E0D716E48F for ; Tue, 5 Aug 2014 01:10:01 -0700 (PDT) In-Reply-To: <1407194292-16218-1-git-send-email-jbarnes@virtuousgeek.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jesse Barnes , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org op 05-08-14 01:18, Jesse Barnes schreef: > Expose an ioctl to create Android fences based on the Android sync point > infrastructure (which in turn is based on DMA-buf fences). Just a > sketch at this point, no testing has been done. > > There are a couple of goals here: > 1) allow applications and libraries to create fences without an > associated buffer > 2) re-use a common API so userspace doesn't have to impedance mismatch > between different driver implementations too much > 3) allow applications and libraries to use explicit synchronization if > they choose by exposing fences directly > > v2: use struct fence directly using Maarten's new interface > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index d604f4f..6eb119e 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1388,6 +1388,8 @@ struct i915_frontbuffer_tracking { > unsigned flip_bits; > }; > > +struct i915_sync_timeline; > + > struct drm_i915_private { > struct drm_device *dev; > struct kmem_cache *slab; > @@ -1422,6 +1424,8 @@ struct drm_i915_private { > struct drm_i915_gem_object *semaphore_obj; > uint32_t last_seqno, next_seqno; > > + struct i915_sync_timeline *sync_tl[I915_NUM_RINGS]; > + > drm_dma_handle_t *status_page_dmah; > struct resource mch_res; > Leftover remnant? I think you should rebase on top of Chris' seqno/request stuff like you said in TODO, it would reduce the patch to just the ioctl. ;-) ~Maarten