)]}'
{
  "commit": "b749d07ac9e68d746e4e0f146a2ea423e5aaaf4f",
  "tree": "779f9a7bec7205fbf877dcc03d19b01193e1c52f",
  "parents": [
    "abec145b0403af013e5176b0d8b2972d03d00fa4"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Mon Sep 09 10:52:08 2019 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Mon Sep 09 10:52:08 2019 +0000"
  },
  "message": "Enable Vulkan for Chromium Fuchsia build.\n\nEnable the Vulkan backend when building Dawn with\nthe Chromium build system for Fuchsia. To make this\nwork properly the following is required:\n\n- Modify VulkanInfo.cpp and BackendVk.cpp to correctly probe\n  the Fuchsia swapchain layer and its layer extension, as well\n  as enabling them when creating a new VkInstance.\n\n- Modify VulkanFunctions.cpp to load the Fuchsia swapchain\n  related extension for this platform only.\n\n- Provide a small mock GLFW library for Fuchsia under\n  src/utils/Glfw3Fuchsia.cpp, since the upstream project\n  does not support this platform at all. Its purpose is\n  only to allow the creation of the right VulkanBinding\n  instance, which depends on the creation of a display\n  surface for latter swapchain creation.\n\n- Add //third_party/fuchsia-sdk:vulkan_base and\n  //third_party/fuchsia-sdk:vulkan_validation as\n  data_deps of the libdawn_native_sources target in\n  order to ensure that the Fuchsia package created by\n  the build system will include the correct Vulkan\n  libraries (loader and validation layers).\n\nThis builds correctly, and both dawn_unittests and\ndawn_end2end_tests will run on a real Fuchsia device\nor inside the Fuchsia emulator, using either GPU\nvirtualization or a software-based renderer.\n\nNote: dawn_unittests will also run inside QEMU, but\nnot dawn_end2end_tests, since the latter requires\nproper GPU emulation which is not available in this\nenvironment.\n\nNOTE: All end2end tests pass using a device with\n      an \"Intel HD Graphics 615 (Kaby Lake GT2)\"\n      adapter. However:\n\n       - For some reason, a single test takes up\n         to 129 seconds to pass\n\t (BufferSetSubDataTests.ManySetSubData/Vulkan).\n\n       - The test process crashes inside VkDestroyInstance(),\n         apparently inside the Fuchsia-specific imagepipe\n\t layer (which implements swapchain support).\n\t This is likely a bug in the layer itself, and\n\t not Dawn.\n\n    Also, may end2end tests will crash when run inside\n    the Fuchsia emulator (which uses GPU virtualization\n    to talk to the host GPU). The crashes happen inside\n    libvulkan-goldfish.so, the emulator-specific Vulkan\n    ICD on this sytem. Not a Dawn bug either.\n\nBug\u003ddawn:221\nChange-Id: Id3598b673e8c6393f24db728b8da49fdde3cac76\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/8963\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Austin Eng \u003cenga@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "99164275c80051c5640b4e23d5df6f503936b82e",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "9d290a0533a24c993cd961161f78309b4d022808",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "a74942b6504a63a15a8093446c0749375e6ce4bf",
      "old_mode": 33188,
      "old_path": "scripts/dawn_features.gni",
      "new_id": "6897304fe166fda813dcbb4eb8f76833ecfa0d9f",
      "new_mode": 33188,
      "new_path": "scripts/dawn_features.gni"
    },
    {
      "type": "modify",
      "old_id": "9093e8240ac25c3fadcedc614386e3b5b19e3487",
      "old_mode": 33188,
      "old_path": "src/common/BUILD.gn",
      "new_id": "2566b08629992f6d4f7c40f8b914088fd4fc3c0a",
      "new_mode": 33188,
      "new_path": "src/common/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "dff6bbea0626ab040ff6bec7db6312a776240cad",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/BackendVk.cpp",
      "new_id": "398569d9bafda44cd0f92c230923571fcf65f32e",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/BackendVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "0d36776b73ae6e1626544c5c7fa30d1fd7cf4c76",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/VulkanFunctions.cpp",
      "new_id": "c6647a0c37275ed5d19c45b2f37bffa2f913c002",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/VulkanFunctions.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1f24f191f90816ca6f6b8740f9094ba2c097a0a",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/VulkanFunctions.h",
      "new_id": "8638a7bdb6c556e5113353aa21cff3b5b53ed183",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/VulkanFunctions.h"
    },
    {
      "type": "modify",
      "old_id": "f4f0284154f0dd5298b9b9dfaf25850a7ae98ebf",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/VulkanInfo.cpp",
      "new_id": "0e21bb07925bcfbe4002a1c0f87074fe3f5c849e",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/VulkanInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "48bcd9a3dec6ddfc7769bb0c35b06c11f27edde2",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/VulkanInfo.h",
      "new_id": "69b9f1f8f14e0160fd42566efa9e8222df542df2",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/VulkanInfo.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cc8ed3ba03cb909aa96b9201c3649476ea85d74e",
      "new_mode": 33188,
      "new_path": "src/utils/Glfw3Fuchsia.cpp"
    }
  ]
}
