)]}'
{
  "commit": "c81766320762e6a67dad91e6a41304f8713bc7d1",
  "tree": "2adb6d2952433d3ac3999e858f2d74e4cb2bd51f",
  "parents": [
    "a69ca6050e3e87a9b4adf61fc5d41bcf0b919233"
  ],
  "author": {
    "name": "Alexis Hetu",
    "email": "sugoi@google.com",
    "time": "Tue Jan 22 17:01:28 2019 -0500"
  },
  "committer": {
    "name": "Alexis Hétu",
    "email": "sugoi@google.com",
    "time": "Wed Feb 06 02:41:05 2019 +0000"
  },
  "message": "Basic DescriptorPool and DescriptorSetLayout implementation\n\nThis cl is a minimal implementation of DescriptorPool and\nDescriptorSetLayout.\n\nA DescriptorSet itself is just a straight memory pointer.\n\nA DescriptorPool is a memory pool where DescriptorSets are\nallocated. The DescriptorPool object itself is little more\nthan a memory allocator.\nA few minor optimizations were made to speed up the default\ncase:\n- The Descriptor pool starts looking for a large enough\n  memory block at the end of the pool, which should be optimal\n  if the DescriptorSets are allocated linearly\n- When allocating multiple DescriptorSets at once, the pool\n  first attempts to allocated all of them contiguously. This\n  prevents looking for free memory blocks multiple times and\n  once again should be optimal if the DescriptorSets are\n  allocated linearly\n\nNote: For now, DescriptorSetLayout::GetDescriptorSize() is a\n      dummy function which always returns the same size for\n      every Descriptor type. This will be implemented properly\n      case by case as we add support for new Descriptor types.\n\nPasses all tests in:\ndEQP-VK.api.*descriptor*\n\nBug b/123244275\n\nChange-Id: I2a2e73396e38dae28b59b77243cd8a366b35c12c\nReviewed-on: https://swiftshader-review.googlesource.com/c/24028\nTested-by: Alexis Hétu \u003csugoi@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Chris Forbes \u003cchrisforbes@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c95337ae974039f60fe927a61670a6ba18412883",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkDescriptorPool.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "baa64f9cee9d38e2da06ad0e103127cdfe12ad9e",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkDescriptorPool.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cfd9340f3e39ef09c1f3314a794547adfcb0f5f7",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkDescriptorSetLayout.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c5f73426f5bbcb708147717c083c5967e3bb859",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkDescriptorSetLayout.hpp"
    },
    {
      "type": "modify",
      "old_id": "a8959d09c0e5d44d3658f9947c8577c68e4875c9",
      "old_mode": 33188,
      "old_path": "src/Vulkan/libVulkan.cpp",
      "new_id": "66c6a3e0400dd41b8b51a3945ac0959f8663c997",
      "new_mode": 33188,
      "new_path": "src/Vulkan/libVulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "0bd36187bdf7d14335ad611b40596976035e7313",
      "old_mode": 33188,
      "old_path": "src/Vulkan/vulkan.vcxproj",
      "new_id": "275b3835b0a0524a2f47947def283a39a5f33404",
      "new_mode": 33188,
      "new_path": "src/Vulkan/vulkan.vcxproj"
    },
    {
      "type": "modify",
      "old_id": "f3fbdbda6f8e9e4491af8ece0e4bfea1ccb06920",
      "old_mode": 33188,
      "old_path": "src/Vulkan/vulkan.vcxproj.filters",
      "new_id": "2d332a839fd1870661568d48fc6a92558d802e6d",
      "new_mode": 33188,
      "new_path": "src/Vulkan/vulkan.vcxproj.filters"
    }
  ]
}
