)]}'
{
  "commit": "ef55c4e738de0e55680bb9e515c9f6e91ecf386f",
  "tree": "6420a2f9132abe2e9922856d4575c81fdd6bcb15",
  "parents": [
    "c03ce008b9fe5056e3dc225473602419e987e94c"
  ],
  "author": {
    "name": "Chris Forbes",
    "email": "chrisforbes@google.com",
    "time": "Sun Sep 08 14:17:43 2019 +0100"
  },
  "committer": {
    "name": "Chris Forbes",
    "email": "chrisforbes@google.com",
    "time": "Fri Nov 08 22:11:28 2019 +0000"
  },
  "message": "Fix PointCoord builtin\n\nThere were two bugs here:\n\n- Across a 2x2 pixel quad, we were producing a uniform PointCoord value.\n  This is not correct, and causes trouble even for size 1 points if the\n  derivative of the PointCoord value is ever used, or if the non-helper\n  lane is not lane 0 (in which case the live lane may end up having\n  PointCoord values outside [0,1].)\n\n- SetupRoutine was using the clipspace position of the vertex. Xf,Yf\n  are specified to be in screenspace. It\u0027s possible to do this in a\n  less redundant way, but currently we don\u0027t have unrounded vertex\n  positions in screenspace available in the setup program. Just\n  reproject for now, as we do in clipping paths etc. Note that we only do\n  this if we\u0027re drawing points, so most (filled triangle) draws should\n  not incur any additional cost.\n\nBug: b/140680704\nTest: dEQP-VK.glsl.builtin_var.simple.pointcoord*\nChange-Id: If006cc92b86673b6bb747cf60f60e0ed46f5e8e3\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/36115\nTested-by: Chris Forbes \u003cchrisforbes@google.com\u003e\nPresubmit-Ready: Chris Forbes \u003cchrisforbes@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d38e245c50f64b3ccfb71d9d3ee75beb93730fc7",
      "old_mode": 33188,
      "old_path": "src/Pipeline/PixelProgram.cpp",
      "new_id": "ba904c1fd7217b95ca6e09a36e5958f78ab418a5",
      "new_mode": 33188,
      "new_path": "src/Pipeline/PixelProgram.cpp"
    },
    {
      "type": "modify",
      "old_id": "3627220cc7a28759cb3529b789876f0281108679",
      "old_mode": 33188,
      "old_path": "src/Pipeline/SetupRoutine.cpp",
      "new_id": "2f7aab8baf65d1ada4275f4d5cf5e968b75dc861",
      "new_mode": 33188,
      "new_path": "src/Pipeline/SetupRoutine.cpp"
    }
  ]
}
