)]}'
{
  "commit": "7ab028c1354171bbd4d41cefa1afee7676d69abe",
  "tree": "d52e125aa6c9219b1a8a3a87ad1b5dfc254a84ef",
  "parents": [
    "887efdf0f98e329869c080f1faba2a812873399a"
  ],
  "author": {
    "name": "Natalie Chouinard",
    "email": "chouinard@google.com",
    "time": "Fri May 08 09:40:06 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 08 09:40:06 2026 -0700"
  },
  "message": "[tint][spirv] Support f16 Framebuffer Fetch\n\nThis change enables Framebuffer Fetch on Vulkan to be enabled alongside\nf16 support. Vulkan does not allow OpTypeImage to have an f16 sampled\ntype, so f32 is used instead and the OpImageRead is decorated with\nRelaxedPrecision.\n\nAs a follow up, RelaxedPrecision decorations should also be applied to\nthe chain of lets/swizzle instructions that lead up to the convert back\nto f16 (crbug.com/510801348).\n\nBug: 493892934\nChange-Id: I614c87f7f33b6e3399ce6681ea8163256a0ab5d4\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/307255\nCommit-Queue: Natalie Chouinard \u003cchouinard@google.com\u003e\nReviewed-by: James Price \u003cjrprice@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7c53cac2abf52fda4650c6722537d16b0a590390",
      "old_mode": 33188,
      "old_path": "docs/dawn/features/framebuffer_fetch.md",
      "new_id": "a3235edd34861eaa74357f24e375e1a520aa6a03",
      "new_mode": 33188,
      "new_path": "docs/dawn/features/framebuffer_fetch.md"
    },
    {
      "type": "modify",
      "old_id": "7cceef02070e653ceccd14d4acbfae390d2b841e",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/analysis/relaxed_precision_decorations.cc",
      "new_id": "1c1d73029324ad6ba654175dde85452b701f43ba",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/analysis/relaxed_precision_decorations.cc"
    },
    {
      "type": "modify",
      "old_id": "d8dbbcf094c8d120b0426d948242a0fc947f4ab4",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/analysis/relaxed_precision_decorations_test.cc",
      "new_id": "49f857855cf42a660ec69671ffa3f1649355e643",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/analysis/relaxed_precision_decorations_test.cc"
    },
    {
      "type": "modify",
      "old_id": "279b223998281a19ea408222f6575305037de550",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/shader_io.cc",
      "new_id": "a15a249b909147e2e992a13657d2d9b489d4d273",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/shader_io.cc"
    },
    {
      "type": "modify",
      "old_id": "3b6d6f37d0ae4a1f8dc4b874f0f9a527ee580c1c",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/writer.cc",
      "new_id": "b394a792cf6e519684500a0fe1fb69106e2c3a86",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/writer.cc"
    },
    {
      "type": "modify",
      "old_id": "c6376379125b5d628afdd24bb95a9329104acb5c",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/framebuffer_fetch/multiple_outputs/f16.wgsl.expected.spvasm",
      "new_id": "ff36d50ea827ea4abc9244af65b8ce62f1310e62",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/multiple_outputs/f16.wgsl.expected.spvasm"
    },
    {
      "type": "modify",
      "old_id": "c6376379125b5d628afdd24bb95a9329104acb5c",
      "old_mode": 33188,
      "old_path": "test/tint/extensions/framebuffer_fetch/one_output/f16.wgsl.expected.spvasm",
      "new_id": "deb1f113446526f1398bfebd1e03e4ed7fdfb502",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01a0d131748404a01a301a967b9a6cb648affafe",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "188634d51c6f3e6803d19047b1bcfffffbfbbebf",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.dxc.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "188634d51c6f3e6803d19047b1bcfffffbfbbebf",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.fxc.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "442e60c18992124815aff3b2f1a6e2a1cdcf4cda",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "008140cb49ffbb2839ed5920ace9a7ae5e945ee8",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "660384f75f04705a48b549bed702eb7fc07ec1cd",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1475528f4ea09f7d89bf438585ef37d0eed64505",
      "new_mode": 33188,
      "new_path": "test/tint/extensions/framebuffer_fetch/one_output/f16_scalar.wgsl.expected.wgsl"
    }
  ]
}
