Re: Add new DIRTY fb flags to pass interlaced alternate fields

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Satish,

On Fri, 7 Sep 2018 at 23:04, Satish Nagireddy
<satish.nagireddy1@xxxxxxxxx> wrote:
> The requirement is to render interlaced alternate buffers. In case of
> alternate, top field and bottom field are in two different buffers.
>
> The question is, can we pass existing flags DRM_MODE_PRESENT_TOP_FIELD
> and DRM_MODE_PRESENT_TOP_FIELD to DRM_IOCTL_MODE_SETPLANE ioctl?

Yes, if the driver implements it. No in-tree driver implements it, and
the core does not pass along or even check the flags, so you would
have to modify the DRM core in order to implement this. This makes the
userspace depend on a specific driver, but this is already the case
for setplane, as the pre-atomic interface is hopelessly underspecified
wrt timing etc, which differs massively between drivers. We recommend
not using it.

> But in case if urrent frame out of display range, application
> will invoke DRM_IOCTL_MODE_PAGE_FLIP ioctl. So, it is not guaranteed
> that application will always call setplane(), it may also call page_flip().
> Then we will have to introduce two more flags to pass with page_flip()
> ioctl, which is complicating things.

Yes, that's correct.

> Background of DRM_IOCTL_MODE_DIRTYFB ioctl: This ioctl is defined, so
> that userspace can notify the driver that an area of framebuffer has
> changed and should be flushed to display hardware.
>
> The proposed solution is to introduce new dirty fb flags, so that userspace
> can pass them with every alternate field buffer and the same is reached
> display hardware. This patch adds new dirty framebuffer flags, so that
> application can pass interlaced alternate field information to driver.

If you're adding two new flags anyway, why not just add them to
pageflip? DirtyFB is not required when pageflipping, and is mostly
only intended for single-buffered usecases, which this is not. It is
not required to be used in pageflipping pipelines, and making people
use DirtyFB in order to specify frame order is quite strange.

Another place where you could specify the field order would be in
AddFB, which was discussed in this thread:
https://lists.freedesktop.org/archives/dri-devel/2016-March/thread.html#102161

In any case, I would very much recommend using atomic modesetting both
within your driver and also within GStreamer, as this solves many
other issues at the same time.

Cheers,
Daniel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux