)]}'
{
  "commit": "8adc53ec0ee4bbafbd9925024df38437c0fcf88a",
  "tree": "29dbe301f7a5054fc7cd14ac88c98973f4017a39",
  "parents": [
    "193565807f7fd2a2c14e21b44c545cc03ebe134f"
  ],
  "author": {
    "name": "Mike Klein",
    "email": "mtklein@google.com",
    "time": "Thu Sep 06 11:25:21 2018 -0400"
  },
  "committer": {
    "name": "Mike Klein",
    "email": "mtklein@google.com",
    "time": "Mon Nov 05 17:00:54 2018 +0000"
  },
  "message": "clamp after color pipeline when dst is normalized\n\nMost code working with unorm values doesn\u0027t expect to see out-of-gamut\ncolors, but unorms _can_ store some out-of-gamut colors when\npremultiplied and alpha is \u003c1.\n\nClamping after the color (\u003d shader + color filter) pipeline prevents us\nfrom creating those values.  This CL does appear to fix the problem we\nwere seeing with xfermodes2 in the narrow config.\n\nI\u0027ve kept scalepixels_unpremul working by using our old trick,\nremembering that unpremul-\u003eunpremul involves the same steps as\npremul-\u003eopaque.  We\u0027ll take the unpremul pixels, pun them to premul to\navoid data loss, scale them up, and then avoid unpremul on the way out\nby punning the surface as opaque.  It all kind of just barely hangs\ntogether.\n\nBug: chromium:867813\nChange-Id: I677d00ecfe4692ba7799ae963d8b8d1ccd4b00ac\nReviewed-on: https://skia-review.googlesource.com/152200\nCommit-Queue: Mike Klein \u003cmtklein@google.com\u003e\nReviewed-by: Brian Osman \u003cbrianosman@google.com\u003e\nAuto-Submit: Mike Klein \u003cmtklein@google.com\u003e\nReviewed-on: https://skia-review.googlesource.com/c/164624\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bfbb7a4e5479c6d2f603586d99c6e60f60f1f54a",
      "old_mode": 33188,
      "old_path": "src/core/SkPixmap.cpp",
      "new_id": "a799e5f0e0c031f14d5eb9c27b6a4dd964b23837",
      "new_mode": 33188,
      "new_path": "src/core/SkPixmap.cpp"
    },
    {
      "type": "modify",
      "old_id": "3e8399e56b046fae719bbee4ef0a58198bd06d76",
      "old_mode": 33188,
      "old_path": "src/core/SkRasterPipelineBlitter.cpp",
      "new_id": "0ef37a8378caaa2ef23625423302ee00a2e65519",
      "new_mode": 33188,
      "new_path": "src/core/SkRasterPipelineBlitter.cpp"
    }
  ]
}
