Re: [PATCH weston v4 01/15] Add a fullscreen shell protocol

2014-03-07 Thread Jason Ekstrand
On Mar 7, 2014 1:14 PM, "Bryce W. Harrington" wrote: > > On Fri, Mar 07, 2014 at 11:31:16AM -0600, Jason Ekstrand wrote: > > > > + If the size of the presented surface changes, the resulting output > > > > + is undefined. The compositor may attempt to change the output > > mode > > > > +

Re: [RFCv3 weston 01/15] compositor: refactor more into weston_surface_attach

2014-03-07 Thread Daniel Stone
Hi, On 7 March 2014 13:03, Pekka Paalanen wrote: > Merge more code into a common function. No functional changes. Quick nitpick: does this not break all the pixman_region32_*() calls in weston_surface_commit(), which rely on surface->{width,height}? Should be pretty easy to see this breakage whe

[PATCH] x11-backend: Add a --scale option

2014-03-07 Thread Jason Ekstrand
From: Jason Ekstrand --- man/weston.man | 4 src/compositor-x11.c | 11 +++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/man/weston.man b/man/weston.man index f2d1b4c..fd1c7a5 100644 --- a/man/weston.man +++ b/man/weston.man @@ -186,6 +186,10 @@ X windows t

Re: [PATCH weston v4 01/15] Add a fullscreen shell protocol

2014-03-07 Thread Bryce W. Harrington
On Fri, Mar 07, 2014 at 11:31:16AM -0600, Jason Ekstrand wrote: > > > + If the size of the presented surface changes, the resulting output > > > + is undefined. The compositor may attempt to change the output > mode > > > + to compensate. However, there is no guarantee that a suitable

[PATCH mesa 1/7] Use the magic behaviour of GL_BACK in GLES 1 and 2 as well as 3

2014-03-07 Thread Neil Roberts
In GLES 3 it is not possible to select rendering to the front buffer and instead selecting GL_BACK has the magic interpretation that it is either the front buffer on single-buffered configs or the back buffer on double-buffered. GLES 1 and 2 have no way of selecting the draw buffer at all. In that

[PATCH mesa 2/7] Fix the initial value of glDrawBuffers for GLES

2014-03-07 Thread Neil Roberts
Under GLES 3 it is not valid to pass GL_FRONT to glDrawBuffers. Instead, GL_BACK has a magic interpretation which means it will render to the front buffer on single-buffered contexts and the back buffer on double-buffered. We were incorrectly setting the initial value to GL_FRONT for single-buffere

[PATCH 0/7] EGL_MESA_configless_context

2014-03-07 Thread Neil Roberts
Here is a series of patches to add an extension which makes it possible to create an EGL context without specifying a config. A context created in this way can be bound with any surface using the same EGLDisplay rather than being restricted to those using the same config. The main use case is that

[PATCH weston 7/7] Add support for having different GBM formats for different outputs

2014-03-07 Thread Neil Roberts
The gbm-format configuration option can now be specified per-output as well as in the core config section. If it is not specified it will default to the format specified in the core section. The EGL_MESA_configless_context extension is required for this to work. If this extension is available it wi

[PATCH weston 6/7] Split gl_renderer_setup into two functions

2014-03-07 Thread Neil Roberts
Part of the gl_renderer_setup function only deals with checking EGL extensions and doesn't need to have a current context. This patch moves these checks so that they are done during gl_renderer_create instead of waiting until we have an output. We will need this in a later patch because some of the

[PATCH piglit 5/7] Add a test for EGL_MESA_configless_context

2014-03-07 Thread Neil Roberts
This tests creating an EGLContext without an EGLConfig and then creates three surfaces with different configs and tries rendering to them. The test is skipped if the extension is not available. --- tests/all.py | 4 + tests/egl/CMakeLists.gl.txt| 1 + tests/egl/eg

[PATCH mesa 3/7] eglCreateContext: Remove the check for whether config == 0

2014-03-07 Thread Neil Roberts
In eglCreateContext there is a check for whether the config parameter is zero and in this case it will avoid reporting an error if the EGL_KHR_surfacless_context extension is supported. However there is nothing in that extension which says you can create a context without a config and Mesa breaks i

[PATCH mesa 4/7] Add the EGL_MESA_configless_context extension

2014-03-07 Thread Neil Roberts
This extension provides a way for an application to render to multiple surfaces with different buffer formats without having to use multiple contexts. An EGLContext can be created without an EGLConfig by passing EGL_NO_CONFIG_MESA. In that case there are no restrictions on the surfaces that can be

Re: [PATCH 00/12] implement per connector clone mode

2014-03-07 Thread Bill Spitzak
Xiong Zhang wrote: With the help of Ander, this is the new round clone mode patchset. It seems like there is now two different methods of getting a surface to be seen more than once: using this clone of an output, and the "views" stuff for putting a surface on more than one output. I think

Re: [PATCH weston v4 01/15] Add a fullscreen shell protocol

2014-03-07 Thread Jason Ekstrand
Hi Bryce, Thanks for reviewing! I'll get the typo changes made and look into canceled vs. cancelled. More comments below On Mar 6, 2014 9:38 PM, "Bryce W. Harrington" wrote: > > On Tue, Feb 25, 2014 at 07:26:33PM -0600, Jason Ekstrand wrote: > > Signed-off-by: Jason Ekstrand > > --- > > proto

Re: [PATCH weston-ivi-shell v2 02/15] ivi application protocol:

2014-03-07 Thread Jason Ekstrand
On Mar 7, 2014 7:56 AM, "Nobuhiko Tanibata" < nobuhiko_tanib...@xddp.denso.co.jp> wrote: > > Add interface ivi_application, which creates ivi_surface objects tied > to a given wl_surface with a given id. The given id can be used in a > shell to identify which application is assigned to a wl_surface

[RFCv3.1 weston] WIP protocol: add flags and refresh stream to presentation

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen This is quick write-up of http://cgit.collabora.com/git/user/pq/weston.git/tree/buffer-queue3.txt?h=buffer-queue-spec How would this idea feel? Thanks, pq --- protocol/presentation_timing.xml | 66 1 file changed, 66 insertions(+)

[PATCH weston-ivi-shell v2 02/15] ivi application protocol:

2014-03-07 Thread Nobuhiko Tanibata
Add interface ivi_application, which creates ivi_surface objects tied to a given wl_surface with a given id. The given id can be used in a shell to identify which application is assigned to a wl_surface and layout the surface wherever the shell wants. ivi_surface objects can be used to receive stat

Re: [PATCH weston] weston-launch: Do not run weston in a shell

2014-03-07 Thread Pekka Paalanen
On Thu, 6 Mar 2014 17:25:49 +0100 Quentin Glidic wrote: > From: Quentin Glidic > > Since 636156d5f693ac5b01cec6a2937d2b6cd4237ea9 it is not needed any > more to allow the user to pass environment to weston. Actually, the > login shell is wiping parts of the environment. > > Signed-off-by: Que

[RFCv3 weston 13/15] clients: add presentation-shm demo

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen This started as a copy of simple-shm.c before it was converted to xdg_shell. This demo excercises the presentation feedback interface in three different mode: - A continuous repaint loop triggered by frame callbacks, and using immediate commits, just gathering presentatio

[RFCv3 weston 11/15] compositor-drm: deliver frame seq for feedback

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Add 'msc' field to weston_output to maintain the refresh counter, and use it in presentation_feedback.presented. Make compositor-drm update the per-output refresh counter with the values reported by DRM. If the DRM reported value jumps backwards, assume it wrapped around onc

[RFCv3 weston 09/15] compositor: set and use the presentation clock everywhere

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Add presentation clock setters that verify the given clock actually works. Offer an automatic choice of a software fallback clock, when a backend has to always use clock_gettime() to approximate the presentation time. The DRM backend already queried the DRM about the clock i

[RFCv3 weston 07/15] compositor: add stub implementation of presentation interface

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen You can bind to the global interface, and it delivers a fake clock id. All requests on it raise an error. Signed-off-by: Pekka Paalanen --- src/compositor.c | 70 +++- 1 file changed, 69 insertions(+), 1 deletion(-) diff

[RFCv3 weston 14/15] protocol: add scaler TODO

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen These changes are needed by the queueing in Presentation extension. --- protocol/scaler.xml | 4 src/compositor.c| 3 +++ 2 files changed, 7 insertions(+) diff --git a/protocol/scaler.xml b/protocol/scaler.xml index dfe44b8..f3a7232 100644 --- a/protocol/scaler.xml

[RFCv3 weston 10/15] compositor: implement presentation_feedback

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Implement the presentation.feedback request, and the presentation_feedback protocol interface. Feedback information is delivered to clients as the backend reports it, except the refresh counter (MSC) which is always reported as zero. Signed-off-by: Pekka Paalanen --- src/c

[RFCv3 weston 12/15] compositor: implement presentation.queue

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Implement the queueing and queue processing of the Presentation extension. Every weston_surface (wl_surface) has a queue_list, which is ordered by the target presentation timestamp of the queued updates. A wl_surface.commit following a presentation.queue will trigger queuein

[RFCv3 weston 15/15] compositor: add presentation debug functions

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen These are to be enabled by a developer as needed. They helped to track down a problem, where the prediction was deemed practically perfect but feedback was sent on the frame after, leading to incorrect feedback that looked like all queued updates were always one frame late.

[RFCv3 weston 04/15] compositor: reorganize struct weston_buffer_viewport

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Queueing in the Presentation extension requires splitting the viewport state into buffer state and surface state. To conveniently allow assigning only one, the other, or both, reorganize the weston_buffer_viewport structure. Signed-off-by: Pekka Paalanen --- desktop-shell/

[RFCv3 weston 03/15] compositor: refactor code into weston_surface_reset_pending_buffer()

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen No functional changes. Signed-off-by: Pekka Paalanen --- src/compositor.c | 25 + 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 2911157..e1d6df1 100644 --- a/src/compositor.c +++ b/src/comp

[RFCv3 weston 06/15] protocol: add presentation extension RFC v3

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Add accurate presentation timing features to Wayland: queueing and feedback. This specification is based on the draft written by Frederic Plourde and redesigned by Pekka Paalanen. The RFC v2 version is from http://lists.freedesktop.org/archives/wayland-devel/2014-January/0

[RFCv3 weston 08/15] weston-info: report presentation clock

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Signed-off-by: Pekka Paalanen --- Makefile.am | 3 ++ clients/weston-info.c | 81 +++ 2 files changed, 84 insertions(+) diff --git a/Makefile.am b/Makefile.am index 998dc54..79e6a7d 100644 --- a/Makefile.am +++ b/M

[RFCv3 weston 02/15] compositor: buffer can be non-NULL only if newly_attached

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen There is no need for weston_subsurface_commit_to_cache() to leave the pending.buffer set. Reset it to NULL. This makes pending.buffer always NULL if pending.newly_attached == 0. IOW, pending.buffer cannot be non-NULL unless pending.newly_attached == 1. Therefore no need to

[RFCv3 weston 05/15] compositor: replace weston_buffer_viewport::viewport_set

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Remove the explicit boolean variable, and use illegal width to denote "not set". Split the boolean into two, so we can later start having buffer.src_* and surface.* set or not set independently. This may become useful when the wl_viewport interface is changed to allow modify

[RFCv3 weston 01/15] compositor: refactor more into weston_surface_attach

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Merge more code into a common function. No functional changes. Signed-off-by: Pekka Paalanen --- src/compositor.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 7c29d51..09e1acb 100644 --- a/src/comp

[RFCv3 weston 00/15] Wayland Presentation extension

2014-03-07 Thread Pekka Paalanen
From: Pekka Paalanen Hi all, here is the third RFC of the Wayland Presentation protocol, now with a complete implementation! RFCv2 can be found at http://lists.freedesktop.org/archives/wayland-devel/2014-January/012988.html and the email thread contains extensive discussion, from which the conc

[PATCH v2 02/12] shell.c: Restore maximized and fullscreen window on destroyed output

2014-03-07 Thread Xiong Zhang
When maximized or fullscreen window is on destroyed output, compositor can't change these windows to normal window without notify client, otherwise maximize icon or F11 buttion lose its effect after output unplug. Instead we keep these window as maximized or fullscreen, just change it's size to ta

[PATCH 11/12] compositor: Hot plug a output in clone mode

2014-03-07 Thread Xiong Zhang
If adding output is a clone output, first system will find its master, then system will put this output into master->clone_output_list If adding output is a master output, system will loop the output_list to find its clone output. If this master has clone output, the clone output will downgrade fr

[PATCH 10/12] compositor-drm: Deal with VT switch in clone mode

2014-03-07 Thread Xiong Zhang
Signed-off-by: Xiong Zhang --- src/compositor-drm.c | 28 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/compositor-drm.c b/src/compositor-drm.c index de777b3..58a0efa 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -2376,7 +2376,7

[PATCH 09/12] compositor: Output repaint in clone mode

2014-03-07 Thread Xiong Zhang
Because clone output isn't in compositor->output_list, all the repaint request are for master output. When master output repaint, all the associated clone output must repaint also. Signed-off-by: Xiong Zhang --- src/compositor.c | 17 ++--- 1 file changed, 14 insertions(+), 3 deleti

[PATCH 00/12] implement per connector clone mode

2014-03-07 Thread Xiong Zhang
With the help of Ander, this is the new round clone mode patchset. The implementation points are: a. master output are in compositor->output_list, clone output are in master_output->clone_output_list. we create global_output for master output only. Client can't get any information for clone output

[PATCH 01/12] shell.c: Set dirty for visible views on destroyed output

2014-03-07 Thread Xiong Zhang
The geometry for visible views will keep unchanged, weston_view_set_position() doesn't mark these views as dirty. So there is no chance for them to reassign output, then these views will disappear. Signed-off-by: Xiong Zhang --- desktop-shell/shell.c | 6 -- 1 file changed, 4 insertions(+),

[PATCH 04/12] compositor: Add output to the compositor output list in the core

2014-03-07 Thread Xiong Zhang
From: Ander Conselvan de Oliveira Previously the insertion was done by the backends, with a potential crash in the error path. Calls to weston_output_destroy() would try to remove the output from the compositor list before it was actually inserted. This patch moves the insertion to weston_output

[PATCH 05/12] compositor: Track damage properly for overlapping outputs

2014-03-07 Thread Xiong Zhang
From: Ander Conselvan de Oliveira The assumption that there are no overlapping outputs allows damage to be kept in a compositor-wide region that is cleared by the backends after output repaint. When outputs overlap, however, the repaint of one output clears the damage for the overlapping region b

[PATCH 07/12] compositor: Add per connector clone mode support

2014-03-07 Thread Xiong Zhang
Master output will be in compositor->output_list. Clone output won't be in compositor->output_list, while it is in master->clone_output_list. The group of master output and associated clone outputs will be treated as one output, client can't get any information about clone output. Signed-off-by:

[PATCH 02/12] shell.c: Restore maximized and fullscreen window on destroyed output

2014-03-07 Thread Xiong Zhang
When maximized or fullscreen window is on destroyed output, compositor can't change these windows to normal window without notify client, otherwise maximize icon or F11 buttion lose its effect after output unplug. Instead we keep these window as maximized or fullscreen, just change it's size to ta

[PATCH 06/12] compositor-drm: Abstract drm_output_set_mode()

2014-03-07 Thread Xiong Zhang
Signed-off-by: Xiong Zhang --- src/compositor-drm.c | 45 +++-- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 78292a6..dd1c251 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @

[PATCH 03/12] compositor: Move output positining logic out of the backends

2014-03-07 Thread Xiong Zhang
From: Ander Conselvan de Oliveira Move the code for choosing the x and y of an output out of the backend into weston_output_init(). All the backends implement the same simple behavior, so this lets that code be in just one place. Signed-off-by: Ander Conselvan de Oliveira --- src/compositor-d

[PATCH 12/12] compositor: Output unplug in clone mode

2014-03-07 Thread Xiong Zhang
If unplugged output is a clone output or a master output without associated clone output, just destroy it as normal. If unplugged output is a master output with associated clone output, one clone output will be upgraded to master output, this new master is put at the end of compositor->output_list

[PATCH 08/12] compositor: Move all clone outputs when move master outptu

2014-03-07 Thread Xiong Zhang
Signed-off-by: Xiong Zhang --- src/compositor.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/compositor.c b/src/compositor.c index 402ac75..c9fe06c 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3294,8 +3294,8 @@ weston_output_init_geometry(struct wes