)]}'
{
  "commit": "c294f092edae33d036dee4b8640f5c3560fc5da2",
  "tree": "433892fec93be2dc59ef330ef18f000c2731a5bf",
  "parents": [
    "2f6e3f50f991475f6bfd5dcbdcf65460bbadd02a"
  ],
  "author": {
    "name": "James Price",
    "email": "jrprice@google.com",
    "time": "Wed Aug 19 09:02:55 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Aug 19 09:02:55 2026 -0700"
  },
  "message": "[spirv] Add workaround for Xclipse bug\n\nA certain sequence of bitwise operations followed by two select\nbuiltins produces incorrect results on Xclipse GPUs. Guidance from\nSamsung is that we can avoid the broken optimization by emitting `x \u003c\n1u` instead of `x \u003d\u003d 0u`.\n\nAdd a new transform that does this, and add a Dawn E2E test to test\nit. Guard the workaround on driver version \u003c 25.x, since the issue is\nfixed in newer drivers.\n\nFixed: 542268656\nChange-Id: Ibfe7557a81e9483bcf7be64477e69318b9bc6658\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330255\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\nReviewed-by: Brandon Jones \u003cbajones@chromium.org\u003e\nCommit-Queue: James Price \u003cjrprice@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f477a1e84cb04a2893ef2cd67619101ca643d500",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.cpp",
      "new_id": "46a8107c16912bf0b5c9ea0e4b6fd19486ce187f",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1ef6c16de91e8e71269d0b48645baef162d80df",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.h",
      "new_id": "18e9a3df6e6cab7b2b7ce7541eb098802e72617c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.h"
    },
    {
      "type": "modify",
      "old_id": "ab41f17dfd5afb64af684a6fabd58efed6d4640c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp",
      "new_id": "081b43442167a6357add2896d220afdf091c6420",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "6f9c2066dddd2841fd5de49c4d912ec1e0c944e6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp",
      "new_id": "6f6bd1633ca716f7f766c34ddd42ef6fa30cf760",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4776f9d90c48cfde37e9bcff54f4ba7a67c7a0a",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/ShaderTests.cpp",
      "new_id": "cd990d1451c57e5dd563a9a25cf337e73b8d59c5",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/ShaderTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "4cdf4d7b26b23c6c3c49fb9dd6a1e1716ff6c824",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/common/options.h",
      "new_id": "982533eccbccc3625218ecdf651b95b88dc317db",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/common/options.h"
    },
    {
      "type": "modify",
      "old_id": "791396f9cb1c95e5f90461b01a55e169b8b8e631",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.bazel",
      "new_id": "0d8fdb1f476cece9748395a4d706e11d1cfbaf7a",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "fb9fc634e2e586c083f9551bfcd687e5dadd641d",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.cmake",
      "new_id": "17014451bdcfe27870ecd054d7cd93de1a9468b2",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.cmake"
    },
    {
      "type": "modify",
      "old_id": "9dd1b094f899803b2c0b6107fafde361b33737a7",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.gn",
      "new_id": "547e663d3a2ebb532c9f652478f188dc25661eee",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "6ba95794bf6232a560098150fd9767366ca4fd84",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/raise.cc",
      "new_id": "3ae1b29590f9d4779d0dc226083e0a7af3839417",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/raise.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e00faa91d25535f3d9fab3143f9cc867d1696392",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/replace_unsigned_compare_zero.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9badf41e993808bad16a31f3cb628c48c0639ce7",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/replace_unsigned_compare_zero.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34b71ad4a801f20ab19c566cb36564f5c277482d",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/replace_unsigned_compare_zero_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6412570d67e6700a67c528722455570230ab19be",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/writer_fuzz.cc",
      "new_id": "ffff431edc9d56c9bd652bccf43d992ec7e79bbe",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/writer_fuzz.cc"
    }
  ]
}
