)]}'
{
  "commit": "a7f29640f6ab4eb50962a9d9f12d01ac2ce8b471",
  "tree": "b2ab8bb78abede727cf680cfeca76e385bd7205b",
  "parents": [
    "d5f6e9a759891473b8211efb90f665b14a85b830"
  ],
  "author": {
    "name": "csmartdalton",
    "email": "csmartdalton@google.com",
    "time": "Thu Jul 07 08:49:11 2016 -0700"
  },
  "committer": {
    "name": "Commit bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Jul 07 08:49:11 2016 -0700"
  },
  "message": "Begin instanced rendering for simple shapes\n\nAdds a module that performs instanced rendering and starts using it\nfor a select subset of draws on Mac GL platforms. The instance\nprocessor can currently handle rects, ovals, round rects, and double\nround rects. It can generalize shapes as round rects in order to\nimprove batching. The instance processor also employs new drawing\nalgorithms, irrespective of instanced rendering, that improve GPU-side\nperformance (e.g. sample mask, different triangle layouts, etc.).\n\nThis change only scratches the surface of instanced rendering. The\nmajority of draws still only have one instance. Future work may\ninclude:\n\n * Passing coord transforms through the texel buffer.\n * Sending FP uniforms through instanced vertex attribs.\n * Using instanced rendering for more draws (stencil writes,\n   drawAtlas, etc.).\n * Adding more shapes to the instance processor’s repertoire.\n * Batching draws that have mismatched scissors (analyzing draw\n   bounds, inserting clip planes, etc.).\n * Bindless textures.\n * Uber shaders.\n\nBUG\u003dskia:\nGOLD_TRYBOT_URL\u003d https://gold.skia.org/search?issue\u003d2066993003\n\nCommitted: https://skia.googlesource.com/skia/+/42eafa4bc00354b132ad114d22ed6b95d8849891\nReview-Url: https://codereview.chromium.org/2066993003\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a658c453d13a44f244fdd934aea05658fb8ad370",
      "old_mode": 33188,
      "old_path": "bench/ShapesBench.cpp",
      "new_id": "83f0e455b17f58ef0dcec11b6aa8cb5e42755dcc",
      "new_mode": 33188,
      "new_path": "bench/ShapesBench.cpp"
    },
    {
      "type": "modify",
      "old_id": "4a8deca6bd1abf74d798fc30a76a8780d14da9f2",
      "old_mode": 33188,
      "old_path": "gyp/gpu.gypi",
      "new_id": "d533e6440267063c1aa8ce337f902503fc811a6b",
      "new_mode": 33188,
      "new_path": "gyp/gpu.gypi"
    },
    {
      "type": "modify",
      "old_id": "f56570b10beaf3cd3ca2e2fb8ca6a2a42f3fee92",
      "old_mode": 33188,
      "old_path": "include/gpu/GrDrawContext.h",
      "new_id": "96f42693b48ef06ce08400cc5d5864f8dfbfbf4a",
      "new_mode": 33188,
      "new_path": "include/gpu/GrDrawContext.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f12b89fc6b80665b2a8552bbf3e19cb4834eae19",
      "new_mode": 33188,
      "new_path": "include/private/GrInstancedPipelineInfo.h"
    },
    {
      "type": "modify",
      "old_id": "c42661488d394d2a67918db2be1713f54f2a2e19",
      "old_mode": 33188,
      "old_path": "src/gpu/GrDrawContext.cpp",
      "new_id": "430ae886f39c603eceb0645d57c73f844c23dcdf",
      "new_mode": 33188,
      "new_path": "src/gpu/GrDrawContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "8087bcf58827ec91f2a7a6dc27f7974128209963",
      "old_mode": 33188,
      "old_path": "src/gpu/GrDrawContextPriv.h",
      "new_id": "c77d8e488b461d7aa3fc79ed8918b820812682b9",
      "new_mode": 33188,
      "new_path": "src/gpu/GrDrawContextPriv.h"
    },
    {
      "type": "modify",
      "old_id": "fc3caf5212369b06a0de54fcd8d408df185b225f",
      "old_mode": 33188,
      "old_path": "src/gpu/GrDrawTarget.cpp",
      "new_id": "86e0c82f225f1a6cf32e54602cb50c3c2375af82",
      "new_mode": 33188,
      "new_path": "src/gpu/GrDrawTarget.cpp"
    },
    {
      "type": "modify",
      "old_id": "64c8a3345ce43c7033aa0f1e639641652f95fb56",
      "old_mode": 33188,
      "old_path": "src/gpu/GrDrawTarget.h",
      "new_id": "2a5bbde1a3a55bff9dbc6461522ec50ec474545b",
      "new_mode": 33188,
      "new_path": "src/gpu/GrDrawTarget.h"
    },
    {
      "type": "modify",
      "old_id": "458bd20571fafc332fff5cb2bd66accd1bde31f9",
      "old_mode": 33188,
      "old_path": "src/gpu/GrDrawingManager.cpp",
      "new_id": "75ee0db7c8979a41bc24c3af2d9ef1efa17be952",
      "new_mode": 33188,
      "new_path": "src/gpu/GrDrawingManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "e7c2196c62a4be6d3a21a5aae8365a674970273e",
      "old_mode": 33188,
      "old_path": "src/gpu/GrGpu.h",
      "new_id": "be8a59a738098045c0417a4834bff15e1e648ec7",
      "new_mode": 33188,
      "new_path": "src/gpu/GrGpu.h"
    },
    {
      "type": "modify",
      "old_id": "a37d72e26b27157f7a1010c924cab384cf46bda9",
      "old_mode": 33188,
      "old_path": "src/gpu/gl/GrGLGpu.cpp",
      "new_id": "99726904873a4f5df4b5feecaa909fc68d2a5fb9",
      "new_mode": 33188,
      "new_path": "src/gpu/gl/GrGLGpu.cpp"
    },
    {
      "type": "modify",
      "old_id": "c8edbb9c2848434dd6e087bac8676572fc7e987d",
      "old_mode": 33188,
      "old_path": "src/gpu/gl/GrGLGpu.h",
      "new_id": "5cc0facea6c4154646e9047ef5160bf2d322869f",
      "new_mode": 33188,
      "new_path": "src/gpu/gl/GrGLGpu.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7df39f07df15de889149110bb2889a9019764181",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/GLInstancedRendering.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "569e6e316014b5597d0705f42e7feaa4966477ef",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/GLInstancedRendering.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "acad4c1e1b0e446d71de88e1411cd534759bef24",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/InstanceProcessor.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0edde95b8262137f4d6cc1f653f0f7d7bc2240c",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/InstanceProcessor.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d96bb397862c60e03ade568ad79534710a3bbd16",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/InstancedRendering.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d5289663e0971b0a354b534682025f11d727e955",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/InstancedRendering.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97f8946d033309c6357f37074373dc0071c329ad",
      "new_mode": 33188,
      "new_path": "src/gpu/instanced/InstancedRenderingTypes.h"
    }
  ]
}
