)]}'
{
  "commit": "bdea3d0e47c9c28c8ed405af6fc2e9eab9426eab",
  "tree": "f073fa27a41aa079ef3940337c40c5bc706e18f0",
  "parents": [
    "fc8b0fe8f16ad8a8fa57564da438ab6fcf2f163b"
  ],
  "author": {
    "name": "Stephen White",
    "email": "senorblanco@chromium.org",
    "time": "Mon Feb 23 06:37:29 2026 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Feb 23 06:37:29 2026 -0800"
  },
  "message": "OpenGL backend: implement deferred GL calls\n\nIf the gl_defer toggle is enabled, defer all GL calls by capturing them\nin a lambda for later execution, via Quyen\u0027s EnqueueGL() infrastructure.\n\nFor destruction, implement a templated EnqueueDestroyGL(). If called\nfrom the destructor, this will get the object\u0027s handle immediately and\ncapture that for destruction, or pass the object handle getter to the\ndeferred lambda in case the object creation has also been deferred and\nthe handle is not yet known. The DestroyImpl()\u0027s DestroyReason is used\nto know which codepath to take.\n\nEnable Buffer, Copy, and TextureZeroInit tests with gl_defer on. Enable\nmost Multithread tests with both gl_defer and\ngl_allow_context_on_multi_threads passes. Multithreaded mapping tests\nare not enabled on GL, since they are exhibiting some flake and may be\nexposing a race.\n\nBug: 451928481\nChange-Id: I24fa1d8ca885a6bfbb6abefa22dc9cac2733c4e0\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/281095\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Quyen Le \u003clehoangquyen@chromium.org\u003e\nCommit-Queue: Stephen White \u003csenorblanco@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "25ab4bef4b2175dae132a79be9d52bf808aa1ada",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/BufferGL.cpp",
      "new_id": "d0a5a845797d7b156fc0edb2754fbeb78c65c3aa",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/BufferGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "3669553263df2dcaeb852697b6c95c8a394afc62",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/BufferGL.h",
      "new_id": "5439859d7cb658167ee4691a8e5f1233a2d1e921",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/BufferGL.h"
    },
    {
      "type": "modify",
      "old_id": "f060cf615a5341a0dcbe181f02b67a7bd778e6e6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/ComputePipelineGL.cpp",
      "new_id": "68b143a54b8cd661796ee9d866f465d594e398d1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/ComputePipelineGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "98a0807c49da66a294d9b919caf2c3c03d729724",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/ComputePipelineGL.h",
      "new_id": "1ad6ba7396bace13aad5e4274b7d3b8b592c01fa",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/ComputePipelineGL.h"
    },
    {
      "type": "modify",
      "old_id": "fb56387fe6c7262310d92d48340d5321da395d0a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/DeviceGL.cpp",
      "new_id": "2d1b299da769d11a1fd84882c068d09c096c2526",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/DeviceGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "34c7491a0e9ab970b2dbc035852fa819607b4879",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/DeviceGL.h",
      "new_id": "d47bab338fb301f026e128a199c09c5b1034360a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/DeviceGL.h"
    },
    {
      "type": "modify",
      "old_id": "6f43ea66c026a87103e6e2018069504ea90bd0dd",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/PhysicalDeviceGL.cpp",
      "new_id": "d9732fb3c3d2cf91f1a51569385ae494f9e00b0c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/PhysicalDeviceGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "cbbe6d4cffdd50a260f13b0f539968ba63261b88",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/PipelineGL.cpp",
      "new_id": "17935e9bee5e6d91a219f71eaa04692d88c3bf2b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/PipelineGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "4cd9ae3db61ed34d048e261ffb66391e2be14efa",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/PipelineGL.h",
      "new_id": "af53c55dc2e3e2d6bf8e6c52f40f2f86ab8b5c05",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/PipelineGL.h"
    },
    {
      "type": "modify",
      "old_id": "81e1b6e647fd8930be7911d439105c9ba8da2aa5",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/QuerySetGL.cpp",
      "new_id": "5b58c16c1cb1055e795169bdfa78431d588a5e0c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/QuerySetGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "5e1c1cb27a62e94b01a455d1234a1b1b773e6be4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/QuerySetGL.h",
      "new_id": "03c6131b0a851b58849a1f91f6804c9fb7c0c9ad",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/QuerySetGL.h"
    },
    {
      "type": "modify",
      "old_id": "bd447883eece69932b0638efe50164d4d1ab5e37",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/QueueGL.cpp",
      "new_id": "a6ff6853be86803eb86f7fb5c8c228320270d149",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/QueueGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "851ed31f07dcb68b0a1ae822d45ad13498a1659a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/RenderPipelineGL.cpp",
      "new_id": "aa355e0ea1c0fbf404edcecda0f8b0cb62a377ee",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/RenderPipelineGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "6b619b60192b45c988a0a6c15fc805474a693b18",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/RenderPipelineGL.h",
      "new_id": "7f9b5d8eac33e18640e79d777045645566531ff7",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/RenderPipelineGL.h"
    },
    {
      "type": "modify",
      "old_id": "7ee6f5878e37af450783337c9b23f79b8f6ddfb4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/SamplerGL.cpp",
      "new_id": "969db3ebf13e58bb03430a8bd7458b923b6637b7",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/SamplerGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d7506dbe59929f61011a69f9ea744d8f1777010",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/SharedTextureMemoryEGL.cpp",
      "new_id": "bfef65eb2e5f2b93d0c404d6406a67d2de76d572",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/SharedTextureMemoryEGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "1698cf2ffba0bf9db8c12f107f8b020277b74130",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/SharedTextureMemoryEGL.h",
      "new_id": "70a79deee4773196cf1c874776035959e2c6f38a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/SharedTextureMemoryEGL.h"
    },
    {
      "type": "modify",
      "old_id": "6e37ad294fc150c73f693cb4d63661bcfa0ced6e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/SharedTextureMemoryGL.h",
      "new_id": "af8893a1cfd912f940e216e179801100962cf65a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/SharedTextureMemoryGL.h"
    },
    {
      "type": "modify",
      "old_id": "27a69a293a0f36efd361edebf5e95ac009ccabe9",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/TextureGL.cpp",
      "new_id": "783fa9296773d40599dfc32aad1c781a14d04f72",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/TextureGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "5d3c3b12dc603ed1eebd04743404c4eca2e38b9f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/TextureGL.h",
      "new_id": "e03c7d2d685e8beb4d059e2444e644df9bfbecb6",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/TextureGL.h"
    },
    {
      "type": "modify",
      "old_id": "82131b95aa2ca9d2273440a10f1709f976497c62",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BufferTests.cpp",
      "new_id": "3c091978ce5bb236a6c343b5aacf309be7a303fd",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BufferTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "410a6576239cd4b09277dccb521867bf3d56fc38",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/CopyTests.cpp",
      "new_id": "33981d5bcc45fed9e47640fbbebd5840580c9d92",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/CopyTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "04b328b06b64d1ac9f214728a73e9e85f4fbdbad",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/MultithreadTests.cpp",
      "new_id": "c7ef46fea972909eddff1847bbb28ab2fb5c3bad",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/MultithreadTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "c0373fad8fc1d16320484181e513047f845087f0",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/TextureZeroInitTests.cpp",
      "new_id": "5851e5f487874bf041b0e40f46fa91e21a10fc08",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/TextureZeroInitTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "42e4e56741ae29069c10059afe1e52410fc8b4dc",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/EGLImageWrappingTests.cpp",
      "new_id": "a03dd3f516b2bba50fd5fee99ee4e513b2617c64",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/EGLImageWrappingTests.cpp"
    }
  ]
}
