Re: [RFC 0/6] drm/fences: add in-fences to DRM

From: Rob Clark
Date: Thu Mar 31 2016 - 10:10:43 EST

On Thu, Mar 31, 2016 at 7:26 AM, Inki Dae <daeinki@xxxxxxxxx> wrote:
> Hi Daniel,
> 2016-03-31 19:56 GMT+09:00 Daniel Stone <daniel@xxxxxxxxxxxxx>:
>> Hi Inki,
>> On 31 March 2016 at 11:05, Inki Dae <inki.dae@xxxxxxxxxxx> wrote:
>>> 2016ë 03ì 31ì 18:35ì Daniel Stone ì(ê) ì ê:
>>>> On 31 March 2016 at 08:45, Inki Dae <inki.dae@xxxxxxxxxxx> wrote:
>>>>> As of now, it seems that this wouldn't be optional but mandatory if explicit fence support is added to the atomic helper framework. This would definitely be duplication and it seems not clear enough even if one of them is just skipped in runtime.
>>>> Drivers would have to opt in to explicit fencing support, and part of
>>>> that would be ensuring that the driver does not wait on implicit
>>>> fences when the user has requested explicit fencing be used.
>>> Then, existing drivers would need additional works for explicit fencing support. This wouldn't be really what the drivers have to but should be handled with this patch series because this would affect exising device drivers which use implicit fencing.
>> Well, yes. Anyone implementing their own atomic commit would need to
>> ensure that the commit works properly for fences. The helpers could
>> also add it, but the helpers are not mandatory, and you are not
>> required to use every part of the helper to use one part of the
>> helper. There is no magic wand you can wave that instantly makes it
>> work for every driver
> I meant there are already several DRM drivers which work properly for
> implicit fence. So if atomic helper framework of DRM core is
> considered only for the explicit fence, then fencing operation would
> affect the existing DRM drivers. So I hope this trying could consider
> existing implicit fence users.

Note that there would be a new flag on the atomic ioctl to request
explicit fencing, and with an old kernel or a driver that does not
support it, the ioctl would be rejected and an error returned. The
atomic/kms framework would of course continue to support implicit
fencing. And an explicit-fencing userspace would require a
sufficiently new kernel and possibly some minor driver support (above
and beyond 'struct fence' conversion).