- Jul 17, 2015
-
-
Derek Foreman authored
Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Bryce Harrington authored
-
Derek Foreman authored
Going from seat to input device requires that we test the device before relying on the pointer. In all of these binding functions we can trust exactly one input device type directly. If we pass that in instead of a seat it's more obvious that we can trust the one pointer we have. When a seat is required, we can access through the device we have and use that to get to other device types for the seat, provided we validate them appropriately. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
It doesn't need the seat pointer, and the caller should already have tested that the keyboard pointer is valid. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
This should be identical to the pointer in shset->seat. A later patch prevents direct access to seat->pointer, using the known valid pointer in the grab will be nicer than using the getter functions that patch introduces. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
It doesn't actually need the seat and we have to validate that the seat has a pointer before making the call, so it's safer just to pass the validated pointer. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
It doesn't actually need the seat and we have to validate that the seat has a pointer before making the call, so it's safer just to pass the validated pointer. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
It doesn't actually need the seat and we have to validate that the seat has a pointer before making the call, so it's safer just to pass the validated pointer. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
It never actually needs the seat, and we always verify the touch pointer before calling it, so let's just pass a touch pointer instead of having an assumption that the seat's touch pointer has been verified. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
Normally we need to check if a seat's [device_type]_count is > 0 before we can use the associated pointer. However, in a binding you're guaranteed that the seat has a device of that type. If we pass in that type instead of the seat, it's obvious we don't have to test it. The bindings can still get the seat pointer via whatever->seat if they need it. This is preparation for a follow up patch that prevents direct access to seat->device_type pointers, and this will save us a few tests at that point. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
Use early return for a slight simplification. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
These functions should never be called outside of the core. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
We shouldn't actually use the keyboard pointer unless we check that a keyboard is present. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Derek Foreman authored
Reviewed-by:
Jonas Ådahl <jadahl@gmail.com> Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
- Jul 16, 2015
-
-
Cut a chunk of code out from drm_output_set_cursor() and form a new function for writing a cursor bo data from a weston_view with a wl_shm buffer. Add more asserts to verify the assumptions in there. v2: Use drm_compositor::cursor_{width,height} instead of hard-coded 64. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
Daniel Stone authored
Instead of testing against a hardcoded 64x64 pixel size to see if a view is suitable for promotion to a cursor plane, use our cursor_width and cursor_height variables. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
Daniel Stone authored
Track the current DPMS level for any given output, and track failure (or otherwise) of the DPMS-setting property call. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
Makes create_output_for_connector() slightly easier to read. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
Refactor the code constructing the connector name into a new function. This makes create_output_for_connector() slightly easier to read. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com>
-
Refactor the code for choosing the initial mode for an output from create_output_for_connector() to drm_output_choose_initial_mode(). This makes create_output_for_connector() slightly easier to read. v2: Document everything. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
If a stopped repaint loop gets restarted due to posting of new damage, and this restart of the repaint loop happens late in the video refresh cycle, ie. already inside the repaint-window and thereby after the composition deadline for the current frame, then defer the actual output repaint to the composition deadline of the next video refresh cycle by setting the repaint timer accordingly. This tries to make sure that: a) Client(s) posting damage timely before the composition deadline (video refresh duration - "repaint-window" duration) of the current refresh cycle will trigger a repaint within the current refresh cycle, thereby avoiding one extra frame of compositor lag due to the needed restart of the repaint loop if the loop was stopped. This allows them to benefit from the earlier "instant repaint restart" commit to keep latency low. b) Late clients which post damage close to the end of a refresh cycle can't race other clients if the repaint loop is restarted. Instead they will get deferred to the next compositor cycle, just as if the repaint loop would have been already running - the semantic of the "repaint-window" parameter is preserved. This is especially important to prevent a very late client from triggering a repaint very close to the vblank, which would cause the compositor to certainly miss the vblank and skip one frame and then cause a delay of another frame for other clients which posted their damage in time for the following frame. Iow. this provides clients with a more predictable compositor timing and makes it easier for them to latch onto the compositors repaint cycle. Signed-off-by:
Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
drm_output_start_repaint_loop() incurred a delay of one refresh cycle by using a no-op page-flip to get an accurate vblank timestamp as reference. This causes unwanted lag whenever Weston exited its repaint loop, e.g., whenever an application wants to repaint with less than full video refresh rate but still minimum lag. Try to use the drmWaitVblank ioctl to get a proper timestamp instantaneously without lag. If that does not work, fall back to the old method of idle page-flip. This optimization will work on any drm/kms driver which supports high precision vblank timestamping. As of Linux 4.0 these would be intel, radeon and nouveau on all their supported gpu's. On kms drivers without instant high precision timestamping support, the kernel is supposed to return a timestamp of zero when calling drmWaitVblank() to query the current vblank count and time iff vblank irqs are currently disabled, because the only way to get a valid timestamp on such kms drivers is to enable vblank interrupts and then wait a bit for the next vblank irq to take a new valid timestamp. The caller is supposed to poll until at next vblank irq it gets a valid non-zero timestamp if it needs a timestamp. This zero-timestamp signalling works up to Linux 3.17, but got broken due to a regression in Linux 3.18 and later. On Linux 3.18+ with kms drivers that don't have high precision timestamping, the kernel erroneously returns a stale timestamp from an earlier vblank, ie. the vblank count and timestamp are mismatched. A patch is under way to fix this, but to deal with broken kernels, we also check non-zero timestamps if they are more than one refresh duration in the past, as this indicates a stale/invalid timestamp, so we need to take the page-flip fallback for restarting the repaint loop. v2: Implement review suggestions by Pekka Paalanen, especially extend the commit message to describe when and why the instant restart won't work due to missing Linux kernel functionality or a Linux kernel regression. Signed-off-by:
Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> v3: Fix timespec_to_nsec() which was computing picoseconds, use the new timespec-util.h helpers. v4: Rebased to master, split long lines. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
A helper to improbe readability. Cc: Daniel Stone <daniels@collabora.com> Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
Copyright is set according to the moved code from compositor.c. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
A new optional parameter "-d msecs" allows to specify a delay before the surface attach/damage/commit to shift the point in time when a surface update is committed. This allows to test how different client timings interact with the compositors repaint timing. Suggested by Pekka Paalanen. Signed-off-by:
Mario Kleiner <mario.kleiner.de@gmail.com> Acked-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> v2: Clarify the intent, doing a delay in window_create_feedback() is a bit surprising. Use nanosleep() instead of clock_nanosleep(), which may not support the chosen presentation clock. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Pekka Paalanen authored
What is libweston and where do we intend to go with it. Signed-off-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com> Acked-by:
Giulio Camuffo <giuliocamuffo@gmail.com> Acked-by:
Daniel Stone <daniels@collabora.com> Acked-by:
Jon A. Cruz <jonc@osg.samsung.com>
-
Transform matrix for transforming a surface to global_matrix is calculated from * ivi_layout_surface_properties * ivi_layout_layer_properties This patch pareares sub-method like following, 1/ calc_surface_to_global_matrix() calc_transformation_matrix() is called twice with ivi_layout_surface/layer_properties respectively. 2/ calc_transformation_matrix() This calcurates matrix from orientation, source rectangle and destination rectangle. 2-1/ To calculate rotation, fit centor of source rectangle to (0,0) temporarily. This is moved back in 2-4. 2-2/ Apply rotation variant 2-3/ Apply scale variant 2-4/ Apply positioning variant, taking account into 2-1 temporary positioning. Signed-off-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Acked-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
ivi-shell: transform refactoring, remove transform part of ivi_layout_surface and ivi_layout_layer once To refactor transform of ivi_layout_surface and ivi_layout_surface to be more readable logical flow. Remove following parts once, * definition of weston_transform in ivi_layout_surface * update_layer_orientation * update_layer_position * update_surface_position * update_surface_orientation * update_scale Signed-off-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
There is no logic update. Signed-off-by:
Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 15, 2015
-
-
Emmanuel Gil Peyrot authored
This reverts commit d3553c72. weston_wm_write_property() takes the ownership of the reply it gets as a parameter, and will eventually free it later in writable_callback. This change introduced a double-free when Xwayland programs triggered a copy to the clipboard, leading to a Weston crash. Reviewed-By:
Derek Foreman <derekf@osg.samsung.com> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com>
-
- Jul 14, 2015
-
-
Christopher Michael authored
Documentation for the prepare_lock_surface event description is incorrect. The summary says "Tell the client..." however the full-text description says "tell the shell..." Signed-off-by:
Chris Michael <cp.michael@samsung.com> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com> Acked-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk> [This time include the actual changes.]
-
Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
- Jul 13, 2015
-
-
Christopher Michael authored
Documentation for the prepare_lock_surface event description is incorrect. The summary says "Tell the client..." however the full-text description says "tell the shell..." Signed-off-by:
Chris Michael <cp.michael@samsung.com> Reviewed-by:
Bryce Harrington <bryce@osg.samsung.com> Acked-by:
Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
Bryce Harrington authored
The wl_list_for_each operation on the free_buffers list should use free_link not link, which is a different list. Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Derek Foreman <derekf@osg.samsung.com>
-
When an output is being destroyed reassign the output of the views that were in it, to be sure not to keep a dangling pointer which could be used later on by calling weston_surface_assign_output() on the view's surface. Also make sure we send wl_surface.leave events to the surfaces that were in that output. Reviewed-by:
Jonas Ådahl <jadahl@gmail.com>
-
- Jul 11, 2015
-
-
Derek Foreman authored
The wl_list_for_each operation on the free_buffers list should use free_link not link, which is a different list. This fixes a crash when entering fullscreen mode when using the pixman renderer on the wayland back-end. Signed-off-by:
Derek Foreman <derekf@osg.samsung.com>
-
Bryce Harrington authored
dump_property allows reply to be NULL. Calling it unconditionally will ensure user knows where the selection failed. Also refactor code a bit. Suggested by Marek Chalupa
-
Bryce Harrington authored
The man pages indicate this routine can return NULL on certain error conditions. Suggested by Marek Chalupa Signed-off-by:
Bryce Harrington <bryce@osg.samsung.com> Reviewed-by:
Marek Chalupa <mchqwerty@gmail.com>
-