)]}'
{
  "commit": "aa13be96e8ea2f6ea14e32bc0b0873ba3e28f70b",
  "tree": "7479c1f8e71be9f309aa3a2362ca60cb7f85820d",
  "parents": [
    "117f2f0ad691a12ae6bc045832c758c2139dd6bc"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Tue Jul 10 18:03:22 2018 +0200"
  },
  "committer": {
    "name": "Corentin Wallez",
    "email": "corentin@wallez.net",
    "time": "Wed Jul 11 17:17:21 2018 +0200"
  },
  "message": "Make the Vulkan backend support implicit barriers.\n\nWith this commit the Vulkan backend completely ignores the explicit\nbarrier commands passed from the frontend, and generates its own\npipeline barriers.\n\nRight now it encodes each barrier just before the resources are used,\nwhich is quite bad but will be optimized later.\n\nThis commit also makes the frontend command buffer validation perform\nthe checks necessary for implicit barriers (although they are redundant\nwith checks for explicit barriers) because the tracking can pre-compute\npass usage information that\u0027s useful for the Vulkan backend.\n\nTests for usage validation inside passes will be added once the concept\nof transition is removed from the API.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "20faf92a6affb44594ab8cc51d18cfde2d7bbfdf",
      "old_mode": 33188,
      "old_path": "src/backend/CMakeLists.txt",
      "new_id": "3916af3013ef6fcb37e0ef849d962259a66fee48",
      "new_mode": 33188,
      "new_path": "src/backend/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "9bb6b40e880d4ca9ac3d4755eda40644c9d176bb",
      "old_mode": 33188,
      "old_path": "src/backend/CommandBuffer.cpp",
      "new_id": "02ff7155c923313fb8dd414cd94c03029cb3b37e",
      "new_mode": 33188,
      "new_path": "src/backend/CommandBuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "cf4fec59f602d012eec02ee4a655eb39ce6935ab",
      "old_mode": 33188,
      "old_path": "src/backend/CommandBuffer.h",
      "new_id": "0525daf8f00374ceb188b8fb58b5f1952efd9c6e",
      "new_mode": 33188,
      "new_path": "src/backend/CommandBuffer.h"
    },
    {
      "type": "modify",
      "old_id": "7ae73aa68f46deadd626efe962655409c8429916",
      "old_mode": 33188,
      "old_path": "src/backend/CommandBufferStateTracker.cpp",
      "new_id": "f67c60c25bf0f774d74f995359599e19bb722faa",
      "new_mode": 33188,
      "new_path": "src/backend/CommandBufferStateTracker.cpp"
    },
    {
      "type": "modify",
      "old_id": "3f784f4deadbbf4edde24926fc3df64312105e11",
      "old_mode": 33188,
      "old_path": "src/backend/CommandBufferStateTracker.h",
      "new_id": "f03cc53e329cf791a8b54d1fe1d66c05e5fb6900",
      "new_mode": 33188,
      "new_path": "src/backend/CommandBufferStateTracker.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c1d59d43e837a20cc9a072725e06cd4247bcf096",
      "new_mode": 33188,
      "new_path": "src/backend/PassResourceUsage.h"
    },
    {
      "type": "modify",
      "old_id": "75ccc5b61cd64d9bf4669ccfb01d544ad31fa2f4",
      "old_mode": 33188,
      "old_path": "src/backend/SwapChain.cpp",
      "new_id": "a2a575241be3499558f7cc4064a4bf3638c5c9ff",
      "new_mode": 33188,
      "new_path": "src/backend/SwapChain.cpp"
    },
    {
      "type": "modify",
      "old_id": "0110af4f3e452203810e28f93d4eeba480b978e7",
      "old_mode": 33188,
      "old_path": "src/backend/SwapChain.h",
      "new_id": "391d45944904e0ce7adc19ce81fb8c9f0e52452d",
      "new_mode": 33188,
      "new_path": "src/backend/SwapChain.h"
    },
    {
      "type": "modify",
      "old_id": "0d6c01f5e4c3e2e40fb13e6c02135d51b7b910e7",
      "old_mode": 33188,
      "old_path": "src/backend/Texture.h",
      "new_id": "24aa2fbd19e4b42ca0c61cffd1e0ea4c48557787",
      "new_mode": 33188,
      "new_path": "src/backend/Texture.h"
    },
    {
      "type": "modify",
      "old_id": "4c8f2b5e25f7919ba918ed9d2ed8488b5bc06bdc",
      "old_mode": 33188,
      "old_path": "src/backend/d3d12/DeviceD3D12.cpp",
      "new_id": "58f50770e8dd7c0900ce43f766eeaa7d1d27955a",
      "new_mode": 33188,
      "new_path": "src/backend/d3d12/DeviceD3D12.cpp"
    },
    {
      "type": "modify",
      "old_id": "8658add26bb7f9c65389c55904b61b4aa73a617e",
      "old_mode": 33188,
      "old_path": "src/backend/d3d12/SwapChainD3D12.cpp",
      "new_id": "11a7fd3b2d92003739ec97f3d422d47185f336b5",
      "new_mode": 33188,
      "new_path": "src/backend/d3d12/SwapChainD3D12.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa39bf85c7fa91ac9ca0d59cbf51640ef62925c7",
      "old_mode": 33188,
      "old_path": "src/backend/d3d12/SwapChainD3D12.h",
      "new_id": "33e039f89883220f0d54817a5284cdd6b1bb0272",
      "new_mode": 33188,
      "new_path": "src/backend/d3d12/SwapChainD3D12.h"
    },
    {
      "type": "modify",
      "old_id": "55d0a0358b1a75147b98ac290c8751afa23ec726",
      "old_mode": 33188,
      "old_path": "src/backend/metal/SwapChainMTL.h",
      "new_id": "a6025243a75359f84a56a0930a852b637804bd77",
      "new_mode": 33188,
      "new_path": "src/backend/metal/SwapChainMTL.h"
    },
    {
      "type": "modify",
      "old_id": "352f077788c6ec81ab16d27d3da6d0c3cedc270e",
      "old_mode": 33188,
      "old_path": "src/backend/metal/SwapChainMTL.mm",
      "new_id": "5d1bd28f064572370afe69b8550765bda7eff907",
      "new_mode": 33188,
      "new_path": "src/backend/metal/SwapChainMTL.mm"
    },
    {
      "type": "modify",
      "old_id": "b2330dbc0ace137106e483b2d9e6a9d069a5a5be",
      "old_mode": 33188,
      "old_path": "src/backend/null/NullBackend.cpp",
      "new_id": "99f35818ba0d97e49b5fd596b2dda0f057d22695",
      "new_mode": 33188,
      "new_path": "src/backend/null/NullBackend.cpp"
    },
    {
      "type": "modify",
      "old_id": "abf52023b4bdad6a327b46086d5a39e52dcd0534",
      "old_mode": 33188,
      "old_path": "src/backend/null/NullBackend.h",
      "new_id": "6b9e4a3fce525a9b38977d6c72375cdbb67045be",
      "new_mode": 33188,
      "new_path": "src/backend/null/NullBackend.h"
    },
    {
      "type": "modify",
      "old_id": "46aba3608c4e752da863460d475f38e516ea0bff",
      "old_mode": 33188,
      "old_path": "src/backend/opengl/SwapChainGL.cpp",
      "new_id": "4bd496464a64ecee62afcba853c7e3af1590a5f3",
      "new_mode": 33188,
      "new_path": "src/backend/opengl/SwapChainGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "03cf06e212af378ca7c3e36277a4cad1fb1c7d3b",
      "old_mode": 33188,
      "old_path": "src/backend/opengl/SwapChainGL.h",
      "new_id": "6e7e08d8366abb2633dc69040be80f1ea449b321",
      "new_mode": 33188,
      "new_path": "src/backend/opengl/SwapChainGL.h"
    },
    {
      "type": "modify",
      "old_id": "b181cd643be3fdaba8aeb3974b0b3b712cc707aa",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/BufferVk.cpp",
      "new_id": "9c47f16bc6e15429ae7e69cfeec9fabb48a1a5e8",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/BufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "c00015df42a4300c8c7f4b0e54a7faf785f02b52",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/BufferVk.h",
      "new_id": "ed873ec2acec10c7df1ccfb57e67e8ba46cc3d06",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/BufferVk.h"
    },
    {
      "type": "modify",
      "old_id": "2d4ad99a66a15d7f70a696b086e99e0c8bad9585",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/CommandBufferVk.cpp",
      "new_id": "2fcc2acdf61f9fe9f6887e853a13fc69d10d8a2a",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e7089b2f8c01e9c541b3077dd0bc9a295ed776e9",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/CommandBufferVk.h",
      "new_id": "d6d9a1e6468b0a9a31405bec42b39b225ea67b94",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/CommandBufferVk.h"
    },
    {
      "type": "modify",
      "old_id": "05e839b43bead220e7e9af5f36f4723a20291570",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/DeviceVk.cpp",
      "new_id": "41faf2704b3c4a270a66299645c7fa4f108e8e77",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "d62301259aeaf35d61c9c52459abf9c9c909f40f",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/NativeSwapChainImplVk.cpp",
      "new_id": "bb23afcbb7d91812159f06ada6c1d33355c9bd63",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/NativeSwapChainImplVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "91d0baf0e486548b8ece7522336bdd742a723a87",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/SwapChainVk.cpp",
      "new_id": "f94429462f027fa11daa37871eda851471a9820c",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/SwapChainVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "7e0a8ac4d58045c1c066ba32c02be13c43188d3b",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/SwapChainVk.h",
      "new_id": "4095d61da56313131fb67c3ed12b3b36c0633310",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/SwapChainVk.h"
    },
    {
      "type": "modify",
      "old_id": "9d52f5c43ad3e5f1906c016a584147a906ab904c",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/TextureVk.cpp",
      "new_id": "4b4667078db4f97a5ef5aeeb132bb5f0a483d75f",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/TextureVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "0a202a8160fe8b0b64aa7689c96d28e900717430",
      "old_mode": 33188,
      "old_path": "src/backend/vulkan/TextureVk.h",
      "new_id": "69ca429805a8998eb068527ec7e7762e9b3294a4",
      "new_mode": 33188,
      "new_path": "src/backend/vulkan/TextureVk.h"
    },
    {
      "type": "modify",
      "old_id": "021b14196ffeaddd863c867994c7d8f90a582271",
      "old_mode": 33188,
      "old_path": "src/include/nxt/nxt_wsi.h",
      "new_id": "ec5d85976673444ec57b031ff91af7e7ea546b98",
      "new_mode": 33188,
      "new_path": "src/include/nxt/nxt_wsi.h"
    }
  ]
}
