)]}'
{
  "commit": "f44a809f9a3b6506df5cc1105198ed136c6b26ec",
  "tree": "dcbfaee5f868e32258f3d3e97d6b5e68860b74ac",
  "parents": [
    "0a239045e3005ce2dd1e48efdf2d5d4b2da3b2a6"
  ],
  "author": {
    "name": "Kai Ninomiya",
    "email": "kainino@chromium.org",
    "time": "Fri Jan 31 04:04:16 2020 +0000"
  },
  "committer": {
    "name": "Commit Bot service account",
    "email": "commit-bot@chromium.org",
    "time": "Fri Jan 31 04:04:16 2020 +0000"
  },
  "message": "Remove VK_DEFINE_NON_DISPATCHABLE_HANDLE magic, use explicit VkHandle wrapper\n\nOverriding VK_DEFINE_NON_DISPATCHABLE_HANDLE changes the function\nsignatures of Vulkan functions, changing their ABI and making us\nincompatible with real drivers. This removes that magic, and replaces it\nwith an explicit wrapper, VkHandle, which has much of the same\nfunctionality as the original VkNonDispatchableHandle.\n\nIt adds definitions for dawn_native::vulkan::VkBuffer et al, which\nshadow the native ::VkBuffer et al. This retains type safety throughout\nthe Vulkan backend without changing every single usage.\n\nNotably, the following things had to change:\n- An explicit conversion from VkBuffer* to ::VkBuffer* is needed for\n  arrays. This is implemented as a reinterpret_cast, which is still\n  safe as the new VkHandle still has the same memory layout properties\n  as VkNonDispatchableHandle did.\n- When pointing to a VkHandle as an output pointer, it\u0027s now necessary\n  to explicitly get the native ::VkBuffer (via operator*) and point to\n  it.\n\nPreviously reviewed on:\nhttps://dawn-review.googlesource.com/c/dawn/+/15580\n\nBug: chromium:1046362\nChange-Id: I7d34ec38a805025f92165ea9a7ee07ae5c182076\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/15641\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "35742a70d8fb014259e70918a8e894505d50a5c2",
      "old_mode": 33188,
      "old_path": "src/common/vulkan_platform.h",
      "new_id": "913f011f03e2e03ce313d53f89fdce12cfc58a98",
      "new_mode": 33188,
      "new_path": "src/common/vulkan_platform.h"
    },
    {
      "type": "modify",
      "old_id": "d2aaa76475f8baa4ee496dbc9d5b6a441f36939f",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/BackendVk.cpp",
      "new_id": "d2745cb5e51c12efca363a41c1163d76abd50f8f",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/BackendVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "89ce53d98f76c23ff39ea6bc4b0104eb3878243d",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/BindGroupLayoutVk.cpp",
      "new_id": "90c8366272d1d4bdea89bdd8aca3b48ae3603bdf",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/BindGroupLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "4dd4c218a7ca702eeb8d253f9d6f03cade99bc39",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/BindGroupVk.h",
      "new_id": "9fa857b745454f6a97c2efa84c0e1a9a72e7cfc3",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/BindGroupVk.h"
    },
    {
      "type": "modify",
      "old_id": "8f8b3aa2f0feb6177995829d2186253f7078f92f",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/BufferVk.cpp",
      "new_id": "4a1af605885a8711d199f01c5ca37a5e0bb6eebd",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/BufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "b845e3b6d7cdfd40cd17fc30b5e16244bcef6518",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/CommandBufferVk.cpp",
      "new_id": "7e128066c71b86d799cd31e3cb18aaf95f6eb16a",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "2f37620ded202859c52a9781dd954e040587e67c",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/ComputePipelineVk.cpp",
      "new_id": "16dd8e7d153857935099f7b87787d678e07acd1f",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/ComputePipelineVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "bc4179a98b95409c801318bd1b0cba0275ec1d3f",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/DeviceVk.cpp",
      "new_id": "e78718e3864dce26bddb2406711ba07cb5c0049e",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "a330d7116583166c9dede68f6fddd9ad9dc0385b",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/NativeSwapChainImplVk.cpp",
      "new_id": "ada090f7dee6d66fe2006c8012d662e110bad5b6",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/NativeSwapChainImplVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "dd123af35ed6ce12fd4adf1766f1b5e70b215e82",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/PipelineLayoutVk.cpp",
      "new_id": "847ba60f82a408a3c019626589f975d4e3abd056",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/PipelineLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "87424589f250e69639c67796e5620eb907fdfe1a",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/RenderPassCache.cpp",
      "new_id": "47330f120453d7209066ad4906c82958da1bcafa",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/RenderPassCache.cpp"
    },
    {
      "type": "modify",
      "old_id": "4b770a518aaeec937ea912af43f943a183591834",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/RenderPipelineVk.cpp",
      "new_id": "b0ba4fd7016b327629346bb8dc0dc3ed6f3e9418",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/RenderPipelineVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "25fa5ee0dbd8349db919d20cb25b2cd8e7c65a31",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp",
      "new_id": "3d8ded5b5c6a05b6c3f4f26f4f178fb455138a63",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/ResourceMemoryAllocatorVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "05baf71fc9273c88d80fd0adb4af904b45a2c6d0",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/SamplerVk.cpp",
      "new_id": "67d70f8d7c297e82b8984cb8015f7f29f6a95653",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/SamplerVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "140abba098acddd7108e7245c96373176d0b9fc7",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/ShaderModuleVk.cpp",
      "new_id": "a9e717ce9c8f7f9c2a205fb239a87a2ced0e7dde",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/ShaderModuleVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "42623188e3eff5d211bc713f3d23f678de338182",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/StagingBufferVk.cpp",
      "new_id": "4fa3b7b65162c58d549866587f79a0ee1e085b35",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/StagingBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "876af8e164afd76d20763372a1d6b51825bdfef0",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/SwapChainVk.cpp",
      "new_id": "e64f5e52f20cf3799c3699b6e2c6616ebf844bc7",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/SwapChainVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "72a76536850722606702dae07322794c255d5f09",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/TextureVk.cpp",
      "new_id": "6f2fc9e94e4d7a25e0fd336e29324ad4c62d7588",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/TextureVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "ad99a27401d04961129f2abf501c5df26a3895fd",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/VulkanBackend.cpp",
      "new_id": "2a9361f409aff257b053f8672bf13b218e144216",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/VulkanBackend.cpp"
    },
    {
      "type": "modify",
      "old_id": "531d0688fcac719a57cf0fa8ea1f6ef250817f20",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp",
      "new_id": "ea84d5edc44b2e6563777757dda2bacefe570500",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/external_memory/MemoryServiceDmaBuf.cpp"
    },
    {
      "type": "modify",
      "old_id": "a6bb2fadce219c815a068ed954c6f573991c4eb3",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp",
      "new_id": "a8bc1819dda8584fe1b67757e1ebea519051369e",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/external_memory/MemoryServiceOpaqueFD.cpp"
    },
    {
      "type": "modify",
      "old_id": "8c70c677c5153a28c9086322b28a9bc5905c59d3",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp",
      "new_id": "09a5b71e69dae64a1ecef11dff5573672c6e1193",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/external_memory/MemoryServiceZirconHandle.cpp"
    },
    {
      "type": "modify",
      "old_id": "ea7bf47d0f02622a1d69d1ec3f1e49cd665cbd9a",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp",
      "new_id": "3e1d3f0141ec03779f433445d434cc0040932756",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceOpaqueFD.cpp"
    },
    {
      "type": "modify",
      "old_id": "81fb9fd5ecd05bee24e9e89d869ff3396a3970db",
      "old_mode": 33188,
      "old_path": "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp",
      "new_id": "5ea53f7545d297483a516411c67baaa0ebca6e95",
      "new_mode": 33188,
      "new_path": "src/dawn_native/vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp"
    },
    {
      "type": "modify",
      "old_id": "30dbb05b848de384137c4bf8deb246680a28e5ea",
      "old_mode": 33188,
      "old_path": "src/include/dawn_native/VulkanBackend.h",
      "new_id": "005a655ce702120a21ec64171869dccc1b0599c7",
      "new_mode": 33188,
      "new_path": "src/include/dawn_native/VulkanBackend.h"
    },
    {
      "type": "modify",
      "old_id": "677f67007ede88bb8ca9f61c8b50ba3f5f7c756b",
      "old_mode": 33188,
      "old_path": "src/tests/DawnTest.h",
      "new_id": "9cdfd3e600f2eaa29198f92351449a0617f3c1dc",
      "new_mode": 33188,
      "new_path": "src/tests/DawnTest.h"
    },
    {
      "type": "modify",
      "old_id": "de7d8fe3212cbd814a5f4ba4bc7cbe06088bbde6",
      "old_mode": 33188,
      "old_path": "src/tests/white_box/VulkanImageWrappingTests.cpp",
      "new_id": "1db96439673fe41043c821c3b8335b0e23588445",
      "new_mode": 33188,
      "new_path": "src/tests/white_box/VulkanImageWrappingTests.cpp"
    }
  ]
}
