GitHub PushEvent at 2014-10-01 14:34:19
Repository: weston
Actor: mchalupa
Payload: {"shas":[["7e62d25257db1927ab71123c0b6ca3533764f178","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","protocol: add presentation extension v5\n\nAdd accurate presentation timing features to Wayland: queueing and\nfeedback.\n\nThis specification is based on the draft written by Frederic Plourde\n<frederic.plourde@collabora.co.uk> and redesigned by Pekka Paalanen.\n\nThe RFC v2 version is from\nhttp://lists.freedesktop.org/archives/wayland-devel/2014-January/012988.html\n\nChanges in v3:\n\n* associate presentation time to current surface contents\n\nThis implements the suggestion from\nhttp://lists.freedesktop.org/archives/wayland-devel/2014-February/013066.html\n\nwhich prevents surface content from jumping backwards in time if a\nclient retroactively queues an update with a target time in the past.\n\n* use 64-bit tv_sec in presentation\n\nThe time_t type used in struct timespec could be almost anything. POSIX\nprobably defines it to be an integer, but not the size. Apparently it is\nusually 'long', which makes it 64-bit on x86_64.\n\nTo be able to fully represent timespec values returned by clock_gettime,\nchange the protocol to use 64 bits for the tv_sec part.\n\n* define an error for invalid tv_nsec\n\nThis allow us to rely on the normalized timestamp form.\n\n* define some interactions with sub-surfaces\n\nSub-surface cached state updates (synchronized mode) are designed\nespecially for resizing. As queued updates are not meant to produce any\nresizing-like effects, they also do not trigger any sub-surface\noperations.\n\n* add sub-headings as xml comments\n\n* queued update cannot map\n\nBecause before mapping, the surface has no main output assigned. An\nimmediate commit is needed anyway, to be able to set all the surface\nstate, which a queued update cannot touch.\n\n* frame callbacks are not queued\n\nIt is not known when queueing frame callbacks would be useful.\n\nChanges in v4:\n\n* remove mentions of the queuing feature\n\nThe specification has been split and the queuing feature will be added\nback in another version of the extension.\n\n* add flags argument to 'presented' event\n\nDescribe the nature of how the update was presented to screen and the\ncharacteristics of the feedback information. No flags have been\ndefined for now.\n\n* add a protocol error code for invalid flags\n\nChanges in v5:\n\n* remove the destroy method for the feedback object\n\nThe protocol object should instead be automatically destroyed after\na 'presented' or 'discarded' event has been triggered.\n\n* some grammatical corrections to the specification\n\n[Louis-Francis Ratté-Boulianne: split the spec in two parts]\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nSigned-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>\nv3 Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["31f7d78cd8a912fbd0096008d2405f0eb3ea4266","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","compositor: add stub implementation of presentation interface\n\nYou can bind to the global interface, and it delivers a fake clock id.\nAll requests on it raise an error.\n\nChanges in v4:\n\n* queuing methods were extractracted for a later series\n\n[Louis-Francis Ratté-Boulianne: split queuing feature]\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nSigned-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>\nReviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["93a6afdf6ed88a1ee2965a3de56a49ec152087ce","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","weston-info: report presentation clock\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nv3 Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["b5eedade367098c61e656c1c5b795760da60b978","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","compositor: set and use the presentation clock everywhere\n\nAdd presentation clock setters that verify the given clock actually\nworks. Offer an automatic choice of a software fallback clock, when a\nbackend has to always use clock_gettime() to approximate the\npresentation time.\n\nThe DRM backend already queried the DRM about the clock id, just let the\nDRM backend set the presentation clock from that.\n\nFor all other backends which do not get a timestamp from the driver,\ncall the software clock setter to choose a suitable clock.\n\nReport the chosen clock via presentation.clock_id event to clients.\n\nIn finish_frame(), upgrade the argument from uint32_t milliseconds to\nstruct timespec which can accurately hold the presentation clock values.\nThis will be needed when weston_output_finish_frame() starts to send out\npresentation_feedback.presented events.\n\nWhile at it, replace gettimeofday() calls with clock_gettime() using the\nchosen presentation clock, so we manufacture presentation timestamps\nfrom the presentation clock when the gfx drivers cannot give us a proper\ntimestamp.\n\nRpi patch is more verbose due to not having the compositor pointer\navailable in rpi_flippipe_update_complete(). Explicitly carry the clock\nid with flippipe so it is available in the thread.\n\nChanges in v4:\n\n* rpi debug build fix\n\nv4 Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nv3 Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["133e4396745ccd33d321e0f6b639a4e10e4e6647","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","compositor: implement presentation_feedback\n\nImplement the presentation.feedback request, and the\npresentation_feedback protocol interface. Feedback information is\ndelivered to clients as the backend reports it, except the refresh\ncounter (MSC) which is always reported as zero.\n\nChanges in v4:\n\n* add 'flags' argument to 'presented' event without implementation\n\nChanges in v5:\n\n* remove the 'destroy' method implementation for feedback objects\n  [Pekka Paalanen: do not leak struct feedback.]\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nv3 Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["641307ca2190fbb1aded28fe0f95c0d9cdab1338","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","compositor-drm: deliver frame seq for feedback\n\nAdd 'msc' field to weston_output to maintain the refresh counter, and\nuse it in presentation_feedback.presented.\n\nMake compositor-drm update the per-output refresh counter with the\nvalues reported by DRM. If the DRM reported value jumps backwards,\nassume it wrapped around once.\n\nOther backends do not update weston_output::msc, and there\npresentation_feedback will always deliver refresh counter as zero.\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nv3 Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>","Pekka Paalanen",true],["de7f5c8fda22757662b4e52cdf5a7b7c7520a7f6","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","tests: presentation test, simple\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>","Pekka Paalanen",true],["ef2b592ad4b6503ed80e287fd0f2c3ae173a5e3e","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","clients: add presentation-shm demo\n\nThis started as a copy of simple-shm.c before it was converted to\nxdg_shell.\n\nThis demo excercises the presentation feedback interface in five\ndifferent modes:\n\n- A continuous repaint loop triggered by frame callbacks, and using\n  immediate commits, just gathering presentation feedback and computing\n  some time intervals for statistics.\n\n- The same as above, except with 1s sleep before actually repainting as\n  a response to frame callback. This tests how well the compositor can\n  do a repaint from idle state (not continuously repainting), assuming\n  nothing else is causing repaints.\n\n- A continuous repaint loop triggered by 'presented' events rather than\n  by frame callbacks. If Weston uses an appropriate scheduling\n  algorithm, this mode achieves the smallest possible frame latency\n  (below one output refresh period).\n\nIn all modes, all frames are pre-rendered at startup, so no rendering\nhappens during the animation.\n\n[Louis-Francis Ratté-Boulianne: split queuing feature]\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>\nSigned-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>","Pekka Paalanen",true],["e972b27f34e78c55d6f1b23a3c54bc14f2945287","0f6ae7001e34c37b02fb2c1c2573ddf8f442136a@collabora.co.uk","shell: don't crash on create_common_surface() failure\n\nNoticed while reading code, that create_common_surface() may return\nNULL, and callers of its direct callers check for NULL, but the\nintermediate function in between would crash.\n\nSigned-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>","Pekka Paalanen",true],["948d6f3293a4ad574888e511e76c5a48af0e588e","a05df156a69ad59faa9af9b666ef78009594c145@gmail.com","add weston-debug module\n\nThis module creates procfs-like directory under\n$XDG_RUNTIME_DIR/weston-debug directory. In order to achieve that,\nit uses FUSE library. In the weston-debug direcotry are\nstored various data about running instance of the compositor.","Marek Chalupa",true]],"size":10,"ref":"refs/heads/weston-debug","head":"948d6f3293a4ad574888e511e76c5a48af0e588e"}