)]}'
{
  "commit": "4eeb0bd6e2dc3f608a079b7e62ff3fd3befccdef",
  "tree": "2c3e85ae891029cb239c6a4fb8244907d94a518c",
  "parents": [
    "c65ac40803c289104fa26156113ebfd37280dd7a"
  ],
  "author": {
    "name": "Stephen White",
    "email": "senorblanco@chromium.org",
    "time": "Wed Jan 24 22:30:52 2024 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jan 24 22:30:52 2024 +0000"
  },
  "message": "Implement push_constant-based firstIndex transform.\n\nThis transform offsets the vertex_index and/or instance_index builtin\nvariables by a user-supplied first_vertex and first_instance offset.\nThis is required for shading languages that use zero-based first_*\nvariables such as GLSL and HLSL.\n\nAlso, GLSL requires push constants to be wrapped in a struct, and the\nstruct to be emitted, but not emitted as an interface block. Thus,\nchange the \"skip_push_constants\" flag in the AddBlockAttribute\nto \"push_constants_wrap_only\", which causes push constants to be\nwrapped in a struct, but to not have the BlockAttribute added.\n\nBug: tint:2140\nChange-Id: I7ce7bb67b58efa110e91fc38d840e674adaf9d0b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/169461\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nCommit-Queue: Stephen White \u003csenorblanco@chromium.org\u003e\nReviewed-by: Austin Eng \u003cenga@chromium.org\u003e\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "666f6bce9b9b4664f0883bcb0abc9187f6dd965f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/RenderPipeline.cpp",
      "new_id": "eaecd187905b9088506689eecc31e13e52049968",
      "new_mode": 33188,
      "new_path": "src/dawn/native/RenderPipeline.cpp"
    },
    {
      "type": "modify",
      "old_id": "ee16c5152f7c4d9c1240296edaacf102956f762e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/RenderPipeline.h",
      "new_id": "987eae5531a34cd146ff42509873ef4043418de0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/RenderPipeline.h"
    },
    {
      "type": "modify",
      "old_id": "745e5c24bbc619a081422d8a321928b4be98a95f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/CommandBufferGL.cpp",
      "new_id": "578c13bc8a7f2c2baaf06dd551cadcca5414184e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/CommandBufferGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "eb4863bcef0417861eb9fefa5845091725833633",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/PipelineLayoutGL.h",
      "new_id": "e2ab80250f03d48964f213d0814807ef5acb88ec",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/PipelineLayoutGL.h"
    },
    {
      "type": "modify",
      "old_id": "0ce37924ff3a0b9372414ee5571ac0109065013b",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/ShaderModuleGL.cpp",
      "new_id": "821a35014d5fecf0209685d87bb71416367783be",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/ShaderModuleGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "162defa855e60d6ef018cd981724953132cb7e4f",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/DepthStencilCopyTests.cpp",
      "new_id": "dd0ca02b804b15383a871b9a3d6a04fe871a60f0",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/DepthStencilCopyTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "f1831e978b771bc381ac73d0ad35f4dd697d763d",
      "old_mode": 33188,
      "old_path": "src/tint/lang/glsl/writer/ast_printer/ast_printer.cc",
      "new_id": "1a6680640f98c5fee0180b7422456c70dda7a704",
      "new_mode": 33188,
      "new_path": "src/tint/lang/glsl/writer/ast_printer/ast_printer.cc"
    },
    {
      "type": "modify",
      "old_id": "c97026e5265bbc1ca5f13f03079ee7a3606a2acb",
      "old_mode": 33188,
      "old_path": "src/tint/lang/glsl/writer/common/options.h",
      "new_id": "1f5298f3ebea8148b6d2b8a0ad68d6bfb93500a4",
      "new_mode": 33188,
      "new_path": "src/tint/lang/glsl/writer/common/options.h"
    },
    {
      "type": "modify",
      "old_id": "4b1340ad4ee74458df21c7c143735b0c8893917d",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/ast/transform/BUILD.bazel",
      "new_id": "6229a94665a02795da2d39a1bb2614103abc5f17",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "11ddfaa66ae84e2cd35f6beb5310d2981bf48a9e",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/ast/transform/BUILD.cmake",
      "new_id": "068369ce8e65546fb7cbf8cbb5b4fa3bb2b410b3",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/BUILD.cmake"
    },
    {
      "type": "modify",
      "old_id": "463224051fd640252d64168d2409dcc3f5b2a426",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/ast/transform/BUILD.gn",
      "new_id": "b94227eddf483b0570753e8914e506c138594a75",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "607bf54c4684804ad8df7e38c55a72f7cb4cd22b",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/ast/transform/add_block_attribute.cc",
      "new_id": "82e07168521bbb6373fe05e463e72d78ec4b72f6",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/add_block_attribute.cc"
    },
    {
      "type": "modify",
      "old_id": "61a884dc50928b533e346933cec6c4c563e00d47",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/ast/transform/add_block_attribute.h",
      "new_id": "544e1ee01d0b12e9f4592d4ba29c207f8ec19093",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/add_block_attribute.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb64f6035f56bcdb7c694ecbd4c0af5f031d4370",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/offset_first_index.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa37559b390b538724338006047fd2dd83564b2e",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/offset_first_index.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "37a79a9c67ebfbf41ea96340ebd43b38dfe4dc00",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/ast/transform/offset_first_index_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6ed822ea7ef7b1f3e921b167f57c05eab809e00e",
      "old_mode": 33188,
      "old_path": "test/tint/var/uses/push_constant.wgsl.expected.glsl",
      "new_id": "aea31fbf3b652123898c4bc8dfceb1d90c0918eb",
      "new_mode": 33188,
      "new_path": "test/tint/var/uses/push_constant.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "704869e7c30b03858ee94803b51bde05135667d2",
      "old_mode": 33188,
      "old_path": "webgpu-cts/compat-expectations.txt",
      "new_id": "64687a72a924bd19405640e6d3121c7e1ff89cd4",
      "new_mode": 33188,
      "new_path": "webgpu-cts/compat-expectations.txt"
    }
  ]
}
