Re: HDR support in Wayland/Weston

2019-01-30 Thread Nautiyal, Ankit K

Hi Ole,

I was going through the protocol you had proposed, and have some silly 
questions, please pardon my ignorance.


From where can the client-applications get the ICC profile files? Does 
the client application manufacture it for a given color space and a 
standard template?


Or the compositor needs to store .icc files for each of the 
color-spaces, which the clients can use.


Also, are there already libraries that can be user to parse the .icc files?

I can see some recommended by ICC, like SampleICC, Argyll etc, is there 
something which suits our case better?


Regards,

Ankit



On 1/10/2019 9:31 PM, Niels Ole Salscheider wrote:

Hello,

on a first glance this sounds sensible. Would it work well with the last color
management protocol proposal that I made or do you see issues there?
We could add REC2020 as another predefined profile.

https://lists.freedesktop.org/archives/wayland-devel/2017-January/032769.html

I think the last proposal was mostly sane and usable for everybody, but there
was not much interest afterwards. However, there was a lot of discussion with
wishes from different sides that went into this. The relevant mailing list
threads are the following, but you have to follow the discussion over the next
months:

https://lists.freedesktop.org/archives/wayland-devel/2016-November/031728.html
https://lists.freedesktop.org/archives/wayland-devel/2014-March/013951.html

Best regards,
Ole

Am Donnerstag, 10. Januar 2019, 16:02:18 CET schrieb Sharma, Shashank:

Hello All,

This mail is to propose a design for enabling HDR support in
Wayland/Weston stack, using display engine capabilities, and get more
feedback and input from community.
Here are few points (you might already know these), about HDR
framebuffers, videos and displays:
- HDR content/buffers are composed in REC2020 colorspace, with bit depth
10/12/16 BPC. Some of the popular formats are P010,P012,P016.
- HDR content come with their own Metadata to be applied to get the
right luminance at the display device.
  - The metadata can be of two type 1. static 2. dynamic . For
simplicity, this solution is focusing on static HDR only (HDR10 standard)
- HDR content also provide its supported EOTF (electro optical transfer
function) information, which is a curve (like SRGB gamma curve). One
popular EOTF is PQ(ST2084).
- HDR capable displays mention their EOTF and HDR metadata support
information in EDID CEA-861-G blocks.
- Normal SRGB buffers are composed in SRGB color space following REC709
specifications.
- For accurate blending in display engines, we need to make sure following:
  - All the buffers are in same colorspace (Rec 709 or Rec 2020)
  - All the buffers are liner (gamma/EOTF removed)
  - All the buffers are tone mapped in same zone (HDR or SDR)

Please refer to the block diagram below, which presents a simple case of
a HDR P010 movie playback, with HDR buffers as video buffers, and SDR
buffers as subtitles. The subsystem looks and works like this:
- A client decodes the buffer (using FFMpeg for example) and gets the
two buffers, one with video (HDR) and one subtitles (SDR)
- Client passes following information to the compositor:
   - The actual buffers
   - Their colorspace infromation, BT2020 for HDR buffer, REC709 for
SDR buffer (planning to add a new protocol extension for this)
   - The HDR metadata of the content (planning to add new protocol
for this)

- Compositors actions:
 - Reads the End display's HDR capabilities from display EDID. Assume
its an HDR HDMI monitor.
 - Compositor tone maps every view's framebuffer to match tone of end
display, applying a libVA filter. In this example:
  - The SDR subtitles frame will go through SDR to HDR tone
mapping (called S2H)
  - The HDR video frame will go through HDR to HDR tone mapping
(called H2H) if the HDR capabilities of monitor and content are different.
  - Now both the buffers and the monitor are in the same tone
mapped range.
  - As the end display is HDR capable, and one of the content frame
is HDR, the compositor will prepare all other planes for color space
conversion (CSC) from REC709->REC2020 using plane CSC property.
  - As the CSC and blending should be done in liner space, compositor
will also use plane level degamma to make the buffers linear.
  - These actions will make sure that, during blending:
  - All the buffers are in same colorspace (REC2020)
  - All the buffers are linear
  - All the buffers are tone mapped (HDR)
  - The plane level color properties patch, for DRM can be found
here: https://patchwork.freedesktop.org/series/30875/
  - Now, in order to re-apply the HDR curve, compositor will apply
CRTC level gamma, so that the output buffer is non-linear again.
  - To pass the output HDR information to kernel, so that it can
create and send AVI-info-frames to HDMI, compositor will set Connector
HDR metadata property.
  - Code for the 

Re: Upcoming release

2019-01-30 Thread Daniel Stone
Hi Emre,

On Sat, 19 Jan 2019 at 20:39, Ucan, Emre (ADITG/ESB)
 wrote:
> I would like to push XDG shell support for ivi-shell: 
> https://gitlab.freedesktop.org/wayland/weston/merge_requests/86
>
> It would be great if you and other maintainers can ack and/or review this 
> merge request till beginning of February. If they are no major concerns, it 
> would be great to have it in this release.

I've reviewed this now, and there are only some minor changes I can
see need making. If Michael agrees with the suggested changes, I'm
fine with either him making the changes and updating the MR, or if he
has no time this week, I could just do it myself. I'd be really really
glad to make ivi_application very deprecated.

Cheers,
Daniel
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Upcoming release

2019-01-30 Thread Derek Foreman
On 1/30/19 6:58 AM, Alexandros Frantzis wrote:
> On Fri, Jan 25, 2019 at 10:05:47AM -0600, Derek Foreman wrote:
>> On 1/18/19 4:20 PM, Derek Foreman wrote:
>>> Hi all,
>>>
>>> It's been quite some time since our last weston release, and there's
>>> been some discussion of getting the next one out in the January to March
>>> timeframe (this would be the last release to have an autotools build, btw).
>>>
>>> Does anyone have objections to an early February freeze and a March
>>> release?  Anyone with large series near completion?
>>>
>>> Also, I'd like to float the idea of removing the fbdev backend for this
>>> release (or the next).  The bulk of the interesting features target the
>>> drm backend, and it feels like fbdev can sometimes be a bit of a pain to
>>> update when changes are required elsewhere.  Any strong opinions either way?
>>
>> Ok, I've heard no complaints, and we really are overdue...
>>
>> There's been some reasonable pushback against dropping fbdev
>> immediately, so let's leave that in for this release.
>>
>> As to the release schedule, maybe:
>> February 1, Alpha
>> February 15, Beta
>> March 1, RC1
>> March 8 as a first potential final release date.
>>
>> Is this too soon to enter freeze?  It's not a lot of warning.
>>
>> Wayland has had enough changes that I think another joint release makes
>> sense.
>>
>> Thanks,
>> Derek
> 
> Hi Derek,
> 
> it would be nice if we could also try to get the weston support for the
> zwp_linux_explicit_synchronization_unstable_v1 protocol in the next
> release, given that the protocol itself has landed since some time now
> (wayland-protocols 1.17).
> 
> The MR for the explicit sync implementation is at:
> 
> https://gitlab.freedesktop.org/wayland/weston/merge_requests/32

At this point I'm thinking at least a one week push on the proposed
release schedule.  Is that enough to get this one in?

Thanks,
Derek

> Thanks,
> Alexandros
> 

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Upcoming release

2019-01-30 Thread Derek Foreman
On 1/30/19 6:19 AM, Pekka Paalanen wrote:
> On Mon, 28 Jan 2019 12:13:12 +0200
> Pekka Paalanen  wrote:
> 
>> On Fri, 25 Jan 2019 10:05:47 -0600
>> Derek Foreman  wrote:
>>
>>> On 1/18/19 4:20 PM, Derek Foreman wrote:  
 Hi all,

 It's been quite some time since our last weston release, and there's
 been some discussion of getting the next one out in the January to March
 timeframe (this would be the last release to have an autotools build, btw).

 Does anyone have objections to an early February freeze and a March
 release?  Anyone with large series near completion?

 Also, I'd like to float the idea of removing the fbdev backend for this
 release (or the next).  The bulk of the interesting features target the
 drm backend, and it feels like fbdev can sometimes be a bit of a pain to
 update when changes are required elsewhere.  Any strong opinions either 
 way?
>>>
>>> Ok, I've heard no complaints, and we really are overdue...
>>>
>>> There's been some reasonable pushback against dropping fbdev
>>> immediately, so let's leave that in for this release.
>>>
>>> As to the release schedule, maybe:
>>> February 1, Alpha
>>> February 15, Beta
>>> March 1, RC1
>>> March 8 as a first potential final release date.
>>>
>>> Is this too soon to enter freeze?  It's not a lot of warning.
>>>
>>> Wayland has had enough changes that I think another joint release makes
>>> sense.  
>>
>> Hi,
>>
>> here are my picks from the pending reviews. I don't mean that we should
>> wait on them unless noted explicitly below.

Thanks for putting this list together.

>> Wayland:
>>
>> I reviewed https://patchwork.freedesktop.org/series/49379/ and it needs
>> work.
>>
>> https://patchwork.freedesktop.org/series/38564/ is probably something I
>> should look into to have in the alpha.
> 
> That one landed.
> 
>>
>> Weston:
>>
>> https://gitlab.freedesktop.org/wayland/weston/merge_requests/66 is
>> something I'd like to land, but it needs a small touch.
>>
>> https://gitlab.freedesktop.org/wayland/weston/merge_requests/62 is
>> probably important enough, that I'd be willing to postpone the release
>> until we get that in. Looks like it is very close.

Jonas mentioned this one on IRC too.  Looks like it's close enough to
delay the release for, and I think everyone would really like to see it
landed.

>> Since Meson is a new thing,
>> https://gitlab.freedesktop.org/wayland/weston/merge_requests/85 would
>> probably be nice to decide on.
>>
>> Getting NEWS files would be cool too. This was just the first attempt
>> that got useful feedback but I never had the time to take it further:
>> https://patchwork.freedesktop.org/series/16218/
>>
> 
> I took a look at the Weston changes since 5.0.0 release:
> 
> - the exported symbols from weston executable have changed, backwards
>   incompatible, but this probably shouldn't count against libweston
>   major
> 
> - struct weston_head gained a new member
> 
> - struct weston_compositor gained new members
> 
> - struct weston_surface gained a new member
> 
> I guess these are reasons enough to bump the major to 6, right?
> 
> Would have been interesting to release a 5.1.0, too bad. :-)

Thanks for looking into this, as I wasn't sure yet what the new release
would be called. :)

Sounds like a 6 to me.

We'll definitely be in a holding pattern until the xdg-shell (MR 62)
stuff lands.

Thanks,
Derek

> 
> Thanks,
> pq
> 

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH] Print NULL strings as "nil" in wl_closure_print

2019-01-30 Thread Pekka Paalanen
On Tue, 29 Jan 2019 22:00:40 +
Simon Ser  wrote:

> Calling printf("%s", NULL) is undefined behaviour.
> 
> Signed-off-by: Simon Ser 
> ---
>  src/connection.c | 5 -
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/connection.c b/src/connection.c
> index f965210..474c97b 100644
> --- a/src/connection.c
> +++ b/src/connection.c
> @@ -1278,7 +1278,10 @@ wl_closure_print(struct wl_closure *closure, struct 
> wl_object *target, int send)
>   wl_fixed_to_double(closure->args[i].f));
>   break;
>   case 's':
> - fprintf(stderr, "\"%s\"", closure->args[i].s);
> + if (closure->args[i].s)
> + fprintf(stderr, "\"%s\"", closure->args[i].s);
> + else
> + fprintf(stderr, "nil");
>   break;
>   case 'o':
>   if (closure->args[i].o)

Pushed:
   d325140..6afb152  master -> master


Thanks,
pq


pgp0h1TMrftWs.pgp
Description: OpenPGP digital signature
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Upcoming release

2019-01-30 Thread Alexandros Frantzis
On Fri, Jan 25, 2019 at 10:05:47AM -0600, Derek Foreman wrote:
> On 1/18/19 4:20 PM, Derek Foreman wrote:
> > Hi all,
> > 
> > It's been quite some time since our last weston release, and there's
> > been some discussion of getting the next one out in the January to March
> > timeframe (this would be the last release to have an autotools build, btw).
> > 
> > Does anyone have objections to an early February freeze and a March
> > release?  Anyone with large series near completion?
> > 
> > Also, I'd like to float the idea of removing the fbdev backend for this
> > release (or the next).  The bulk of the interesting features target the
> > drm backend, and it feels like fbdev can sometimes be a bit of a pain to
> > update when changes are required elsewhere.  Any strong opinions either way?
> 
> Ok, I've heard no complaints, and we really are overdue...
> 
> There's been some reasonable pushback against dropping fbdev
> immediately, so let's leave that in for this release.
> 
> As to the release schedule, maybe:
> February 1, Alpha
> February 15, Beta
> March 1, RC1
> March 8 as a first potential final release date.
> 
> Is this too soon to enter freeze?  It's not a lot of warning.
> 
> Wayland has had enough changes that I think another joint release makes
> sense.
> 
> Thanks,
> Derek

Hi Derek,

it would be nice if we could also try to get the weston support for the
zwp_linux_explicit_synchronization_unstable_v1 protocol in the next
release, given that the protocol itself has landed since some time now
(wayland-protocols 1.17).

The MR for the explicit sync implementation is at:

https://gitlab.freedesktop.org/wayland/weston/merge_requests/32

Thanks,
Alexandros
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Upcoming release

2019-01-30 Thread Pekka Paalanen
On Mon, 28 Jan 2019 12:13:12 +0200
Pekka Paalanen  wrote:

> On Fri, 25 Jan 2019 10:05:47 -0600
> Derek Foreman  wrote:
> 
> > On 1/18/19 4:20 PM, Derek Foreman wrote:  
> > > Hi all,
> > > 
> > > It's been quite some time since our last weston release, and there's
> > > been some discussion of getting the next one out in the January to March
> > > timeframe (this would be the last release to have an autotools build, 
> > > btw).
> > > 
> > > Does anyone have objections to an early February freeze and a March
> > > release?  Anyone with large series near completion?
> > > 
> > > Also, I'd like to float the idea of removing the fbdev backend for this
> > > release (or the next).  The bulk of the interesting features target the
> > > drm backend, and it feels like fbdev can sometimes be a bit of a pain to
> > > update when changes are required elsewhere.  Any strong opinions either 
> > > way?
> > 
> > Ok, I've heard no complaints, and we really are overdue...
> > 
> > There's been some reasonable pushback against dropping fbdev
> > immediately, so let's leave that in for this release.
> > 
> > As to the release schedule, maybe:
> > February 1, Alpha
> > February 15, Beta
> > March 1, RC1
> > March 8 as a first potential final release date.
> > 
> > Is this too soon to enter freeze?  It's not a lot of warning.
> > 
> > Wayland has had enough changes that I think another joint release makes
> > sense.  
> 
> Hi,
> 
> here are my picks from the pending reviews. I don't mean that we should
> wait on them unless noted explicitly below.
> 
> Wayland:
> 
> I reviewed https://patchwork.freedesktop.org/series/49379/ and it needs
> work.
> 
> https://patchwork.freedesktop.org/series/38564/ is probably something I
> should look into to have in the alpha.

That one landed.

> 
> Weston:
> 
> https://gitlab.freedesktop.org/wayland/weston/merge_requests/66 is
> something I'd like to land, but it needs a small touch.
> 
> https://gitlab.freedesktop.org/wayland/weston/merge_requests/62 is
> probably important enough, that I'd be willing to postpone the release
> until we get that in. Looks like it is very close.
> 
> Since Meson is a new thing,
> https://gitlab.freedesktop.org/wayland/weston/merge_requests/85 would
> probably be nice to decide on.
> 
> Getting NEWS files would be cool too. This was just the first attempt
> that got useful feedback but I never had the time to take it further:
> https://patchwork.freedesktop.org/series/16218/
> 

I took a look at the Weston changes since 5.0.0 release:

- the exported symbols from weston executable have changed, backwards
  incompatible, but this probably shouldn't count against libweston
  major

- struct weston_head gained a new member

- struct weston_compositor gained new members

- struct weston_surface gained a new member

I guess these are reasons enough to bump the major to 6, right?

Would have been interesting to release a 5.1.0, too bad. :-)


Thanks,
pq


pgphnvDTqiWDv.pgp
Description: OpenPGP digital signature
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH RFC weston] libinput: support high-resolution scroll wheels

2019-01-30 Thread Pekka Paalanen
On Wed, 30 Jan 2019 09:47:39 +1000
Peter Hutterer  wrote:

> On Tue, Jan 29, 2019 at 03:36:41PM +0200, Pekka Paalanen wrote:
> > On Tue, 29 Jan 2019 16:57:34 +1000
> > Peter Hutterer  wrote:
> >   
> > > The new API returns scroll wheels as fractions of 120.
> > > 
> > > Signed-off-by: Peter Hutterer 
> > > ---
> > > Turns out it's not the most complicated patch...
> > > 
> > > This is an RFC only because libinput hasn't been released yet, and it's
> > > waiting on the kernel release anyway. Given the expected delay, I hope
> > > autotools is removed by the time this becomes a mergeable.
> > > 
> > >  libweston/libinput-device.c | 6 ++
> > >  meson.build | 9 +
> > >  2 files changed, 15 insertions(+)
> > > 
> > > diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c
> > > index e25df144..e028d246 100644
> > > --- a/libweston/libinput-device.c
> > > +++ b/libweston/libinput-device.c
> > > @@ -190,9 +190,15 @@ normalize_scroll(struct libinput_event_pointer 
> > > *pointer_event,
> > >*/
> > >   switch (source) {
> > >   case LIBINPUT_POINTER_AXIS_SOURCE_WHEEL:
> > > +#if HAVE_LIBINPUT_AXIS_V120
> > > + value = 10 * libinput_event_pointer_get_axis_value_v120(
> > > +
> > > pointer_event,
> > > +axis)/120.0; 
> > >  
> > 
> > Hi Peter,
> > 
> > spaces needed around the operator.  
> 
> thx, and I will submit a MR proper anyway, this was just a FYI patch to
> illustrate the world probably won't end if we add hi-res scrolling.
> 
> > > +#else
> > >   value = 10 * libinput_event_pointer_get_axis_value_discrete(
> > >  
> > > pointer_event,
> > >  axis);
> > > +#endif
> > >   break;
> > >   case LIBINPUT_POINTER_AXIS_SOURCE_FINGER:
> > >   case LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS:
> > > diff --git a/meson.build b/meson.build
> > > index 7826dbb0..dfb10ce5 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -143,6 +143,15 @@ dep_wayland_server = dependency('wayland-server', 
> > > version: '>= 1.12.0')
> > >  dep_wayland_client = dependency('wayland-client', version: '>= 1.12.0')
> > >  dep_pixman = dependency('pixman-1', version: '>= 0.25.2')
> > >  dep_libinput = dependency('libinput', version: '>= 0.8.0')
> > > +have_libinput_axis_v120_code = '''
> > > +#include 
> > > +int main(void) { libinput_event_pointer_get_axis_value_v120(NULL, 0); }
> > > +'''
> > > +have_libinput_axis_v120 = cc.links(have_libinput_axis_v120_code,
> > > +name: 
> > > 'libinput_event_pointer_get_axis_value_v120',
> > > +dependencies: dep_libinput)  
> > 
> > I guess the above gets replaced with a version check after libinput is
> > released?  
> 
> I found the direct function check works just as well and has the benefit of
> working with pre-releases (or patched versions) where needed. Esp. because
> here we just look for a single API call here. Do you have a preference?

Hi Peter,

maybe simply hard-require the new libinput release and don't even
bother with the #define below? But I suppose that could be inconvenient
for some.

Since it's just one function, I suppose I don't mind that much. The
version check would be much simpler in meson though.

Oh, you should probably use cc.has_function() instead of that
hand-written thing, that would help.


Thanks,
pq

> > > +config_h.set10('HAVE_LIBINPUT_AXIS_V120', have_libinput_axis_v120)
> > > +


pgpvE2cevx0Qe.pgp
Description: OpenPGP digital signature
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel