)]}'
{
  "commit": "a924ffe70c8a3cd0e4d2d5cee2918b0d1c534f9b",
  "tree": "a48278ba227e71860932632e9b2cbde40443c498",
  "parents": [
    "009d129103eebe3eb60222971a3734c7274ee3c5"
  ],
  "author": {
    "name": "Stephen White",
    "email": "senorblanco@chromium.org",
    "time": "Fri Feb 04 16:41:33 2022 +0000"
  },
  "committer": {
    "name": "Tint LUCI CQ",
    "email": "tint-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Feb 04 16:41:33 2022 +0000"
  },
  "message": "GLSL: fix sample_index, sample_mask and bitcasts\n\nIn GLSL, gl_SampleID and gl_SampleMask[In] require the\nGL_OES_sample_variables extension, so output:\n\n\"#extension GL_OES_sample_variables : require\"\n\nin the header if those builtins is used.\n\nNote that extensions must be inserted before the default precision\ndeclaration, but helpers must be inserted after it, so we set a flag\nand emit extensions, then the precision declaration, then helpers.\n\nFurther fixes:\n- use gl_SampleMaskIn for input builtins, gl_SampleMask for output,\n  necessitating the addition of a storage class to GLSLBuiltinToString()\n- fix the handling of gl_SampleMaskIn: it\u0027s array\u003ci32\u003e in GLSL, not\n  array\u003cu32\u003e as in SPIR-V\n- centralize conversions for GLSL builtins used as input variables in\n  FromGLSLBuiltin()\n- implement bitcasts on assignment to GLSL builtin output variables,\n  centralized in ToGLSLBuiltin()\n- update the extension handling in the GLSL writer to check for both\n  sample_index and sample_mask.\n- call UnwrapRef() in GLSL\u0027s EmitBitcast(). In the test case, we were\n  not recognizing the argument as a uint, yielding float() instead of\n  uintBitsToFloat().\n\nBug: tint:1408, tint:1412, tint:1414\n\nChange-Id: Ie01541eb6e7cdf4e21347341f988bff916346797\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/78920\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nCommit-Queue: Stephen White \u003csenorblanco@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e00c1a0fa60566d97bd21bebf39616c5e5a3aa1a",
      "old_mode": 33188,
      "old_path": "src/transform/canonicalize_entry_point_io.cc",
      "new_id": "f62ce674e66a2b96ad6e976f7dad328fad89efe8",
      "new_mode": 33188,
      "new_path": "src/transform/canonicalize_entry_point_io.cc"
    },
    {
      "type": "modify",
      "old_id": "38bd91d46310d4d02e91d5144f8c49ef3bd5c1ab",
      "old_mode": 33188,
      "old_path": "src/transform/canonicalize_entry_point_io_test.cc",
      "new_id": "23030cbf1ebd880754dd1b6ae92895a71be3de87",
      "new_mode": 33188,
      "new_path": "src/transform/canonicalize_entry_point_io_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a5e8941e76001b0f949f04cc6762ee78a23709da",
      "old_mode": 33188,
      "old_path": "src/writer/glsl/generator_impl.cc",
      "new_id": "8857f8ad126b159fc1a33e7de1fd0a9c06dacb03",
      "new_mode": 33188,
      "new_path": "src/writer/glsl/generator_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "9bdba666698de01a961946f0041cfdbc2628ca47",
      "old_mode": 33188,
      "old_path": "src/writer/glsl/generator_impl.h",
      "new_id": "92667d166ac61a1af70e1f0f307ed0e5aebc977b",
      "new_mode": 33188,
      "new_path": "src/writer/glsl/generator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "1b1ec51ee5084b47e274281f3f592a9b91cc0681",
      "old_mode": 33188,
      "old_path": "test/bug/tint/1076.wgsl.expected.glsl",
      "new_id": "7e392e55f202cb4a5b7db81d114db13002bfaf12",
      "new_mode": 33188,
      "new_path": "test/bug/tint/1076.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "fa8c48e723caf163fdd33bb527d423e4bac87b2d",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_input_builtins.wgsl.expected.glsl",
      "new_id": "22ad777e4aea10cc00d990e0eaef78115f6281c1",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_input_builtins.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "9ac60b919dd31338957f009b396f7a7fd2c5c229",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl",
      "new_id": "2f0052e6a590b9d250b48fa533622c5b6dcaa30e",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "7c742041d7b63a0b384d600270e3553a66f100dc",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_input_mixed.wgsl.expected.glsl",
      "new_id": "9054ebbc592e648d32fa0ed23d927ec1c34023ae",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_input_mixed.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "1d587241d3b8973877d16397708dac502f778484",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_output_builtins.wgsl.expected.glsl",
      "new_id": "e3faacbb3b346d7ec1f2e67e3fadfd7ac3dc9e8b",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_output_builtins.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "0dce88a69f0a2331e6276ab70634d339a1f09fd0",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl",
      "new_id": "877fb388602fcec5bbb2c0932a412a2251e6e445",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl"
    },
    {
      "type": "modify",
      "old_id": "2344346b3d05510ca323025b5ee65c22f548c826",
      "old_mode": 33188,
      "old_path": "test/shader_io/fragment_output_mixed.wgsl.expected.glsl",
      "new_id": "df40f8fad4efd153547dcf35f3cb4cb542903a6f",
      "new_mode": 33188,
      "new_path": "test/shader_io/fragment_output_mixed.wgsl.expected.glsl"
    },
    {
      "type": "delete",
      "old_id": "2b992911d0ab0f62a91f0fe208e5fbbb5bf6fd35",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "44302f45b87e21fda159826318f265446d301df3",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b6cf43f26dd3bc7d9eb977a9c93c2c9dcfab0203",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "48269aaf5ed8b61eae94f09e4c06cc3647869952",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b0827e81275923ce95a94a475f543096c0a98e73",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b0827e81275923ce95a94a475f543096c0a98e73",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b0827e81275923ce95a94a475f543096c0a98e73",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9a1398c567309ffb26a539c253caea3957d1df21",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9a1398c567309ffb26a539c253caea3957d1df21",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9a1398c567309ffb26a539c253caea3957d1df21",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5377a90a7140e5805ac410487b81eabade2a18b4",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5377a90a7140e5805ac410487b81eabade2a18b4",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "883f06b9845be26a69b9e060d014b7da44813e13",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "efc266d3d434992eb8fabe81f2518d22348d5d48",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "efc266d3d434992eb8fabe81f2518d22348d5d48",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "760f16f82e8783b42dd23188ac600f3f4fd20cee",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "760f16f82e8783b42dd23188ac600f3f4fd20cee",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3bb9956aa0c8958328d0ca6bebe5e6ad1866c341",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3bb9956aa0c8958328d0ca6bebe5e6ad1866c341",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3bb9956aa0c8958328d0ca6bebe5e6ad1866c341",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "673165fa68bf358bcd9e53fad0be727b54b40bf1",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "673165fa68bf358bcd9e53fad0be727b54b40bf1",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "673165fa68bf358bcd9e53fad0be727b54b40bf1",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "673165fa68bf358bcd9e53fad0be727b54b40bf1",
      "old_mode": 33188,
      "old_path": "test/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.glsl",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
