)]}'
{
  "commit": "710ed0c99dd6e9d03771fd7411da63b58958444d",
  "tree": "6d9336e4c46ae6ebb0dbea0e38cfda7921ed6858",
  "parents": [
    "9b4b1f8af9cb48596aedd6461081f85efaa18766"
  ],
  "author": {
    "name": "Jiawei Shao",
    "email": "jiawei.shao@intel.com",
    "time": "Fri Sep 13 20:30:27 2024 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Sep 13 20:30:27 2024 +0000"
  },
  "message": "Add validations on `clip_distances` and maximum inter-stage location\n\nThis patch adds the validation on the use of `clip_distances` and\nthe maximum location of the inter-stage shader variables according\nto the latest WebGPU SPEC.\n\n`clip_distances` will not only consume inter-stage shader variable\nslots, but also consume the maximum location of inter-stage shader\nvariables, which is required by Vulkan. According to the Vulkan\nvalidation layer, the total number of inter-stage shader components\nis computed by the maximum location of all the inter-stage shader\nvariables, so we should reserve the locations for `clip_distances`.\n\nFor example, suppose the maximum location of the vertex outputs is\n30, and there is builtin position (4) and clip_distances with size\n1, so the Vulkan validation layer thinks the total vertex shader\noutput components is 129 (31 * 4 + 4 + 1) which is over the maximum\nnumber of the total vertex shader output components on Intel GPUs.\n\nBug: 358408571\nTest: dawn_unittests, dawn_end2end_tests\nChange-Id: If89cb10b63011dd34df71389411072b4a5cc5d18\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/206354\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "73aa23eaacdf9517986244873fedd42e7afd15c6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/ShaderModule.cpp",
      "new_id": "31b733130f5caac3a5996a6d63886f5ab9783c3c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ShaderModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "efcb1781eca466e159077d8fc39935fadefdd7c0",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/MaxLimitTests.cpp",
      "new_id": "01de04d68e8fe240beab0d43758ee02fd0907525",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/MaxLimitTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "5fdf41a22e4031dbac14e11c0f1630f066c1762d",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp",
      "new_id": "67b37f0b669db1ae64d7f56edc5fe1990f1dbd8b",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/validation/RenderPipelineValidationTests.cpp"
    }
  ]
}
