)]}'
{
  "commit": "72d65a48121bccab30176e29f7f62fa4e2dfebab",
  "tree": "b435162b9be555432d13e454b36d1e033f92289d",
  "parents": [
    "b0e3dd5ac50f4de9803c3c5aa2843a5dd1c88256"
  ],
  "author": {
    "name": "Shrek Shao",
    "email": "shrekshao@google.com",
    "time": "Mon Oct 19 17:53:17 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Oct 19 17:53:17 2026 -0700"
  },
  "message": "[opengl] Check for unchecked GL errors before data is app-visible\n\nApp-visible data must not contain incorrect data caused by GL\nerrors. Errors returned by GL work lose the device, but when asserts\nare disabled DAWN_GL_TRY doesn\u0027t call glGetError, so failed GL calls\ngo undetected and frontend state assuming their success (e.g. a\ntexture or buffer marked initialized after an upload or a lazy\nclear) can expose uninitialized memory.\n\nRather than checking every GL call, check for pending GL errors\n(CheckPendingErrorBeforeUserVisibleData) where data becomes visible\nto the application: after Queue::Submit\nand when exporting a shared fence (EndAccess). The\ncheck after Submit also covers present.\n\nDAWN_GL_TRY_ALWAYS_CHECK no longer\nclears errors left by earlier unchecked calls, so they are reported\ninstead of silently dropped before reaching these checks.\nThis also covers buffer mapping.\n\nExpected errors from requesting unsupported extensions (with\ngl_force_es_31_and_no_extensions) are discarded where they are\ngenerated.\n\nWith gl_force_es_31_and_no_extensions, only extensions listed in\nGL_REQUESTABLE_EXTENSIONS_ANGLE are requested, so that requesting\nunsupported extensions doesn\u0027t leave GL errors pending.\n\nNo measurable perf impact in dawn_perf_tests on Mesa radeonsi GLES\n(UniformBufferUpdatePerf/UsageTrackingPerf, median -0.4%).\n\nBug: 536539561\nChange-Id: I5e90c26662cbffa4a79d97e19627e7feed202388\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/351016\nCommit-Queue: Shrek Shao \u003cshrekshao@google.com\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "45151f05e1457178cfa190430bafcb4c4d0174a9",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/ContextEGL.cpp",
      "new_id": "84e37621f35d9b9b2b06ac99e2839c4b6086ff79",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/ContextEGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "291a511be9e669d5e5ca04352ea0a79fa0426805",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/QueueGL.cpp",
      "new_id": "3de996098cbdd34926dc56623954f437b19af858",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/QueueGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "53e2450c6887900c9ccffb055b26c6602d236e97",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/UtilsGL.cpp",
      "new_id": "4b7ad544a073e7ccf0774a3f22c1caa3bc05f753",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/UtilsGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "7cab0ba81c958210ef85d8ce2af0b12041cca3d4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/opengl/UtilsGL.h",
      "new_id": "9556d22323534f0555bc978cac19b55a39d5e432",
      "new_mode": 33188,
      "new_path": "src/dawn/native/opengl/UtilsGL.h"
    },
    {
      "type": "modify",
      "old_id": "bd0a255087123010a9aacda71b91da29b51c89b2",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/BUILD.gn",
      "new_id": "cadbe6a8bc7bc68b467e637c81fcb492cc311f93",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "d03b9528120183d77ca00ee69de7b28585a6511d",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/CMakeLists.txt",
      "new_id": "f5678d235277c68fa517afcf2bf6fbcf9793e44c",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "edc3cc424a1c9f8a5f7a2c3298a635113c8fc9a3",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/GLUncheckedErrorTests.cpp"
    }
  ]
}
