)]}'
{
  "commit": "9f2b6c451fdf886272c8caa730e7ccafc17c6afb",
  "tree": "c39d554074965752dcedac5a4e6dd4f4deb014b0",
  "parents": [
    "4ba1b04bb1920367b83cf5ffd9573e315b69ef44"
  ],
  "author": {
    "name": "Alexis Hetu",
    "email": "sugoi@google.com",
    "time": "Fri Aug 30 11:55:02 2019 -0400"
  },
  "committer": {
    "name": "Alexis Hétu",
    "email": "sugoi@google.com",
    "time": "Mon Sep 16 19:50:39 2019 +0000"
  },
  "message": "Point vertex processing optimization\n\nInstead of packing each point in a triangle primitive,\ntightly pack all point vertices and write them out 3\nat a time in the output primitive. This should be\nroughly twice as fast. Explanation:\n\nCurrently:\nVertices: 0 0 0 1 1 1 2 2 2 ...\nProcessing:\n1) 0 0 0 1\n2) 0 (cache hit)\n3) 0 (cache hit)\n2) 1 (cache hit)\n3) 1 (cache hit)\n4) 1 (cache hit)\n5) 2 2 2 3\n...\n-\u003e We processed 8 vertices to get points 0 1 2 3\n\nNew way:\n1) 0 1 2 3 -\u003e We processed 4 vertices to get points 0 1 2 3\n2) 4 5 6 7\n\nWill affect these tests once vertexPipelineStoresAndAtomics\nis enabled:\ndEQP-VK.glsl.atomic_operations.*\n\nNote that these tests are affected because they wrongly assume\nvertices won\u0027t be processed more than once. These tests should\nstill get fixed.\n\nBug b/140294254\n\nChange-Id: Idb21085838317db7b7a6630a18de4d7284534429\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/36349\nPresubmit-Ready: Alexis Hétu \u003csugoi@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nTested-by: Alexis Hétu \u003csugoi@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "854c9352600c42df08d2741ead93d805f9715a2d",
      "old_mode": 33188,
      "old_path": "src/Device/Renderer.cpp",
      "new_id": "8b0ab36216e41e292d23e0df36588cfefae140ea",
      "new_mode": 33188,
      "new_path": "src/Device/Renderer.cpp"
    },
    {
      "type": "modify",
      "old_id": "c6e5c13f5b568163839256ba8ac1fff3f9dbc456",
      "old_mode": 33188,
      "old_path": "src/Device/VertexProcessor.cpp",
      "new_id": "72e4cf468b5713dfc5375b6ff196ba6055285416",
      "new_mode": 33188,
      "new_path": "src/Device/VertexProcessor.cpp"
    },
    {
      "type": "modify",
      "old_id": "66ba01d6441fcbb57cbf7ffc04633d18977f9957",
      "old_mode": 33188,
      "old_path": "src/Device/VertexProcessor.hpp",
      "new_id": "247e8a34b4a826ac5812cd8f77bafa220e9f35ac",
      "new_mode": 33188,
      "new_path": "src/Device/VertexProcessor.hpp"
    },
    {
      "type": "modify",
      "old_id": "8ada5d47ab9e7c020d2b4d330840837e4468a7c2",
      "old_mode": 33188,
      "old_path": "src/Pipeline/VertexRoutine.cpp",
      "new_id": "e43e96ba7cb415f9df4a285ee34fa5cd48c120f4",
      "new_mode": 33188,
      "new_path": "src/Pipeline/VertexRoutine.cpp"
    }
  ]
}
