)]}'
{
  "commit": "aba65a8e1ce1123268e346230e5307c97e174c19",
  "tree": "e76895bf5f91afb5ccc685b963584f90380f5155",
  "parents": [
    "66d1f73e2c9d6f93d6c2994d5d5a7cc3cc4ed718"
  ],
  "author": {
    "name": "Maksim Sisov",
    "email": "msisov@igalia.com",
    "time": "Wed Aug 19 13:40:44 2020 +0300"
  },
  "committer": {
    "name": "Maksim Sisov",
    "email": "msisov@igalia.com",
    "time": "Fri Aug 21 15:35:21 2020 +0000"
  },
  "message": "X11 and Ozone: Try to check for display type when creating framebuf\n\nWe\u0027re making a new config in the Chromium project for Linux builds -\nUSE_X11 \u0026\u0026 USE_OZONE. The idea of that is to ease migration\nfrom non-Ozone/X11 to Ozone. It will be possible to choose between\nOzone and non-Ozone path on runtime by supplying\nthe --enable-features\u003dUseOzonePlatform flag.\n\nHowever, SwiftShader doesn\u0027t support such a build and always uses\nFrameBufferOzone. This is not correct when the browser is\nrun without the Ozone feature enabled aka using old\nnon-Ozone/X11 path. Basically, it results in crashes\nduring swap buffers call.\n\nThe very naive solution is to try to test the display. If we\ncan cast it to XDisplay and its valid, use X11 framebuffer.\nOtherwise, use Ozone. Though, I\u0027m not 100% sure about the safiness\nof this check. Thus, we must be careful about that.\n\nThis is one of the last patches that blocks enabling both\nuse_x11 \u0026\u0026 use_ozone in Chromium.\n\nBug: chromium:1119303\nChange-Id: I969798abd4d0bbacaffb7704161eac38e77d9311\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/47868\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nTested-by: Maksim Sisov \u003cmsisov@igalia.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "22da32f91e884eb59a659d394f19b3182a52b14d",
      "old_mode": 33188,
      "old_path": "src/Main/BUILD.gn",
      "new_id": "0658d662afcb35c0fa7fef73feba0d94ce86bd16",
      "new_mode": 33188,
      "new_path": "src/Main/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef01817a651792d1d0374d332f2fcfd0dc9f9118",
      "new_mode": 33188,
      "new_path": "src/Main/FrameBufferFactoryOzone.cpp"
    },
    {
      "type": "modify",
      "old_id": "95e0729b92584ed4874214d926dfe21095bd6804",
      "old_mode": 33188,
      "old_path": "src/Main/FrameBufferOzone.cpp",
      "new_id": "db00adf505dc096f12546e661a98e4752bfa5b6c",
      "new_mode": 33188,
      "new_path": "src/Main/FrameBufferOzone.cpp"
    },
    {
      "type": "modify",
      "old_id": "b3ae3b4be5c5fe4158b37b4d78c29b0517de0f3f",
      "old_mode": 33188,
      "old_path": "src/Main/FrameBufferX11.cpp",
      "new_id": "1b76bf28f4d2f7db28d366607d0edd824d0ec584",
      "new_mode": 33188,
      "new_path": "src/Main/FrameBufferX11.cpp"
    }
  ]
}
