)]}'
{
  "commit": "e278515e002c281887dd4a8bdf4d2c8dc24696d4",
  "tree": "166208913a9bfb0a84e756de161d8f2f2725f74a",
  "parents": [
    "cd81fd71890c857e2767af6bc1c377b8815aec0a"
  ],
  "author": {
    "name": "Michael Ludwig",
    "email": "michaelludwig@google.com",
    "time": "Fri Jun 26 16:58:42 2026 -0400"
  },
  "committer": {
    "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "time": "Mon Jun 29 12:39:58 2026 -0700"
  },
  "message": "[graphite] Consolidate PreAlpha+PostAlpha shader logic\n\nPreviously ColorSpaceTransformPremul (unlike the more complex CS\ntransform snippets) was able to merge the unpremul branch and the\nforce-opaque/premul/no-op into a single if-else statement.\n\nWith PreAlpha+PostAlpha, there was one if-else for unpremul and\nforce-opaque and a separate always-on expression to handle premul\nand no-op. This seemed to have a negative impact on performance for\nsome devices: https://skia-perf.luci.app/t/?begin\u003d1781887113\u0026end\u003d1781887114\u0026subset\u003dall\n\nThis rewrites the logic so that PreAlpha can also support a premul\noperation, and in the case where the whole colorspace conversion\nwould have been PreAlpha+PostAlpha, it can just be PreAlpha instead.\n\nWhile this adds a couple of instructions to PreAlpha, it\u0027s hopefully\nnegligible. We\u0027ll see.\n\nBug: 509897459\nChange-Id: Ib5bafb13d4db27d135b16d8dfbd851d7a2e8c086\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1279896\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b9ed7ef36143ad7d231e51cab340a227b27b500",
      "old_mode": 33188,
      "old_path": "src/gpu/graphite/KeyHelpers.cpp",
      "new_id": "5e3714ec6f003f1c56d951a09e61c2e2e30c9858",
      "new_mode": 33188,
      "new_path": "src/gpu/graphite/KeyHelpers.cpp"
    },
    {
      "type": "modify",
      "old_id": "143a852485a3af6143c4399ea8c5081157483f3f",
      "old_mode": 33188,
      "old_path": "src/sksl/generated/sksl_graphite_frag.minified.sksl",
      "new_id": "340eed259c77272c36e3958f269ad3974abde44c",
      "new_mode": 33188,
      "new_path": "src/sksl/generated/sksl_graphite_frag.minified.sksl"
    },
    {
      "type": "modify",
      "old_id": "758410336c8ea293c7ae1b0515246fc552506f5a",
      "old_mode": 33188,
      "old_path": "src/sksl/generated/sksl_graphite_frag.unoptimized.sksl",
      "new_id": "903d0a0b7804447a3738b19b7954eaf804831e5d",
      "new_mode": 33188,
      "new_path": "src/sksl/generated/sksl_graphite_frag.unoptimized.sksl"
    },
    {
      "type": "modify",
      "old_id": "5a8e3aae2f64d6715cd2e1c800f4890c84c05d01",
      "old_mode": 33188,
      "old_path": "src/sksl/sksl_graphite_frag.sksl",
      "new_id": "5e6bdd6f3980e8b943f56fc52b3ef51539b78ae3",
      "new_mode": 33188,
      "new_path": "src/sksl/sksl_graphite_frag.sksl"
    },
    {
      "type": "modify",
      "old_id": "3f6199a578f1d46b6626eeb441e13e915a828a27",
      "old_mode": 33188,
      "old_path": "tests/graphite/precompile/AndroidPrecompileTest.cpp",
      "new_id": "dc7badbc349d188b2f8fcf97f229d6ccb485381d",
      "new_mode": 33188,
      "new_path": "tests/graphite/precompile/AndroidPrecompileTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "c75eea8d964daed376ea2b3b138948eade7519ec",
      "old_mode": 33188,
      "old_path": "tests/graphite/precompile/AndroidYCbCrPrecompileTest.cpp",
      "new_id": "d53aa9f033059511b540d3ab2f17e99a209ef255",
      "new_mode": 33188,
      "new_path": "tests/graphite/precompile/AndroidYCbCrPrecompileTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "e3845cebcf3753b3c4eca6b0abc056e68b4d7da9",
      "old_mode": 33188,
      "old_path": "tests/graphite/precompile/ChromePrecompileTest.cpp",
      "new_id": "1053b8622c72ac5b6d85767c481e2810d7d34909",
      "new_mode": 33188,
      "new_path": "tests/graphite/precompile/ChromePrecompileTest.cpp"
    }
  ]
}
