)]}'
{
  "log": [
    {
      "commit": "462bbbe6a8a8e409b408f8d3eeda27d3b6f63244",
      "tree": "c817c6bd7f6a3f7601610a24408cf5732ba768e3",
      "parents": [
        "030e7d40fe18869880fc72ce9ae3cbeca6f49600"
      ],
      "author": {
        "name": "Cindy Liu",
        "email": "hcindyl@google.com",
        "time": "Thu Apr 09 13:08:33 2020 -0700"
      },
      "committer": {
        "name": "Cindy Liu",
        "email": "hcindyl@google.com",
        "time": "Mon Apr 13 12:14:58 2020 -0700"
      },
      "message": "Add debug information\n\nChange-Id: I007066c9760451c161f2ebc944146291a86591f9\n"
    },
    {
      "commit": "030e7d40fe18869880fc72ce9ae3cbeca6f49600",
      "tree": "af42cc391ec691cccd07d4608eb8d819dc57ab76",
      "parents": [
        "30e283de702421a6c92c12dd3c7adec2bf252c4c"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 24 12:39:33 2018 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 24 12:39:33 2018 -0500"
      },
      "message": "configure.ac: bump to version 5.0.0 for the official release\n"
    },
    {
      "commit": "30e283de702421a6c92c12dd3c7adec2bf252c4c",
      "tree": "a75be87d0c90776c38c9c0d71cd71985932739d0",
      "parents": [
        "453345102818448c3078c0ce8f02e580c744a2a6"
      ],
      "author": {
        "name": "Stefan Agner",
        "email": "stefan@agner.ch",
        "time": "Mon Aug 20 17:11:38 2018 +0200"
      },
      "committer": {
        "name": "Stefan Agner",
        "email": "stefan@agner.ch",
        "time": "Mon Aug 20 17:11:38 2018 +0200"
      },
      "message": "compositor-drm: add DPI connector type\n\nLinux v4.7 introduced a new connector type for display parallel\ninterface (DPI). Add DPI to the list of connectors in the DRM\nbackend of Weston as well. This avoid DPI connectors showing up\nas UNNAMED.\n\nSigned-off-by: Stefan Agner \u003cstefan@agner.ch\u003e\n"
    },
    {
      "commit": "453345102818448c3078c0ce8f02e580c744a2a6",
      "tree": "cfb6c8256997d5e30a98f24f2dc537012e7cf9b5",
      "parents": [
        "76829fc4eaea329d2a525c3978271e13bd76c078"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 17 11:20:27 2018 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 17 11:20:27 2018 -0500"
      },
      "message": "configure.ac: bump to version 4.0.94 for the RC2 release\n"
    },
    {
      "commit": "76829fc4eaea329d2a525c3978271e13bd76c078",
      "tree": "fe9e08bf3b47505ca21010f2b54d01159963c0e5",
      "parents": [
        "f8f7fd69df5bf318b2da9ec6ce964ac676eb2e29"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Wed Jun 28 12:17:46 2017 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 17 09:25:24 2018 -0500"
      },
      "message": "input: Send unique keymap file descriptors to clients\n\nClient may map any file descriptor opened for writing with PROT_WRITE\nthemselves.  On linux, even a read-only file descriptor to an unlinked\nfile can be re-opened with write permission through /proc/self/fd.\n\nThe only way to prevent this is to create a memfd which\nis subsequently write-sealed.  Unfortunately this prevents clients\nfrom mapping with MAP_SHARED, which is already in widespread usage.\n\nTo isolate and protect the keymap, whilst allowing MAP_SHARED clients\nto continue to work, use a unique file descriptor for each\nwl_keyboard resource.\n\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "f8f7fd69df5bf318b2da9ec6ce964ac676eb2e29",
      "tree": "2aa05b72312280144326cc819ecf6dd9a0985e06",
      "parents": [
        "dc1418ae8ebdb3916625f501a4d8ca4a9125b1b1"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Wed Jun 28 11:41:43 2017 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 17 09:25:21 2018 -0500"
      },
      "message": "input: add weston_keyboard_send_keymap helper function\n\nWe\u0027ve always had \"send_keymap\" internally, but some places failed to use\nit.  Since we also use this in the text backend, export it.\n\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "dc1418ae8ebdb3916625f501a4d8ca4a9125b1b1",
      "tree": "0cff1c3cfa8cd8d3af3edc2d007bca97764986c5",
      "parents": [
        "46cbd0a7f5271cd0832e6d8687829844f40f89cd"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 10 13:03:57 2018 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Aug 10 13:03:57 2018 -0500"
      },
      "message": "configure.ac: bump to version 4.0.93 for the RC1 release\n"
    },
    {
      "commit": "46cbd0a7f5271cd0832e6d8687829844f40f89cd",
      "tree": "7a71a49d9401128fd95f1a5a845431189b9d2b67",
      "parents": [
        "b8b2c72709a16382fe7a75a3476236bd31c0e54c"
      ],
      "author": {
        "name": "Harsha M M",
        "email": "harsha.manjulamallikarjun@in.bosch.com",
        "time": "Tue Aug 07 19:05:03 2018 +0530"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Aug 10 13:23:14 2018 +0300"
      },
      "message": "ivi-shell: Remove the compositor destory listener from list during de-init\n\nDuring de-init ensure removal of compositor destroy notification\nfrom list. Otherwise a dongling pointer is left behind which will\naffect other plugins.\n\nSigned-off-by: Harsha M M \u003charsha.manjulamallikarjun@in.bosch.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "b8b2c72709a16382fe7a75a3476236bd31c0e54c",
      "tree": "abf67ed9c4376c0ce417065284b5d66d9cb45f3a",
      "parents": [
        "103dc42b5ec134362db9b6dfb32edf10344e6769"
      ],
      "author": {
        "name": "Harsha M M",
        "email": "harsha.manjulamallikarjun@in.bosch.com",
        "time": "Tue Aug 07 19:05:02 2018 +0530"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Aug 08 12:22:24 2018 +0300"
      },
      "message": "libweston: Remove signals from the list during de-init\n\nDuring de-init ensure removal of added signals from list. Otherwise\na dongling pointer is left behind which will affect other plugins.\n\nSigned-off-by: Harsha M M \u003charsha.manjulamallikarjun@in.bosch.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "103dc42b5ec134362db9b6dfb32edf10344e6769",
      "tree": "d33fc552a89b843f430449cb63b013c50868b8ff",
      "parents": [
        "8798fa7fdfcb219d85e5f76b24f1de2dc75f688f"
      ],
      "author": {
        "name": "Will Thompson",
        "email": "will@willthompson.co.uk",
        "time": "Tue Aug 07 14:16:46 2018 +0000"
      },
      "committer": {
        "name": "Will Thompson",
        "email": "will@willthompson.co.uk",
        "time": "Tue Aug 07 15:19:01 2018 +0100"
      },
      "message": "doc: fix typos in CONTRIBUTING.md\n\n* Cover letters are no more; presumably the changes since the previous\n  revision should be summarised in the MR\n* Code should be indented with tabs, not implemented with tabs\n\nSigned-off-by: Will Thompson \u003cwill@willthompson.co.uk\u003e\n"
    },
    {
      "commit": "8798fa7fdfcb219d85e5f76b24f1de2dc75f688f",
      "tree": "71065c0d1d55b0ffb5134b279030ac7780a6bc07",
      "parents": [
        "f987cb98ef3bf7758b20b8ca3d17f6fc318d0b21"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sat Jul 14 14:04:07 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Aug 07 14:38:38 2018 +0100"
      },
      "message": "doc: Use GitLab MRs for patches, not the list\n\nThough Wayland and the protocols still use mail-based patch review,\nWeston can now move to GitLab MRs with review through that system.\n\nAdd some documentation on how to submit patches through GitLab,\nspecifically targeted at people who may be familiar with GitLab review,\nbut not familiar with our rebasing microcommit workflow.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Quentin Glidic \u003csardemff7+git@sardemff7.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "f987cb98ef3bf7758b20b8ca3d17f6fc318d0b21",
      "tree": "01b9ba130441bb45dd7c9ddd3f5f06168a8235fb",
      "parents": [
        "3a6fa200b7dcfa830daa7412d1be06b7e5563f3d"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sat Jul 14 13:33:30 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Aug 07 14:38:24 2018 +0100"
      },
      "message": "README: Move to Markdown, rewrite introduction\n\nMove the README file to Markdown, and update it to attempt to explain\nthe current status and use of Weston.\n\nThe first sections are user-facing, so they can quickly understand what\nWeston is, what it does, what it doesn\u0027t do, and how to go about using\nit. The following sections on libweston and for distribution packagers\nare left intact, but should probably be moved to separate documents.\n\nThis includes a screenshot of Weston running weston-terminal, Chrome and\nsimple-egl, which was taken by myself and subject to the same licensing\nterms as the rest of the tree.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Quentin Glidic \u003csardemff7+git@sardemff7.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "3a6fa200b7dcfa830daa7412d1be06b7e5563f3d",
      "tree": "0a4fdfb8b34c0d2219721869b7fe1cb07edaa105",
      "parents": [
        "2e3915f1bfd1cbefa7a417242600c3019751793e"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sat Jul 14 13:09:58 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Aug 06 11:55:43 2018 +0100"
      },
      "message": "doc: Update CONTRIBUTING for Weston\n\nChange some Wayland-specific references to instead refer to Weston.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Quentin Glidic \u003csardemff7+git@sardemff7.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "2e3915f1bfd1cbefa7a417242600c3019751793e",
      "tree": "c7f8dce6d0e04327c19d720e840bb877bab968db",
      "parents": [
        "0335e447314f7f2beadbe87e6914ae0f9e9bcabc"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Sat Jul 14 11:55:24 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Aug 06 11:55:40 2018 +0100"
      },
      "message": "Add CONTRIBUTING.md document\n\nTaken from Pekka\u0027s wayland/wayland@630c25f4c160 and follow-ups, use\nWayland\u0027s CONTRIBUTING document as a basis for Weston.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Quentin Glidic \u003csardemff7+git@sardemff7.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "0335e447314f7f2beadbe87e6914ae0f9e9bcabc",
      "tree": "d022feb5f759b3bbd7d0d453d5a74e99cded1bd0",
      "parents": [
        "48687982b55771b19b958e6a8d62794c61b2d797"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 27 11:45:59 2018 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 27 11:45:59 2018 -0500"
      },
      "message": "configure.ac: bump to version 4.0.92 for the beta release\n"
    },
    {
      "commit": "48687982b55771b19b958e6a8d62794c61b2d797",
      "tree": "08c566f45b04e12707c0729c32a5e41daf91ef89",
      "parents": [
        "117892259014d02e3ed41d241c6068d026f4c440"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Jul 12 12:16:47 2018 +0100"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 27 11:21:10 2018 -0500"
      },
      "message": "compositor-drm: Remove addfb warning for user buffers\n\nTHe KMS AddFB call can fail for any reason at all: format/modifier not\nsuitable, stride not aligned, allocation not contiguous, etc. If this\nhappens with Weston\u0027s own buffers, the result is bad - no composition\noutput.\n\nFailing AddFB from user-supplied buffers though, is not an error. The\nuser can\u0027t necessarily allocate suitable buffers, nor does it have to.\nDon\u0027t spam the log with warnings when we fail on user buffers.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReported-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Derek Foreman \u003cderek.foreman.samsung@gmail.com\u003e\n"
    },
    {
      "commit": "117892259014d02e3ed41d241c6068d026f4c440",
      "tree": "ce316fa5bc2d4564dc1f7d61df0360c7e9fefa03",
      "parents": [
        "8c9556c57d0f907e461e2c4ccf01155f0a7b1244"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 20 19:55:37 2018 +0100"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 27 11:20:47 2018 -0500"
      },
      "message": "compositor-drm: Don\u0027t test render-only atomic configuration\n\nIn the RENDERER_ONLY state proposal mode, we don\u0027t actually have a\nviable configuration to test, because we won\u0027t get a renderer buffer\nuntil after assign_planes - where we\u0027re called from - has completed.\n\nThis can result in us trying to test a configuration with the CRTC and\nconnectors active, but no planes active, which the kernel can\nlegitimately fail.\n\nIf we\u0027re working in renderer-only mode, just return the state we have\nwithout trying to test it first, and let the kernel fill it in later.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nAcked-by: Derek Foreman \u003cderek.foreman.samsung@gmail.com\u003e\n"
    },
    {
      "commit": "8c9556c57d0f907e461e2c4ccf01155f0a7b1244",
      "tree": "677106e5de9d56bc60630988830237b9995a9daf",
      "parents": [
        "3ea5437dbd07d9a94aebbb651d8f8eeacc8765bd"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 20 11:06:19 2018 +0100"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 27 11:20:25 2018 -0500"
      },
      "message": "compositor-drm: Remove unnecessary libdrm defines\n\nThe backend begins with a series of #defines of libdrm tokens, in case\nthe libdrm we build against is too old.\n\nCommit efdebbc4e82b (\"configure.ac: bump libdrm requirement to 2.4.68\")\ndid what it said on the box; since we now depend on a relatively modern\nlibdrm, we can get rid of most of our compatibility defines.\n\nDRM_CAP_TIMESTAMP_MONOTONIC was added in libdrm 2.4.47 (f8f1f6e37ae2).\nDRM_CLIENT_CAP_UNIVERSAL_PLANES was added in libdrm 2.4.55\n(8fc62ca8ac01).\nDRM_CAP_CURSOR_WIDTH and HEIGHT were added in libdrm 2.4.68\n(cc9a53f076d4).\n\nRemove these four fallback definitions.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Derek Foreman \u003cderek.foreman.samsung@gmail.com\u003e\n"
    },
    {
      "commit": "3ea5437dbd07d9a94aebbb651d8f8eeacc8765bd",
      "tree": "ed39469ac15e4576673cd0adc15fd3b8365b406d",
      "parents": [
        "67546bed04a464d18508265976f2a4b673db565c"
      ],
      "author": {
        "name": "Greg V",
        "email": "greg@unrelenting.technology",
        "time": "Sun Jul 22 11:36:21 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sun Jul 22 11:37:58 2018 +0100"
      },
      "message": "xwayland/selection: do not remove NULL property_source\n\nHappened mostly with neovim\u0027s xclip usage.\n\n[daniels: Added more cases.]\n\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "67546bed04a464d18508265976f2a4b673db565c",
      "tree": "89d6eb0473160af0ccd89b714a19e4a21372bc55",
      "parents": [
        "cf4113c629751adcbb9904087932e12b5621219b"
      ],
      "author": {
        "name": "Emre Ucan",
        "email": "eucan@de.adit-jv.com",
        "time": "Thu May 24 17:08:47 2018 +0200"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sun Jul 22 11:17:40 2018 +0100"
      },
      "message": "ivi-shell: use install paths in example config\n\nThe example weston.ini file uses source and build\ndirectory paths. Therefore, it is only useful when\nused on the same system that is used to build Weston.\n\nWe can use install paths instead of build/source paths\nto fix this problem.\n\nv2 changes:\n- use $(westondatadir) instead of $(datadir)\n\nReported-by: Michael Tretter \u003cm.tretter@pengutronix.de\u003e\nSigned-off-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nReviewed-by: Michael Tretter \u003cm.tretter@pengutronix.de\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "cf4113c629751adcbb9904087932e12b5621219b",
      "tree": "4356a6050ff55c92810fda77c14204963d55b545",
      "parents": [
        "280b730144cafc58dc78ac60b3a3dbe61b6b6b50"
      ],
      "author": {
        "name": "Emre Ucan",
        "email": "eucan@de.adit-jv.com",
        "time": "Tue Jun 05 10:23:00 2018 +0200"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sun Jul 22 11:06:38 2018 +0100"
      },
      "message": "ivi-shell: listen compositor wake_signal\n\nIf compositor wakes up from sleep state, we have\nto trigger repaint for all outputs.\n\nSigned-off-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "280b730144cafc58dc78ac60b3a3dbe61b6b6b50",
      "tree": "97b5ee83c4678a6ff33e4ffa9c4dcb4df479b02f",
      "parents": [
        "cce820dcafb4f04e6c53904c3a643ef534b31915"
      ],
      "author": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 13 11:32:29 2018 -0500"
      },
      "committer": {
        "name": "Derek Foreman",
        "email": "derekf@osg.samsung.com",
        "time": "Fri Jul 13 11:32:29 2018 -0500"
      },
      "message": "configure.ac: bump to version 4.0.91 for the alpha release\n"
    },
    {
      "commit": "cce820dcafb4f04e6c53904c3a643ef534b31915",
      "tree": "4e81a14b5de34c0fd61bfe339302396abff4e8a3",
      "parents": [
        "1166f8e9a13f151a1dcab3cae081013324f0538e"
      ],
      "author": {
        "name": "Emilio Pozuelo Monfort",
        "email": "pochu27@gmail.com",
        "time": "Thu Jul 12 13:46:24 2018 +0200"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 13 16:13:32 2018 +0100"
      },
      "message": "simple-dmabuf-drm: fix build with --disable-egl\n\nJust rely on getting the supported formats through the dmabuf\nextension.\n\nSigned-off-by: Emilio Pozuelo Monfort \u003cemilio.pozuelo@collabora.co.uk\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "1166f8e9a13f151a1dcab3cae081013324f0538e",
      "tree": "46a3af71082f6e7c0b8e0825182519049951b044",
      "parents": [
        "678aabe829371d48af00e718f4a41185a3d50f1f"
      ],
      "author": {
        "name": "Emilio Pozuelo Monfort",
        "email": "pochu27@gmail.com",
        "time": "Thu Jul 12 13:46:23 2018 +0200"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 13 16:13:23 2018 +0100"
      },
      "message": "simple-dmabuf-drm: require zwp_linux_dmabuf_v1 v3\n\nWe effectively require it as we don\u0027t react to dmabuf_format,\nonly to dmabuf_modifiers, so there\u0027s a chance we may not get\nthe supported formats information at all.\n\nSigned-off-by: Emilio Pozuelo Monfort \u003cemilio.pozuelo@collabora.co.uk\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "678aabe829371d48af00e718f4a41185a3d50f1f",
      "tree": "3cb4c55f222b0d5e2b08d6669233057de488b521",
      "parents": [
        "9fe4bf88630090af8f4239418681ffb9a883e0e8"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Dec 09 16:00:12 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 14:17:52 2018 +0100"
      },
      "message": "compositor-drm: Enable planes for atomic\n\nNow that we can sensibly test proposed plane configurations with atomic,\nsprites are not broken.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "9fe4bf88630090af8f4239418681ffb9a883e0e8",
      "tree": "b17a67f66f9583a8a6c1cf5416d85c9cc22e605a",
      "parents": [
        "b41abf9c8422b9a6f4236cfc42f8367b297acf3b"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Dec 09 18:23:22 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 14:17:52 2018 +0100"
      },
      "message": "compositor-drm: Relax plane restrictions for atomic\n\nSince we now incrementally test atomic state as we build it, we can\nloosen restrictions on what we can do with planes, and let the kernel\ntell us whether or not it\u0027s OK.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "b41abf9c8422b9a6f4236cfc42f8367b297acf3b",
      "tree": "878cf33e27c1a712294b2ab04facc2075a380067",
      "parents": [
        "a284d271f134eb805f799a9861c662d895bf0b11"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 13:03:31 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 14:17:52 2018 +0100"
      },
      "message": "compositor-drm: Allow scanout plane to be occluded by overlay\n\na0f8276fe814 (\"compositor-drm: Disallow overlapping overlay planes\") was\na little too pessimistic in rejecting occluded views. Whilst it\ncorrectly prevented overlay planes from occluding each other, it also\nprevented overlay planes from occluding the scanout plane.\n\nThis is undesirable: the primary/scanout plane is specified to stack\nstrictly below all overlay planes, so there is no need to reject a plane\nfrom consideration for scanout due to being occluded by an overlay\nplane.\n\nShift the check downwards so it only applies to overlay rather than\nscanout planes.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "a284d271f134eb805f799a9861c662d895bf0b11",
      "tree": "edbe39e9083643a582aee2aa354729d891d77a7a",
      "parents": [
        "d12e51646aae32a689af5785d0f81f58c8fa901c"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 18:40:12 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 14:17:52 2018 +0100"
      },
      "message": "compositor-drm: Incrementally test plane states in mixed mode\n\nIn the plane-only mode, we try to place every view on a hardware plane,\nand fail if we can\u0027t do this. This requires a full walk of the scene\ngraph to come up with a complete configuration in order to be able to\ntest.\n\nIn mixed mode, we know at least some visible views will fail to be\npromoted to planes and must be composited via the renderer. In order to\nstill use some planes where possible, we use atomic modesetting\u0027s\ntest-only mode to incrementally test configurations.\n\nWe know that the renderer output will always be visible, and because it\nis the renderer, that it will be occupying the scanout plane underneath\neverything else. The actual renderer buffer doesn\u0027t materialise until\nafter assign_planes, because it cannot know what to render until then.\n\nHowever, in order to test whether a configuration is valid, we need the\nrenderer buffer in the scanout plane. For testing, we fake this by\ntemporarily stealing the old buffer - if it seems sufficiently\ncompatible - and placing it in the state we construct. This is used to\ntest whether or not a renderer buffer will work with the addition of\noverlay planes.\n\nDoing this incremental testing will allow us to enable plane usage for\natomic by default, since we know ahead of time that our chosen plane\nconfiguration will work.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "d12e51646aae32a689af5785d0f81f58c8fa901c",
      "tree": "9c36139238ce31f299f9c2df0e868b87f597db4c",
      "parents": [
        "ca6fbe3c93ff05bf006e19ac8e60f896a169b5a1"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 18:19:37 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 13:08:57 2018 +0100"
      },
      "message": "compositor-drm: Add planes-only mode to state proposal\n\nAdd a new mode, which attempts to construct a scene exclusively using\nplanes. This is a building block for incrementally testing and\nconstructing state: in the plane-only mode, we test the state exactly\nonce, when we have constructed a full set of planes and want to know if\nit works or not.\n\nWhen using the renderer, we need to incrementally test views one by one\nto see if they will work on planes, falling back to the renderer if not.\nThis test is different, since the scanout plane will be occupied by the\nrenderer\u0027s buffer. Testing using the renderer or client buffers may have\ncompletely different characteristics, so we need two passes: first,\nconstructing a state with only planes and testing if that succeeds,\nfalling back later to a mixed renderer/plane mode which tests\nincrementally.\n\nThis implements the first mode, and preferentially attempts to use it.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "ca6fbe3c93ff05bf006e19ac8e60f896a169b5a1",
      "tree": "d5734681e5cd1bcc061bd941084dd47d27991c4e",
      "parents": [
        "bb6c19f7bb18cc400e11274184322ffe499e20ef"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 18:08:12 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:50:23 2018 +0100"
      },
      "message": "compositor-drm: Never lift solid surfaces to planes\n\nThis will never work, so don\u0027t even try to do it.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "bb6c19f7bb18cc400e11274184322ffe499e20ef",
      "tree": "ae6155193624cb3a44f58fa77d2d507afb43e72e",
      "parents": [
        "f829062ef40cd12c457990c1d5e60b0c4b486d48"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Dec 08 17:27:17 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:49:53 2018 +0100"
      },
      "message": "compositor-drm: Add test-only mode to state application\n\nThe atomic API can allow us to test state before we apply it, to see if\nit will be valid. Use this when we construct a plane configuration, to\nsee if it has a chance of ever working. If not, we can fail\nassign_planes early.\n\nThis will be used in later patches to incrementally build state by\nproposing and testing potential configurations one at a time.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "f829062ef40cd12c457990c1d5e60b0c4b486d48",
      "tree": "a215ce7452b57b528be8aefe022d84f24cccdf7d",
      "parents": [
        "f7a2f835ae83409dec1e0487424cec7718385fb6"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Dec 09 17:32:10 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:45:07 2018 +0100"
      },
      "message": "compositor-drm: Return plane state from plane preparation\n\nReturn a pointer to the plane state, rather than returning its\nunderlying weston_plane. This eliminates any ambiguity between placing\nclient buffers on planes, and placing them through the renderer.\n\ndrm_output_propose_state is only concerned with preparing, testing, and\nreturning DRM state objects. Assigning views to weston_planes only\nhappens later, inside drm_assign_planes. This makes that split more\nclear.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "f7a2f835ae83409dec1e0487424cec7718385fb6",
      "tree": "766bdc2188b5fa0727a5c2cdb2c92bb539e4a31c",
      "parents": [
        "44abfaaffde1c575e044dfd8df2db02fd8dde1b7"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Dec 08 17:19:09 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:24:55 2018 +0100"
      },
      "message": "compositor-drm: Add modes to drm_output_propose_state\n\nAdd support for multiple modes to drm_output_propose_state. Currently we\nintend to operate in three modes: planes-only (no renderer buffer,\nclient buffers in planes only), mixed-mode (promote client buffers to\nplanes where possible, falling back to the renderer where not), and\nrenderer-only (no plane usage at all).\n\nWe want to use the first (planes-only) mode where possible: it can avoid\nus having to allocate buffers for the renderer, and it also gives us the\nbest chance of the optimal configuration, with no composition. In this\nmode, we walk the scene looking at all views, trying to put them in\nplanes, and failing as soon as we find a view we cannot place in a\nplane.\n\nIn the second mode, rather than failing, we assign those views which\ncannot be on a plane to the renderer, and allow the renderer to\ncomposite them.\n\nIn the third mode, planes are not usable, so everything but the cursor\ngoes to the renderer. We will use this when we cannot use the planes-only\nmode (because some views cannot be placed in planes), but also cannot\nuse the \u0027mixed\u0027 mode because we have no renderer buffer yet. Since we\nwalk the scene graph from top to bottom, using atomic modesetting we\nwill determine if planes can be promoted in mixed mode by placing a\nrenderer buffer at the bottom of the scene, placing a cursor buffer if\napplicable, then testing if we can add overlay planes to this mode.\n\nWithout a buffer from the renderer, we cannot do these tests, so we push\neverything through the renderer and then switch to mixed mode on the\nnext repaint.\n\nThis patch implements the mixed and renderer-only modes (previously\ndifferentiated only by the sprites_are_broken flag), with the\nplanes-only mode being left for a later patch.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "44abfaaffde1c575e044dfd8df2db02fd8dde1b7",
      "tree": "ade076d690b7985208fdc7e453825db73ff5d9ac",
      "parents": [
        "a0f8276fe814957ea8ae46bd4f5fda3a9e1b8e69"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 14:31:06 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:24:55 2018 +0100"
      },
      "message": "compositor-drm: Use sprites_are_broken for scanout plane\n\nWhen the sprites_are_broken variable is set, do not attempt to promote\nclient surfaces to the scanout plane.\n\nWe are currently assuming that every client buffer will be compatible\nwith the scanout plane, but that is not the case, particularly with more\nexotic tiled/compressed buffers. Once we promote the client buffer to\nscanout, there is no going back: if the repaint fails, we do not mark\nthis as failed and go back to repaint through composition.\n\nThis permanently removes the ability for scanout bypass when using the\nnon-atomic path. Future patches lift the restriction when using atomic\nmodesetting, as we can actually test and ensure that the view is\ncompatible with scanout.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReported-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "a0f8276fe814957ea8ae46bd4f5fda3a9e1b8e69",
      "tree": "22a3f0e0a20878bd9c7ee35b616655632824c646",
      "parents": [
        "ddaf95c5a1f0caa88a7c9348ef7af9fd07d1e8d6"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 11:44:25 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Jul 11 12:24:55 2018 +0100"
      },
      "message": "compositor-drm: Disallow overlapping overlay planes\n\nThe scanout plane strictly stacks under all overlay planes, and the\ncursor plane above. However, the stacking of overlay planes with respect\nto each other is undefined.\n\nWe can control the stacking order of overlay planes with the zpos\nproperty, though this significantly complicates plane assignment. In the\nmeantime, simply disallow assigning a view to an overlay, when it\noverlaps another view which is already on an overlay. This ensures\nstacking order is irrelevant, since the planes never intersect each\nother.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "ddaf95c5a1f0caa88a7c9348ef7af9fd07d1e8d6",
      "tree": "1c339c5a1b393b9c42c0208ff4d52b96bad07074",
      "parents": [
        "8108239c39e0e79f08827780d9f848dfaf4e50cf"
      ],
      "author": {
        "name": "Tomohito Esaki",
        "email": "etom@igel.co.jp",
        "time": "Tue Jul 10 11:47:15 2018 +0900"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Jul 10 15:40:52 2018 +0300"
      },
      "message": "libweston: Fix clear timing of output repainted flag\n\nSince the repaint status of the flushed output may be reset if a output\nrepaint is failed, it is necessary to clear the repainted flag\nimmediately after output repaint flush/cancel.\n\nSigned-off-by: Tomohito Esaki \u003cetom@igel.co.jp\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "8108239c39e0e79f08827780d9f848dfaf4e50cf",
      "tree": "db8d0457dbc047eef127f9362030663e729f8691",
      "parents": [
        "231ae2f33bae357e9d7461a15df07618c3461720"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Dec 09 18:03:31 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 11:12:27 2018 +0100"
      },
      "message": "compositor-drm: Ignore occluded views\n\nWhen trying to assign planes, keep track of the areas which are\nalready occluded, and ignore views which are completely occluded. This\nallows us to build a state using planes only, when there are occluded\nviews which cannot go into a plane behind views which can.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "231ae2f33bae357e9d7461a15df07618c3461720",
      "tree": "6d16020ab22b6407f979fce848c032b1d9acf011",
      "parents": [
        "ee1aea7cd1b554ef4bd39e492186519371d020d8"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Nov 29 21:03:44 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 11:12:27 2018 +0100"
      },
      "message": "compositor-drm: Ignore views on other outputs\n\nWhen we come to assign_planes, try very hard to ignore views which are\nonly visible on other outputs, rather than forcibly moving them to the\nprimary plane, which causes damage all round and unnecessary repaints.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "ee1aea7cd1b554ef4bd39e492186519371d020d8",
      "tree": "3dd3b6e72ad3afabac2b5c2b6164553ce6108811",
      "parents": [
        "244244d11b5a9168656dd613029a0feb4879aff7"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Dec 18 13:41:09 2017 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jul 10 11:12:27 2018 +0100"
      },
      "message": "compositor-drm: Split drm_assign_planes in two\n\nMove drm_assign_planes into two functions: one which proposes a plane\nconfiguration, and another which applies that state to the Weston\ninternal structures. This will be used to try multiple configurations\nand see which is supported.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "244244d11b5a9168656dd613029a0feb4879aff7",
      "tree": "e3d33356e7e55185b1af5a8ff298c4ea64fe665a",
      "parents": [
        "f4456221db312f326dc0f16a306686d8c2f3c999"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Nov 18 18:02:08 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:39:32 2018 +0100"
      },
      "message": "compositor-drm: Use GBM modifier API\n\nNow that we collect information about which modifiers are supported for\nKMS display, and are able to create KMS framebuffers with modifiers,\nbegin using the modifier-aware GBM API.\n\nClient buffers from dmabuf already store multi-plane and modifier\ninformation into drm_fb. Extend this to drm_fb_get_from_bo(), used for\nwl_buffer, cursor, and gbm_surface buffers. wl_buffer buffers should by\nconvention not require modifiers. Cursor buffers must not require\nmodifiers, as they should be linear. Prior to this patch, GBM buffers\nmust have been single-planar, and able to used without explicitly naming\nmodifiers.\n\nUsing gbm_surface_create_with_modifiers allows us to pass the list of\nmodifiers acceptable to KMS for scanout to GBM, so it can allocate\nmulti-planar buffers or those which are otherwise only addressible with\nmodifiers. On platforms supporting and preferring modifiers for scanout,\nthis means that the gbm_bos we get from our scanout surface need to use\nthe extended API to query multiple planes, offsets, modifiers, etc.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "f4456221db312f326dc0f16a306686d8c2f3c999",
      "tree": "16b57822c6bf262be893998a57b0a37d154e0447",
      "parents": [
        "f522e2261131eb9ed9f83157420f114540cfcbf1"
      ],
      "author": {
        "name": "Sergi Granell",
        "email": "xerpi.g.12@gmail.com",
        "time": "Thu Jan 12 17:17:32 2017 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:39:32 2018 +0100"
      },
      "message": "compositor-drm: Support plane IN_FORMATS\n\nThe per-plane IN_FORMATS KMS property describes the format/modifier\ncombinations supported for display on this plane. Read and parse this\nformat, storing the data in each plane, so we can know which\ncombinations might work, and which combinations definitely will not\nwork.\n\nSimilarly to f11ec02cad40 (\"compositor-drm: Extract overlay FB import to\nhelper\"), we now use this when considering promoting a view to overlay\nplanes. If the framebuffer\u0027s modifier is definitely not supported by the\nplane, we do not attempt to use that plane for that view.\n\nThis will also be used in a follow-patch, passing the list of modifiers\nto GBM surface allocation to allow it to allocate more optimal buffers.\n\nSigned-off-by: Sergi Granell \u003cxerpi.g.12@gmail.com\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "f522e2261131eb9ed9f83157420f114540cfcbf1",
      "tree": "2e7f01557629cf40357ca0845d1543fe493f51fa",
      "parents": [
        "11f91bbd36e7ebdc01fb6c2b29bcab53aec7209e"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Nov 18 12:31:26 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:39:32 2018 +0100"
      },
      "message": "compositor-drm: Add modifiers to GBM dmabuf import\n\nAdd support for the GBM_BO_IMPORT_FD_MODIFIER path, which allows us to\nimport multi-plane dmabufs, as well as format modifiers.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nFixes: https://gitlab.freedesktop.org/wayland/weston/issues/113\n"
    },
    {
      "commit": "11f91bbd36e7ebdc01fb6c2b29bcab53aec7209e",
      "tree": "3152b5d85ead447d4dc8e4dd77af58ebdf695b2a",
      "parents": [
        "bdebc3170e5816d6e2d34b36d4643c53634a0e41"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 13:05:59 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:39:20 2018 +0100"
      },
      "message": "helpers: Move static_assert definition to shared\n\nCollect the fallback definitions of static_assert() from desktop-shell\nand the test shell, and move them to helpers.h. This allows code\nthroughout the tree to use static_assert() for build-time assertions,\nwhere it is supported by the compiler.\n\nAs GCC goes out of its way to only add static_assert() when C11 has been\nexplicitly requested - which we don\u0027t do - make sure to use the more\nwidely available _Static_assert() if that is provided.\n\nThis will be used in future patches to ensure two array lengths don\u0027t go\nout of sync.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "bdebc3170e5816d6e2d34b36d4643c53634a0e41",
      "tree": "122700b0cc3c5eb6d8078ae2b3073a8ee07f657f",
      "parents": [
        "dc082cb0718d2d07d259ffc02209cbb28714fbdc"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 13:51:51 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:20:11 2018 +0100"
      },
      "message": "compositor-drm: Don\u0027t set fb-\u003esize for non-dumb buffers\n\nWhen creating a drm_fb from client (wl_buffer/dmabuf), gbm_surface, or\nclient buffers, set fb-\u003esize to 0. The size member is only used for dumb\nbuffers, where we mmap the whole buffer, and need the size recorded to\nlater pass to munmap.\n\nDetermining the full size of multi-planar buffers is difficult, as\nauxiliary planes are not guaranteed to have a (height*stride)\nallocation, e.g. if they are subsampled or if they do not contain pixel\ndata at all but, e.g., compression information. Single-plane tiled\nbuffers also often pad the buffer allocation to a multiple of tile\nheight, making our existing calculation incorrect.\n\nThough it does no harm to record incorrect information, it also does\nno good as we never use it; remove it in order to avoid any confusion.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "dc082cb0718d2d07d259ffc02209cbb28714fbdc",
      "tree": "457a11b1f2301b5116a726b2b1a95043d5bf2048",
      "parents": [
        "7625577a4f8dd975a1ba3270d3b5eca1fdef7256"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 13:49:04 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Jul 09 15:20:11 2018 +0100"
      },
      "message": "compositor-drm: Avoid cast by using unsigned loop index\n\nARRAY_LENGTH returns a size_t; rather than casting its result to\nint so we can compare to our signed index variable, just declare the\nindex as a compatible type in the first place.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "7625577a4f8dd975a1ba3270d3b5eca1fdef7256",
      "tree": "ab9413f6246dd9f367c206cd35dfb4a449e86685",
      "parents": [
        "79e95cb9951c167d5a0a13a2e101cae752256a63"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 11:36:49 2018 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 09 15:30:03 2018 +0300"
      },
      "message": "compositor-drm: Define DPMS property as an enum\n\nThe DPMS connector property is an enum property in KMS, which made our\nproperty handling complain at startup as we weren\u0027t defining its enums.\nFix our definition so we parse the enum values.\n\nThe only user of the property is the legacy path, which can continue\nusing fixed values as those values are part of the KMS ABI. The atomic\npath does not need any changes, since atomic uses routing and CRTC\nactive to determine the connector\u0027s power state, rather than a property.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nFixes: https://gitlab.freedesktop.org/wayland/weston/issues/125\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "79e95cb9951c167d5a0a13a2e101cae752256a63",
      "tree": "6a57c9de83fdffce579ccfc3e3d7f26edc6bd35a",
      "parents": [
        "65a4dbcc14810c4c96437966dbcb2d9641b332a2"
      ],
      "author": {
        "name": "Ankit Nautiyal",
        "email": "ankit.k.nautiyal@intel.com",
        "time": "Fri Jul 06 16:18:39 2018 +0530"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 09 15:14:47 2018 +0300"
      },
      "message": "man: Remove description of DRM specific mode-options from weston.ini.man\n\nThe weston.ini.man describes the mode-formats that a user can specify\nfor selecting a video mode. The DRM specific examples are already\nprovided in weston-drm.man, so this inofrmation is redundant and can\nbe removed.\n\nThis patch removes the DRM specific mode option details from the\ndescription of mode configuration in weston.ini.man.\nA pointer to weston-drm.man is given, which has complete information\nabout the mode-format options supported by DRM backend.\n\nSigned-off-by: Ankit Nautiyal \u003cankit.k.nautiyal@intel.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "65a4dbcc14810c4c96437966dbcb2d9641b332a2",
      "tree": "bbbfdef353a6928a16e8f579a884ddb7eaaf41b4",
      "parents": [
        "8eece0c2e7dd2bc44efd8a476062b20dbbe451e2"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Dec 08 16:36:18 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 15:04:52 2018 +0100"
      },
      "message": "compositor-drm: Support modifiers for drm_fb\n\nUse the new drmModeAddFB2WithModifiers interface to import buffers with\nmodifiers.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "8eece0c2e7dd2bc44efd8a476062b20dbbe451e2",
      "tree": "d91d3e600be2d9e446365aa68bf820f653e03f20",
      "parents": [
        "bdf3e7e356ba0e01c502e7f29f4e8a71d521e6f1"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Nov 17 17:54:00 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 15:04:52 2018 +0100"
      },
      "message": "compositor-drm: Extract drm_fb_addfb into a helper\n\nWe currently do the same thing in two places, and will soon have a\nthird.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "bdf3e7e356ba0e01c502e7f29f4e8a71d521e6f1",
      "tree": "1913d25b4060565b82d016ab6eb1a1b9619af949",
      "parents": [
        "f11ec02cad401781e030e7eeefe500a2b5b6b82c"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Nov 17 17:33:08 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 15:04:52 2018 +0100"
      },
      "message": "compositor-drm: Use plane FB-import helper for scanout\n\nUse the same codepath, which has the added advantage of being able to\nimport dmabufs.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "f11ec02cad401781e030e7eeefe500a2b5b6b82c",
      "tree": "ba36703a59272c3c3402a4113c4626bfd9dd1abc",
      "parents": [
        "9b560384176b883e02b9d90f907cae3247f8b920"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Nov 17 17:32:42 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 15:04:52 2018 +0100"
      },
      "message": "compositor-drm: Extract overlay FB import to helper\n\n... in order to be able to use it from scanout as well.\n\nIn doing this, the check for format compatibility is moved from after\nselecting a plane to before selecting a plane. If different planes have\ndisjoint format support, this ensures that we don\u0027t reject the view from\nall overlay consideration, just because the first plane we found didn\u0027t\nsupport its format.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "9b560384176b883e02b9d90f907cae3247f8b920",
      "tree": "1cbe873190ff1cfd7edf9332c153696289262993",
      "parents": [
        "7cdf231c762602b820a8ab03bae37297fb5df54f"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Nov 16 19:46:35 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 14:56:16 2018 +0100"
      },
      "message": "compositor-drm: Use plane_state_coords_for_view for cursor\n\nUse the new helper to populate the cursor state as well, with some\nspecial-case handling to account for how we always upload a full-size\nBO.\n\nAs this now fully takes care of buffer transformations, HiDPI client\ncursors work, and we also clip the cursor plane completely to CRTC\nbounds.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReported-by: Derek Foreman \u003cderekf@osg.samsung.com\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nFixes: https://gitlab.freedesktop.org/wayland/weston/issues/118\n"
    },
    {
      "commit": "7cdf231c762602b820a8ab03bae37297fb5df54f",
      "tree": "6f2927ee30143e51316e2702c6d17dd57a9774c0",
      "parents": [
        "ce137472faab26f2c92d40efdfa64a5a937b57fb"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Nov 16 19:40:29 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 14:52:05 2018 +0100"
      },
      "message": "compositor-drm: Use plane_state_coords_for_view for scanout\n\nNow that we have a helper to fill the plane state co-ordinates from a\nview, use this for the scanout plane.\n\nWe now explicitly check that the view fills exactly the fullscreen area\nand nothing else. We then use the new helper to fill out the plane state\nvalues, and do further checks against the filled-in co-ordinates, i.e.\nthat we\u0027re not trying to show an offset into the buffer, or to scale the\nimage.\n\nThis now allows cases where the buffer -\u003e surface -\u003e view -\u003e output\ntransform chain cancels each other out for scaling: previously, we would\nnever consider a buffer for scanout unless its scale matched the\noutput\u0027s. We now only look at the final result of the buffer -\u003e output\ntransformation, to check that this does not result in translation or\nscaling.\n\nAn audit of the error paths found some places where we would leave a\nplane state hanging; this makes them all consistent.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "ce137472faab26f2c92d40efdfa64a5a937b57fb",
      "tree": "d3b6174a7a62169df623b3eee57997d878eca407",
      "parents": [
        "df2726a08913ab8bd00fc6be98d7ca5626b77569"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Nov 16 19:35:03 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 14:52:05 2018 +0100"
      },
      "message": "compositor-drm: Only check final co-ordinates for overlay scaling\n\nWhen considering a view for placement into an overlay plane, we\npreviously checked that the buffer\u0027s transform and scale were identical\nto the output\u0027s, and that there were no transformations applied.\n\nWe now use a more consistent set of checks through\ndrm_plane_state_coords_for_view. This checks the complete transformation\nchain, allowing only translation and scaling; at the end, we check if\nthe total buffer -\u003e surface -\u003e view -\u003e output chain requires scaling or\nrotation, and disallow it if so.\n\nThis allows scaling in the cases where the transformation chain cancels\nitself out to produce a 1:1 buffer -\u003e output pixel scale.\n\nAn erroneously disallowed case is where buffer -\u003e view -\u003e output\nrotations cancel each other out; we prevent a view from being on an\noverlay plane if rotation is involved at all. Fixing this would require\na complete analysis of the overall transformation matrix.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "df2726a08913ab8bd00fc6be98d7ca5626b77569",
      "tree": "55f49de358d0c37e4c2a7b8e72866bc9ce707b09",
      "parents": [
        "d6e2a76a7c725042199e889afdcd251f6e0cbaf1"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Feb 07 18:48:19 2017 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 14:52:05 2018 +0100"
      },
      "message": "compositor-drm: Fully account for buffer transformation\n\nIn our new and improved helper to determine the src/dest values for a\nbuffer on a given plane, make sure we account for all buffer\ntransformations, including viewport clipping.\n\nRather than badly open-coding it ourselves, just use the helper which\ndoes exactly this.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReported-by: Tiago Gomes \u003ctiago.gomes@codethink.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "d6e2a76a7c725042199e889afdcd251f6e0cbaf1",
      "tree": "4a1963de4232db1170a29b0c2a74826fae555f6f",
      "parents": [
        "db10df183a77dc58ec5ba910c0844f8c98f340f0"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Wed Nov 16 19:33:20 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 13:45:53 2018 +0100"
      },
      "message": "compositor-drm: Extract buffer-\u003eplane co-ord translation\n\nPull this into a helper function, so we can use it everywhere.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "db10df183a77dc58ec5ba910c0844f8c98f340f0",
      "tree": "285a3f0b537b77f15ef218e48ffdfdd1b99302e5",
      "parents": [
        "f9bd54682b3f5350367a8fb7ae5d2288201231ab"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Dec 08 13:15:58 2016 +0000"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 12:15:36 2018 +0100"
      },
      "message": "compositor-drm: Make alpha-to-opaque handling common\n\nRather than a hardcoded ARGB8888 -\u003e XRGB8888 translation inside a\nGBM-specific helper, just determine whether or not the view is opaque,\nand use the generic helpers to implement the format translation.\n\nAs a consequence of reordering the calls in\ndrm_output_prepare_overlay_view(), we move the GBM BO dereference into a\ndifferent failure path, before it gets captured by the plane state.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "f9bd54682b3f5350367a8fb7ae5d2288201231ab",
      "tree": "2b2c8d0f555135ec78eeee6c2eecc0d73a8e4c87",
      "parents": [
        "85eebdf456b67df1386209b78d2d7f833f7b43a0"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue May 15 17:09:53 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 12:15:39 2018 +0100"
      },
      "message": "compositor-drm: Remove unnecessary picked_scanout variable\n\ne2e80136334f fixed the same issue as df573031d0ba in a different way.\nThe latter commit (applied earlier in the upstream tree) adds a variable\nto assign_planes to keep track of when we successfully assign a view to\nthe scanout plane, and doesn\u0027t call prepare_scanout_view if we have.\n\nThe former commit adds this checking inside prepare_scanout_view: if the\npending output state already has a framebuffer assigned to the scanout\nplane, we drop out of prepare_scanout_view early. The picked_scanout\nvariable inside assign_planes can thus be removed.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "85eebdf456b67df1386209b78d2d7f833f7b43a0",
      "tree": "8031e18f1c11c81df29cf1c98574a40aa5bbb7c7",
      "parents": [
        "a21c39310853f29f79dc1470987da7a9395eb5cd"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Jul 05 17:55:43 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Fri Jul 06 12:15:36 2018 +0100"
      },
      "message": "compositor-drm: Property accessor can be const\n\nSince it doesn\u0027t write to the parameter, we can make it const.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "a21c39310853f29f79dc1470987da7a9395eb5cd",
      "tree": "13caeba9013693b57facdf15ab96cbedc3f0d5eb",
      "parents": [
        "f82ff35e8e67de1d11f0ef2538864881b37993fe"
      ],
      "author": {
        "name": "Ankit Nautiyal",
        "email": "ankit.k.nautiyal@intel.com",
        "time": "Tue Mar 19 00:24:57 2097 +0530"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Jul 06 12:09:39 2018 +0300"
      },
      "message": "compositor-drm: Add aspect-ratio parsing support\n\nThe flag bits 19-22 of the connector modes, provide the aspect-ratio\ninformation. This information can be stored in flags bits of the\nweston mode structure, so that it can used for setting a mode with a\nparticular aspect-ratio.\nCurrently, DRM layer supports aspect-ratio with atomic-modesetting by\ndefault. For legacy modeset path, the user-space needs to set the\ndrm client cap for aspect-ratio, if it wants aspect-ratio information\nin modes.\n\nThis patch:\n- preserves aspect-ratio flags from kernel video modes and\n  accommodates it in wayland mode.\n- uses aspect-ratio to pick the appropriate mode during modeset.\n- changes the mode format in configuration file weston.ini to\n  accommodate aspect-ratio information as:\n  WIDTHxHEIGHT@REFRESH-RATE ASPECT-RATIO\n  The aspect-ratio can take the following values :\n  4:3, 16:9, 64:27, 256:135.\n\nv2: As per recommendation from Pekka Paalanen, Quentin Glidic,\nDaniel Stone, dropped the aspect-ratio info from wayland protocol,\nthereby avoiding exposure of aspect-ratio to the client.\n\nv3: As suggested by Pekka Paalanen, added aspect_ratio field to store\naspect-ratio information from the drm. Also added drm client\ncapability for aspect-ratio, as recommended by Daniel Vetter.\n\nv4: Minor modifications and fixes as suggested by Pekka Paalanen.\n\nv5: Rebased, fixed some styling issues, and added aspect-ratio\ninformation while printing weston_modes.\n\nv6: Moved the man pages changes to a different patch. Minor\nreorganization of code as suggested by Pekka Paalanen.\n\nSigned-off-by: Ankit Nautiyal \u003cankit.k.nautiyal@intel.com\u003e\n[Pekka: replace ARRAY_SIZE with ARRAY_LENGTH]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "f82ff35e8e67de1d11f0ef2538864881b37993fe",
      "tree": "12c30cf7643163f1884f8f0ab0b1e2fcb01b5222",
      "parents": [
        "9711fd9850739d3b7064e6b407ad37266bf47772"
      ],
      "author": {
        "name": "Ankit Nautiyal",
        "email": "ankit.k.nautiyal@intel.com",
        "time": "Tue Mar 19 00:24:56 2097 +0530"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Jul 06 12:09:19 2018 +0300"
      },
      "message": "man: add description for specifying modes with aspect-ratio in weston.ini\n\nThis patch adds information about the new resolution-format that can\nbe specified by a user in weston.ini to select a CEA mode. CEA defines\ntiming of a video mode, which is considered as a standard for\nHDMI certification and compliance testing. It defines each and every\nparameter, of  a video mode, like h/vactive,h/vfront h/vback etc.,\nincluding aspect-ratio information. The drm layer, specifies the\naspect-ratio information in user-mode flag bits 19-22. For the non-CEA\nmodes a value of 0 is given in the aspect-ratio flag bits. Each\nCEA-mode is identified by a unique, Video Identification Code (VIC).\nFor example, VIC\u003d4 is 1280x720@60 aspect-ratio 16:9.\nThis mode will be different than a non-CEA mode 1280x720@60 0:0.\n\nThe new mode-format helps to differentiate between the CEA and\nnon-CEA modes, by letting user specify aspect-ratio along with other\nparemeters: mode\u003dwidthxheight@rr ratio.\n\nThis helps when certification testing is done, in tests like 7-27,\nthe HDMI analyzer applies a particular CEA mode, and expects the\napplied mode to be with exactly same timings, including the\naspect-ratio and VIC field.\n\nSigned-off-by: Ankit Nautiyal \u003cankit.k.nautiyal@intel.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "9711fd9850739d3b7064e6b407ad37266bf47772",
      "tree": "21dcca787770808adf5d6aa0083c414866b30c1b",
      "parents": [
        "82dd54d943effa3c1b3d2a4979c16e760d7ae232"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 21 14:26:18 2018 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 05 10:39:13 2018 +0300"
      },
      "message": "libweston: fix output reflow on removal\n\nThis is regression apparently introduced in\n0de859ede4bad72b5d3b78e086632f02196d997f, which accidentally swapped the\nsign of \u0027delta_width\u0027 in the original call site. If one removes an\noutput, the remaining outputs on the right are getting moved even\nfurther to the right.\n\nThe outputs to the right should be moved to the left instead, to close\nthe gap left by the removed output.\n\nReported-by: Tomasz Olszak \u003colszak.tomasz@gmail.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ian Ray \u003cian.ray@ge.com\u003e\n"
    },
    {
      "commit": "82dd54d943effa3c1b3d2a4979c16e760d7ae232",
      "tree": "5d790170c5ca61d16c94650d37302b689014b682",
      "parents": [
        "92278e080689f8efd0c068fcdc0affd6ca449a37"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 21 15:38:56 2018 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 05 10:38:25 2018 +0300"
      },
      "message": "desktop-shell: fix output removal for background/panel\n\nWhen the compositor has multiple outputs (not clones) and one of them is\nremoved, the ones remaining to the right will be moved to close the gap.\nBecause reflowing the remaining outputs happens before removing the\nwl_output global, we get the new output x,y before the removal. This\ncauses us to consider the remaining output immediately to the right of\nthe removed output to be a clone of the removed output whose x,y don\u0027t\nget updated. That will then hit the two assertions this patch removes.\n\nThe reason the assertions were not actually hit is because of a\ncompositor bug which moved the remaining outputs in the wrong direction.\nThe next patch will fix the reflow, so we need this patch first to avoid\nthe asserts.\n\nRemove the assertions and hand over the background and panel if the\n\"clone\" does not already have them. If the clone already has them, we\ndestroy the unnecessary background and panel.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Marius Vlad \u003cmarius-cristian.vlad@nxp.com\u003e\n"
    },
    {
      "commit": "92278e080689f8efd0c068fcdc0affd6ca449a37",
      "tree": "7aa97916296591fdf29f9804d88e374e36232804",
      "parents": [
        "352804488aa88eef2feeb8a098ecd3c33ecc4dc4"
      ],
      "author": {
        "name": "Guido Günther",
        "email": "agx@sigxcpu.org",
        "time": "Tue Jun 26 20:40:08 2018 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Jul 03 12:01:57 2018 +0300"
      },
      "message": "compositor-drm: ignore case of {h,v}sync flags in modeline\n\nSome modeline generators put out e.g. +HSync instead of +hsync. Accept\nthat too since it\u0027s not ambigous.\n\nSigned-off-by: Guido Günther \u003cagx@sigxcpu.org\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "352804488aa88eef2feeb8a098ecd3c33ecc4dc4",
      "tree": "3e5b502366516fc5b760f34683798663d2eaf763",
      "parents": [
        "4381040dc644f2f82b4698646672ae2be2ec5688"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:51 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "main: don\u0027t configure /dev/fb0 by default\n\nThe framebuffer backend now detects the framebuffer device\ndynamically. Don\u0027t assume that the framebuffer device is /dev/fb0\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "4381040dc644f2f82b4698646672ae2be2ec5688",
      "tree": "86ef68f47934bf7a0b385775254c1ce0d4207075",
      "parents": [
        "92a06a96e4adff21bcf3b746def202d155ab5377"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:50 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "compositor-fbdev: detect the first fb device in the seat\n\nThis adds a function to detect the first framebuffer device in the\ncurrent seat. Instead of hardcoding /dev/fb0, detect the device\nwith udev, favoring the boot_vga device, and falling back to the\nfirst framebuffer device in the seat if there is none. This is very\nsimilar to what compositor-drm does to find display devices\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "92a06a96e4adff21bcf3b746def202d155ab5377",
      "tree": "0e7078a119588febccd51ed3cd61a5bcd488c019",
      "parents": [
        "68220dbac6576678f81deb2667aace3b84d53519"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:49 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "compositor-fbdev: set fb device info upon the first run.\n\nThis attempts to wake up secondary framebuffer devices\n(/dev/fb1 and up) as usually these devices start powered off, and\nthe FBIOPUT_VSCREENINFO ioctl turns it on. This was tested on a\nqemu system with the options:\n\n-vga none -device VGA,id\u003dvideo0 -device secondary-vga,id\u003dvideo1 \\\n-device secondary-vga,id\u003dvideo2\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "68220dbac6576678f81deb2667aace3b84d53519",
      "tree": "5ebb39468a4a280932b658a2bf62ba9b8f88bb7c",
      "parents": [
        "d68109b9606c610d22d73c3aa8a605220c7f451a"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:48 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "launcher-logind: only get a VT on seat0, as only seat0 supports VTs\n\nAs only seat0 supports TTYs, this changes the logind launcher where\nit detects a TTY, only if the seat is seat0. This has only been\ntested for logind\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "d68109b9606c610d22d73c3aa8a605220c7f451a",
      "tree": "688568dad69fb7e00362d4223a36ca9804838ff0",
      "parents": [
        "b16c4ac55bf795d65d42e907ab11219dd652307a"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:47 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "compositor-fbdev: support the --seat option, (and XDG_SEAT variable)\n\nThis allows the fbdev backend to run on, and use devices from the\nspecified seat, similar to the drm backend.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "b16c4ac55bf795d65d42e907ab11219dd652307a",
      "tree": "10da93e510f0d2c8fa50ef519ca67d1fb51b7b64",
      "parents": [
        "efdebbc4e82b2b43318383c5959d82fdb0dd5840"
      ],
      "author": {
        "name": "nerdopolis",
        "email": "bluescreen_avenger@verizon.net",
        "time": "Fri Jun 29 08:17:46 2018 -0400"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 15:29:38 2018 +0300"
      },
      "message": "libweston: set the seat automatically based on the XDG_SEAT environment variable\n\nThis will allow the seat to be set by the environment as pam_systemd typically\nsets the XDG_SEAT variable\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "efdebbc4e82b2b43318383c5959d82fdb0dd5840",
      "tree": "6f6f78f7a292f219824ad3693db080b47e418fa7",
      "parents": [
        "9071817089a0b22acbddf183817201036bf04157"
      ],
      "author": {
        "name": "Peter Hutterer",
        "email": "peter.hutterer@who-t.net",
        "time": "Mon Jun 11 09:29:49 2018 +1000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 02 14:52:33 2018 +0300"
      },
      "message": "configure.ac: bump libdrm requirement to 2.4.68\n\nHad a stale libdrm sitting around which gave me errors, both fixed with the\n.68 version.\n\nlibweston/pixel-formats.c:291:13: error: ‘DRM_FORMAT_NV24’ undeclared here\n(not in a function); did you mean ‘DRM_FORMAT_NV21’?\n   .format \u003d DRM_FORMAT_NV24,\n             ^~~~~~~~~~~~~~~\n             DRM_FORMAT_NV21\nlibweston/pixel-formats.c:296:13: error: ‘DRM_FORMAT_NV42’ undeclared here\n(not in a function); did you mean ‘DRM_FORMAT_NV12’?\n   .format \u003d DRM_FORMAT_NV42,\n             ^~~~~~~~~~~~~~~\n             DRM_FORMAT_NV12\n\nSigned-off-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nAcked-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "9071817089a0b22acbddf183817201036bf04157",
      "tree": "a5344780f83c9b4bb6878176334ebf800dd40eb1",
      "parents": [
        "944dd235b4ff6e5ef64e48f168bb217933c30acb"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 23 14:34:36 2018 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Jun 29 16:08:35 2018 +0300"
      },
      "message": "weston: add force-on option for DRM\n\nAdd a new boolean output section key \"force-on\". When set to true, the\noutput will be enabled regardless of connector status. This is the\nopposite of the mode\u003doff setting.\n\nForcing connectors on is useful in special circumstances: avoid output\nconfiguration changes due to hotplug e.g. with KVM switches, or hardware\nwith unreliable connector status readout for example.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ian Ray \u003cian.ray@ge.com\u003e\n"
    },
    {
      "commit": "944dd235b4ff6e5ef64e48f168bb217933c30acb",
      "tree": "174f855391273b8ec05278ad022a1587d5506791",
      "parents": [
        "6a699b1a35c6b57c9044bf607933a77184b4e872"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Nov 03 09:56:05 2017 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Jun 29 16:07:03 2018 +0300"
      },
      "message": "weston: support clone mode on DRM-frontend\n\nAdd a new output section key \"same-as\" for configuring clone mode. An\noutput marked \"same-as\" another output will be configured identically to\nthe other output.\n\nThe current implementation supports only CRTC sharing for clone mode.\nIndependent CRTC clone mode cannot be supported until output layout\nlogic is moved from libweston into the frontend and libweston\u0027s damage\ntracking issues stemming from overlapping outputs are solved.\n\nQuite a lot of infrastructure is needed to properly configure clone\nmode. The implemented logic allows easy addition of independent CRTC\nclone mode once libweston supports it. The idea is that wet_layoutput is\nthe item to be laid out and all weston_outputs a wet_layoutput\ncontains show exactly the same area of the desktop.\n\nThe configuration logic attempts to automatically fall back to creating\nmore weston_outputs when all heads do not work under the same\nweston_output. For now, the fallback path ends with an error message.\n\nEnabling a weston_output is bit complicated, because one needs to first\ncollect all relevant heads, try to attach them all to the weston_output,\nand then back up head by head until enabling the weston_output succeeds.\nA new weston_output is created for the left-over heads and the process\nis repeated.\n\nCRTC-sharing clone mode is the most efficient clone mode, offering\nsynchronized scanout timings, but it is not always supported by\nhardware.\n\nv10:\n- rebased trivial conflicts in man page\n- switch to gitlab issue URL\n\nv9:\n- replace weston_compositor_set_heads_changed_cb() with\n  weston_compositor_add_heads_changed_listener()\n- remove workaround in simple_head_enable()\n\nv6:\n- Add man-page note about cms-colord.\n- Don\u0027t create an output just to turn it off.\n\nFixes: https://gitlab.freedesktop.org/wayland/weston/issues/22\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Derek Foreman \u003cderekf@osg.samsung.com\u003e\nAcked-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Ian Ray \u003cian.ray@ge.com\u003e\n"
    },
    {
      "commit": "6a699b1a35c6b57c9044bf607933a77184b4e872",
      "tree": "95008981e597f63109c73452174d6253d3c7cc5c",
      "parents": [
        "78a42116ae92f93a01539a785ce95cc478189608"
      ],
      "author": {
        "name": "Matheus Santana",
        "email": "embs@cin.ufpe.br",
        "time": "Fri Jun 22 18:00:44 2018 -0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 28 13:51:14 2018 +0300"
      },
      "message": "man: remove redundant word in weston.ini(5)\n\nSigned-off-by: Matheus Santana \u003cembs@cin.ufpe.br\u003e\nReviewed-by: Yong Bakos \u003cybakos@humanoriented.com\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "78a42116ae92f93a01539a785ce95cc478189608",
      "tree": "a5487346d5a8d79809476fd1e40a6d01d330946e",
      "parents": [
        "f5c96467e31624df842e93cc72f27069b7cb237d"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Mon Nov 28 15:54:06 2016 +0000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 20 16:10:12 2018 +0300"
      },
      "message": "tests: Reshuffle IVI layout tests\n\nRename the IVI tests to be more consistent with the others, and invert\nthe naming of plugin/client to make it slightly more clear what\u0027s going\nto happen. Handle the renaming by using wet_get_binary_path to rewrite\nthe local binaries.\n\nAs a side-effect, weston.ini ivi-shell-user-interface no longer needs to\nbe given as an absolute path.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n\nv2:\n\nCall ivi-layout.ivi as ivi-layout-test-client.ivi to keep the same name\nin both the file and the lookup, so that the module map does not need to\nchange the name.\n\nUpdate code comments to reflect the new names.\n\nRename ivi_layout-test-plugin.c to ivi-layout-test-plugin.c.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "f5c96467e31624df842e93cc72f27069b7cb237d",
      "tree": "6bc0a1ecf67a30b98a21a39e3af1e62f456a807a",
      "parents": [
        "c5aaaa7b39b3e0fd11202b84442752e2ada3ee00"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 14 16:25:39 2018 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 20 16:10:12 2018 +0300"
      },
      "message": "tests: remove WESTON_BUILD_DIR from env\n\nThere are no users left.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n"
    },
    {
      "commit": "c5aaaa7b39b3e0fd11202b84442752e2ada3ee00",
      "tree": "d034c0fceb54227026391488841dad42db46fac9",
      "parents": [
        "e03c111e4e631817e82c5172396859968a736b2d"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 14 16:20:32 2018 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 20 16:01:03 2018 +0300"
      },
      "message": "shared: remove weston_config_get_libexec_dir()\n\nNow that WESTON_MODULE_MAP supersedes WESTON_BUILD_DIR for libexec\nbinaries, we don\u0027t need to check in WESTON_BUILD_DIR anymore.\n\nThere was only one user of weston_config_get_libexec_dir(), so remove\nthe whole function. There is no reason to export it.\n\nDue to libshared.la being pulled into libweston, this probably was\nlibweston ABI unintended. Regardless, libweston major has already been\nbumped.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "e03c111e4e631817e82c5172396859968a736b2d",
      "tree": "7f262f629dcd597d8145ec394fc2b432cbd6367f",
      "parents": [
        "002f0c56e0c9ab62ea008f110de46ed9c1dd29b9"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Nov 24 20:45:45 2016 +0000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 20 14:36:52 2018 +0300"
      },
      "message": "tests: Don\u0027t rely on build directory layout\n\nRather than having a hardcoded dependency on the build-directory layout,\nuse an explicit module-map environment variable, which rewrites requests\nfor modules and helper/libexec binaries to specific paths.\n\nPekka: This will help with migration to Meson where setting up the paths\naccording to autotools would be painful and unnecessary.\n\nEmre: This should also help setting up the test suite after a\ncross-compile.\n\nPekka: A caveat here is that this patch makes it slightly easier to load\nexternal backends by abusing the module map. External backends are\nspecifically not supported in libweston.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n\nv2:\n\nFixed ivi_layout-test-plugin.c:wet_module_init().\nDo not change the lookup name of ivi-layout.ivi.\n\nImproved documentation of weston_module_path_from_env() and made it cope\nwith map strings that a) do not end with a semicolon, and b) have\nmultiple consecutive semicolons.\n\nLet WESTON_MODULE_MAP be printed into the test log so that it is easier\nto run tests manually.\n\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Emre Ucan \u003ceucan@de.adit-jv.com\u003e\n\nSuggested by Emil: Use a variable for strlen(name).\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Emil Velikov \u003cemil.velikov@collabora.com\u003e\n"
    },
    {
      "commit": "002f0c56e0c9ab62ea008f110de46ed9c1dd29b9",
      "tree": "915b6dbd75cd72137e25ed5709d476df3b900350",
      "parents": [
        "a1fd4302bcbe9a2f8f863e1d9a710c9cab1a401d"
      ],
      "author": {
        "name": "Peter Hutterer",
        "email": "peter.hutterer@who-t.net",
        "time": "Wed Jun 13 09:11:48 2018 +1000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 13 12:16:45 2018 +0300"
      },
      "message": "man: fix prefixes for weston.ini(5)\n\nReplace a few hardcoded paths with the substitutes\n\nhttps://gitlab.freedesktop.org/wayland/weston/issues/105\n\nSigned-off-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "a1fd4302bcbe9a2f8f863e1d9a710c9cab1a401d",
      "tree": "5073332e8a312015d13cbe5e368b03aecf3ddee2",
      "parents": [
        "70e8a32fb7096ed524296b6b9805179a420e0fae"
      ],
      "author": {
        "name": "Peter Hutterer",
        "email": "peter.hutterer@who-t.net",
        "time": "Tue Jun 12 10:42:18 2018 +1000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Jun 12 10:33:46 2018 +0300"
      },
      "message": "compositor: print usage to stdout on success (not stderr) - this time really\n\nFix all the other printfs too.\n\nhttps://gitlab.freedesktop.org/wayland/weston/issues/112\n\nSigned-off-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "70e8a32fb7096ed524296b6b9805179a420e0fae",
      "tree": "ac346e26c98827d02641c2a908407f425a8c41bf",
      "parents": [
        "84bc4035b824f69604415e41b5a1b9c87b90db05"
      ],
      "author": {
        "name": "Peter Hutterer",
        "email": "peter.hutterer@who-t.net",
        "time": "Mon Jun 11 09:57:06 2018 +1000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 11 16:21:46 2018 +0300"
      },
      "message": "compositor: print usage to stdout on success (not stderr)\n\nTriggered by weston --help, the usage() output should not look like an error.\n\nNote that there is only one caller of usage() at the moment, but let\u0027s handle\nthis here based on the status in case we add other cases.\n\nhttps://gitlab.freedesktop.org/wayland/weston/issues/112\n\nSigned-off-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "84bc4035b824f69604415e41b5a1b9c87b90db05",
      "tree": "e5fb65b839b9ff85e610c54f45c4e4548ab52138",
      "parents": [
        "dcfb19585e216bae1f70222454a04caf55d224ff"
      ],
      "author": {
        "name": "Peter Hutterer",
        "email": "peter.hutterer@who-t.net",
        "time": "Mon Jun 11 09:57:04 2018 +1000"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 11 16:20:39 2018 +0300"
      },
      "message": "weston-launch: always run through all groups\n\nIf the user is in group 0, we\u0027d exit the loop early with a failure. Make sure\nwe run through all groups.\n\nhttps://gitlab.freedesktop.org/wayland/weston/issues/86\n\nSigned-off-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n[Pekka: fix one whitespace]\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "dcfb19585e216bae1f70222454a04caf55d224ff",
      "tree": "2b82675e5d64a634af6f5828a55cb2936527202f",
      "parents": [
        "bc04d70336bc8749b7ca7696e5236b80e7ad59b5"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Sat Jun 09 00:51:06 2018 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 11 12:07:57 2018 +0300"
      },
      "message": "doc: Update for GitLab migration\n\nUpdate issue report and build instruction URLs for moving to GitLab, and\nfor everything having been HTTPS-only for quite some time.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "bc04d70336bc8749b7ca7696e5236b80e7ad59b5",
      "tree": "22d3a0e8e1b7e181c7f8b4a0a9003fb4f48892d4",
      "parents": [
        "7f4d9ffefa7162c0d78a8071c4a4f5c050ff8885"
      ],
      "author": {
        "name": "Yong Gan",
        "email": "yong.gan@nxp.com",
        "time": "Tue Sep 05 08:00:30 2017 +0800"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Jun 07 18:07:08 2018 +0100"
      },
      "message": "client: Fix segmentation fault in the case weston-nested\n\neglTerminate should be called before the display was disconnected.\n\nSigned-off-by: Yong Gan \u003cyong.gan@nxp.com\u003e\nReviewed-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "7f4d9ffefa7162c0d78a8071c4a4f5c050ff8885",
      "tree": "dc528fa0b22e32cb42c5cf0a5393b596244ad817",
      "parents": [
        "09bfcd6e1e57fc4bef46ec6833dd44b075ab93e0"
      ],
      "author": {
        "name": "Tomohito Esaki",
        "email": "etom@igel.co.jp",
        "time": "Tue Jun 05 10:37:06 2018 +0900"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 07 12:16:35 2018 +0300"
      },
      "message": "libweston: Reset repaint schedule for all repainted outputs when repaint cancel\n\nAll outputs is canceled repaint when a output repaint is failed. At that\ntime, the output whose repaint is success is not scheduled because the\nrepaint status of that is still REPAINT_AWAITING_COMPLETION. Therefore,\nwe need to reset repaint schedule for all repainted outputs.\n\nSigned-off-by: Tomohito Esaki \u003cetom@igel.co.jp\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "09bfcd6e1e57fc4bef46ec6833dd44b075ab93e0",
      "tree": "7b25d764aa27d8d0a65f1ab2af09a1f5403084a0",
      "parents": [
        "3a80ca0629c5082b3dd7daaa221c015ee737cbfe"
      ],
      "author": {
        "name": "Tomohito Esaki",
        "email": "etom@igel.co.jp",
        "time": "Tue Jun 05 10:37:05 2018 +0900"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jun 07 12:16:35 2018 +0300"
      },
      "message": "libweston: fix indentation\n\nSigned-off-by: Tomohito Esaki \u003cetom@igel.co.jp\u003e\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "3a80ca0629c5082b3dd7daaa221c015ee737cbfe",
      "tree": "a93f65a38621f5a86063c179db88d302a35c2fe3",
      "parents": [
        "fa6069adca19e83c2f5e8fb38e55dcee9c26cfeb"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jun 05 23:01:51 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Jun 07 08:55:39 2018 +0100"
      },
      "message": "simple-dmabuf-drm: Fallback DRM_FORMAT_MOD_LINEAR definition\n\nJust in case we\u0027re running on something quite old.\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "fa6069adca19e83c2f5e8fb38e55dcee9c26cfeb",
      "tree": "997bc8418e1ff1679a5caad158bfc4789f9d2844",
      "parents": [
        "bfaaedc9145acfe626c0173495d49f63392f3956"
      ],
      "author": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Tue Jun 05 22:20:40 2018 +0100"
      },
      "committer": {
        "name": "Daniel Stone",
        "email": "daniels@collabora.com",
        "time": "Thu Jun 07 08:55:39 2018 +0100"
      },
      "message": "Add .gitlab-ci.yml\n\nAdd a GitLab CI configuration which tests building, \u0027make check\u0027, and\n\u0027make distcheck\u0027 of the tree inside a Debian Stretch container. The\nchoice of distribution base was arbitrary and may easily be changed.\n\nAs the version of wayland-protocols available is not sufficiently new,\nwe clone and build our own local version first. libwayland is new\nenough, however we could potentially reuse the artifacts generated by\nthe Wayland CI job.\n\nWhen commits are pushed to upstream, the commits will run this CI\npipeline to run these tests, and capture the result as an artifact\nbundle, including the compiled binaries and full test suite logs.\n\nResults can be seen at:\n    https://gitlab.freedesktop.org/wayland/weston/pipelines/\n\nSigned-off-by: Daniel Stone \u003cdaniels@collabora.com\u003e\n"
    },
    {
      "commit": "bfaaedc9145acfe626c0173495d49f63392f3956",
      "tree": "bc9545b179ca94c00ccf1365e87ae01cecf01df2",
      "parents": [
        "b79dead1dded6744d251da5357e14c83b91cef32"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Mar 13 14:51:00 2018 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:24 2018 +0300"
      },
      "message": "doc: add example calibration-helper script\n\nThis is not to be installed, except maybe as a doc. It is just an\nexample of what one might do.  It also has not been tested, it\u0027s just\nfor giving an idea of what it should do.\n\nIt also contains untested speculation.\n\nv2:\n- use syspath instead of devpath\n- add license blurb\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "b79dead1dded6744d251da5357e14c83b91cef32",
      "tree": "4f17090e4d0408694a4e8ac5ead2f9ba1b73e434",
      "parents": [
        "5a1b0cf0e76d01478dbfb76009d8e986fbe83e4b"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Wed Nov 29 16:38:44 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:24 2018 +0300"
      },
      "message": "clients: add a new touchscreen calibrator\n\nThe new calibrator uses weston_touch_calibration protocol extension and\nprovides the following features:\n\n- chooses the physical touch device to be calibrated by DEVPATH or by\n  the output/head name; device enumeration provided\n\n- the compositor ensures the calibrator window is shown in the correct\n  position and size\n\n- no matter how wrong the old calibration is, the touch events will\n  always arrive in the application\n\n- the calibration is complete, not incremental; the received touch\n  events are guaranteed to be unmodified\n\n- computes a libinput style calibration matrix directly, not the\n  WL_CALIBRATION format\n\n- supports multiple touch devices: calibrate one device at a time, and\n  show user feedback on touching a wrong device instead of recording bad\n  data\n\n- uses four touch point samples: three to compute the calibration, and\n  one to verify the calibration is roughly correct\n\n- consistent exit codes\n\n- upload the new calibration into the server after successful\n  and verified calibration\n\nDue to using special touchscreen calibration protocol extension, this\napplication cannot be tested without touch input from the compositor.\n\nPractically all of the above mentioned are unlike how the old\ncalibrator client worked.\n\nCo-developed by Louis-Francis and Pekka.\n\nv2:\n- improve help() text\n- rename wrong_touch_handler() to invalid_touch_handler()\n- improve debug prints by adding sample number\n- reorganize code into sample funcs vs. touch funcs\n- add a state machine to properly process touch and related events\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "5a1b0cf0e76d01478dbfb76009d8e986fbe83e4b",
      "tree": "566beae870593fb6d6e0e6d071f5a9c31b91d4ba",
      "parents": [
        "83630983ad5335d8a28a9a86ee9b0e9a682d6643"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Fri Dec 15 02:02:56 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:24 2018 +0300"
      },
      "message": "weston: add touchscreen_calibrator option\n\nAdd an option to enable the touchscreen calibrator interface. This is a\nglobal on/off toggle, in lack of more fine-grained access restrictions.\n\nAs Weston should not hardcode system specifics, the actual permanent\nsaving of a new calibration is left for a user supplied script or a\nprogram. Usually this script would write an appropriate udev rule to set\nLIBINPUT_CALIBRATION_MATRIX for the touch device.\n\nCo-developed by Louis-Francis and Pekka.\n\nv2:\n- use syspath instead of devpath\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "83630983ad5335d8a28a9a86ee9b0e9a682d6643",
      "tree": "b2350f0837d70bfd38f14c4a220193a95faf7623",
      "parents": [
        "999876a8f98791f92badd89b5b62481bf6dfcb4a"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Tue Nov 28 20:42:47 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:24 2018 +0300"
      },
      "message": "libweston: implement touch calibration protocol\n\nThis implements a new global interface weston_touch_calibration, which\nallows one client at a time to perform touchscreen calibration. This\nalso implements the calibrator window management.\n\nA client asks to calibrate a specific physical touch device (not a\nwl_seat which may have several physical touch devices aggregated).\nLibweston grabs all touch devices and prevents normal touch event\nhandling during the calibation sequence.\n\nAPI is added to enable this new global interface, but it not yet called\nby anything. Since the implementation allows clients to grab touch devices\narbitrarily, it is not enabled by default. The compositor should take\nmeasures to prevent unexpected access to the interface.\n\nA client may upload a new calibration to the compositor. There is a\nvfunc to allow the compositor to reject/accept it and save it to\npersistent storage. The persistent storage could be a udev rule\nsetting LIBINPUT_CALIBRATION_MATRIX, so that all display server would\nload the new calibration automatically.\n\nCo-developed by Louis-Francis and Pekka.\n\nv2:\n- use struct weston_point2d_device_normalized\n- use syspath instead of devpath\n- wrong_touch was renamed to invalid_touch\n- rename weston_touch_calibrator::cancelled to calibration_cancelled\n- send invalid_touch on out-of-bounds touch-down\n- cancel touch sequence and send invalid_touch on motion going\n  out-of-bounds\n- rename calcoord_from_double() to wire_uint_from_double()\n- send bad_coordinates error in touch_calibrator_convert()\n- conversion results in 0,0 if cancelled\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "999876a8f98791f92badd89b5b62481bf6dfcb4a",
      "tree": "412aaa0788067147ed18d826bebe921f25374b95",
      "parents": [
        "c4689ff1d06792b56a004a3b3fcb056813294ab7"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Nov 22 17:25:12 2017 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:24 2018 +0300"
      },
      "message": "protocol: add weston_touch_calibration\n\nThis is a Wayland protocol extension to allow the calibration of\ntouchscreens in Weston.\n\nSee: https://phabricator.freedesktop.org/T7868\n\nv2:\n- replace \"server\" with \"compositor\"\n- rephrase error conditions to be simpler\n- reword the matrix description in \u0027save\u0027 request\n- rephrase when touch_device events are sent\n- change device id to DEVPATH with \"/sys\" prefix\n- qualify calibration units better\n- replace wrong_touch event with a more generic invalid_touch\n- fix error enum and add bad_coordinates\n- convert while cancelled will not raise any errors\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "c4689ff1d06792b56a004a3b3fcb056813294ab7",
      "tree": "6a7bc24d5ce306bfa72c523404b905ad2234a493",
      "parents": [
        "332a45e0966b2dae9bfadc136345590fc1d4ab35"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Tue Nov 28 20:42:47 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:14 2018 +0300"
      },
      "message": "input: introduce touch event mode for calibrator\n\nIn addition to the normal touch event processing mode, introduce a new\nmode for calibrating a touchscreen input device.\n\nIn the calibration mode, normal touch event processing is skipped, and\nthe raw events are forwarded to the calibrator instead. The calibrator\nis not yet implemented, so the calls will be added in a following patch.\n\nTo switch between modes, two functions are added, one for entering each\nmode. The mode switch happens only when no touches are down on any touch\ndevice, to avoid confusing touch grabs and clients. To realise this, the\nstate machine has four states: prepare and actual state for both normal\nand calibrator modes.\n\nAt this point nothing will attempt to change the touch event mode.\n\nThe new calibrator mode is necessary, because when calibrating a\ntouchscreen, the touch events must be routed to the calibration client\ndirectly. The touch coordinates are expected to be wrong, so they cannot\ngo through the normal focus surface picking. The calibrator code also\ncannot use the normal touch grab interface, because it needs to be able\nto distinguish between different physical touch input devices, even if\nthey are part of the same weston_seat. This requirement makes\ncalibration special enough to warrant the new mode, a sort of \"super\ngrab\".\n\nCo-developed by Louis-Francis and Pekka.\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "332a45e0966b2dae9bfadc136345590fc1d4ab35",
      "tree": "2529a44e08161d3eb336238533a9f73a48749105",
      "parents": [
        "813a06e4558f397aec11e457fe7a1d683a8b3bfb"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Mar 02 14:20:59 2018 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:14 2018 +0300"
      },
      "message": "input: do not forward unmatched touch-ups\n\nCommit a30e29af2e4d0ad6fc476ae7cc13c4cad5119217 introduced the code to\ndeal with a touchscreen with touches already down when Weston starts\nusing it. It fixed the touchpoint counting problem.\n\nHowever, Weston still should not forward or process the unmatched\ntouch-ups either. Code inspection says it would confuse the\nidle-inhibit counting, and it could probably confuse clients as well.\nHence, just drop unmatched touch-ups.\n\nEnhance the warning message to allow identifying where the event came\nfrom.\n\nv2:\n- use syspath instead of devpath\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Reviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "813a06e4558f397aec11e457fe7a1d683a8b3bfb",
      "tree": "5c5aa031b9ed498aae360ded0c2155a1672a3a67",
      "parents": [
        "f406253d3ce8378b7bbeb6cb17d4a887e16d0450"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Tue Nov 28 20:42:47 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:05 2018 +0300"
      },
      "message": "input: move touchpoint counting up\n\nThe touchpoint counting is needed regardless of what we do with the\ntouch events, so move it out of process_touch_normal() into the caller\nnotify_touch_normalized().\n\nThis is pure refactoring.\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "f406253d3ce8378b7bbeb6cb17d4a887e16d0450",
      "tree": "4dfde16d1b8adac303c0601f02c318132a1e9a4c",
      "parents": [
        "bcbce33000a72fd8c466b0748d17c2ff173c49aa"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Feb 26 16:18:29 2018 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:46:05 2018 +0300"
      },
      "message": "libweston: introduce notify_touch_normalized() and doc\n\nnotify_touch_normalized() is an extended form of notify_touch(), adding\nnormalized touch coordinates which are necessary for calibrating a\ntouchscreen.\n\nIt would be possible to invert the transformation and convert from\nglobal coordinates to normalized device coordinates in input.c without\nadding this API, but this way it is more robust against code changes.\n\nRecovering normalized device coordinates is necessary because libinput\ncalibration matrix must be given in normalized units, and it would be\ndifficult to compute otherwise. Libinput API does not offer normalized\ncoordinates directly either, but those can be fetched by pretending the\noutput resolution is 1x1.\n\nAnticipating touch calibration mode, the old notify_touch() is renamed\ninto a private process_touch_normal(), and the new\nnotify_touch_normalized() delegates to it.\n\nCo-developed by Louis-Francis and Pekka.\n\nv2:\n- introduce struct weston_point2d_device_normalized\n- rename notify_touch_cal() to notify_touch_normalized()\n- remove WESTON_INVALID_TOUCH_COORDINATE\n\nCc: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "bcbce33000a72fd8c466b0748d17c2ff173c49aa",
      "tree": "871c40d596bcd7f0777a20d2d88eca5afbd1181c",
      "parents": [
        "09fbe14e8f396f70d9132df50f759003c67b3e90"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Feb 26 14:43:00 2018 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:45:58 2018 +0300"
      },
      "message": "libweston: notify_touch API to use weston_touch_device\n\nRelay touch input events into libweston core through the\nweston_touch_device, so that the core can tell which individual physical\ndevice they come from.\n\nThis is necessary for supporting touchscreen calibration, where one\nneeds to process a single physical device at a time instead of the\naggregate of all touch devices on the weston_seat.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "09fbe14e8f396f70d9132df50f759003c67b3e90",
      "tree": "b805c74c4fd8fc0b79e95758678f23303508c51b",
      "parents": [
        "6ef59c98431cc2cf25d7cdbfb7e37fbfdea1ba99"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Apr 18 12:11:53 2017 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:42:13 2018 +0300"
      },
      "message": "libinput: move calibration printing into do_set_calibration()\n\nMove calibration printing here and call do_set_calibration() from\nevdev_device_set_calibration() so that all matrix setting paths print\nthe same way.\n\nPrint the matrix values in a matrix style to help readability, and\nmention the input device.\n\nv2:\n- use \u0027cal\u0027 instead of \u0027calb\u0027 as variable name\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    },
    {
      "commit": "6ef59c98431cc2cf25d7cdbfb7e37fbfdea1ba99",
      "tree": "217e6f301063804f89246e51840674caa735aa8f",
      "parents": [
        "995bf51b2cc622762b7d9079f03ab46d4055cd37"
      ],
      "author": {
        "name": "Louis-Francis Ratté-Boulianne",
        "email": "lfrb@collabora.com",
        "time": "Tue Nov 28 20:42:47 2017 -0500"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed May 30 14:42:13 2018 +0300"
      },
      "message": "input: introduce weston_touch_device\n\nIntroduce weston_touch_device for libweston core to track individual\ntouchscreen input devices. A weston_seat/weston_touch may be an\naggregation of several physical touchscreen input devices. Separating\nthe physical devices will be required for implementing touchscreen\ncalibration. One can only calibrate one device at a time, and we want to\nmake sure to handle the right one.\n\nBoth backends that support touch devices are updated to create\nweston_touch_devices. Wayland-backend provides touch devices that cannot\nbe calibrated, because we have no access to raw touch coordinates from\nthe device - calibration is the responsibility of the parent display\nserver. Libinput backend provides touch devices that can be calibrated,\nhence implementing the set and get calibration hooks.\n\nBackends need to maintain an output pointer in any case, so we have a\nget_output() hook instead of having to maintain an identical field in\nweston_touch_device. The same justification applies to\nget_calibration_head_name.\n\nAlso update the test plugin to manage weston_touch_device objects.\n\nCo-developed by Louis-Francis and Pekka.\n\nv2:\n- Consistently use \u0027cal\u0027 instead of \u0027calb\u0027 or \u0027matrix\u0027.\n- change devpath into syspath\n- update copyrights\n\nSigned-off-by: Louis-Francis Ratté-Boulianne \u003clfrb@collabora.com\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nv1 Tested-by: Matt Hoosier \u003cmatt.hoosier@gmail.com\u003e\nReviewed-by: Peter Hutterer \u003cpeter.hutterer@who-t.net\u003e\n"
    }
  ],
  "next": "995bf51b2cc622762b7d9079f03ab46d4055cd37"
}
