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

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

 



Hi Daniel,

Thanks a lot for the reply.
Could you please give little more details on how "atomic modesetting"
will help this?
As I have to pass field type with every buffer, are there any existing
flags or can I add new flags in drm_mode_atomic struct?

Regards,
Satish
On Mon, 17 Sep 2018 at 11:59, Daniel Stone <daniel@xxxxxxxxxxxxx> wrote:
>
> 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