)]}'
{
  "commit": "d3d226df6678f05d463354f02a95cfaeb33e6af0",
  "tree": "aa982776c6f1cf12c9e85b4eba2ec6d057096d95",
  "parents": [
    "0b643a101034e9dd54ce21a356df66a49f536289"
  ],
  "author": {
    "name": "Sunny Sachanandani",
    "email": "sunnyps@chromium.org",
    "time": "Tue Jul 25 03:17:24 2023 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jul 25 03:17:24 2023 +0000"
  },
  "message": "d3d11: Use D3D11 multithread protection\n\nWith Graphite on Dawn D3D11 backend, Chrome\u0027s media stack uses the same\nD3D11 device as Graphite and has no way of synchronizing access to the\nimmediate context which is otherwise protected internally in Dawn using\na device scoped mutex.\n\nUsing ID3D11Multithread::SetMultithreadProtected(TRUE) enables locking\nin D3D11 which helps with this, but it has significant overhead since it\nacquires/releases a mutex for every API call. However, ID3D11Multithread\nprovides Enter/Leave methods which allow putting entire sequences of\ncalls in a critical section minimizing the overhead of using the mutex.\n\nThis CL does the following:\n\n1) Call SetMultithreadProtected(TRUE) if D3D11MultithreadProtected\n   feature is enabled.\n\n2) Provide a ScopedCriticalSection helper for CommandRecordingContext\n   that calls Enter/Leave. This is used by d3d11 CommandBuffer::Execute\n   to mark the entire command processing loop as a critical section.\n\n3) In TickImpl, add the debug layer error collection call to before\n   NextSerial so it\u0027s not skipped if NextSerial fails.\n\nBug: dawn:1927, chromium:1464550\nChange-Id: Ic0a3185d9e3d623a82058142fef4e010da054125\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142540\nAuto-Submit: Sunny Sachanandani \u003csunnyps@chromium.org\u003e\nReviewed-by: Austin Eng \u003cenga@chromium.org\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nCommit-Queue: Sunny Sachanandani \u003csunnyps@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "72908b72d63d8365234855ab860a721d9c8a6cde",
      "old_mode": 33188,
      "old_path": "dawn.json",
      "new_id": "c306b7cabf535f19c427c547cf15d6f3a35c8024",
      "new_mode": 33188,
      "new_path": "dawn.json"
    },
    {
      "type": "modify",
      "old_id": "b50e22dffca038f3d1325f9cad92a67fe4aac0ed",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Features.cpp",
      "new_id": "33a9d42daa0c19b2f2116f5e3d19a003166d28b0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Features.cpp"
    },
    {
      "type": "modify",
      "old_id": "7a2fc2d1c4d38fa01257911aa756a37359c4d36f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Features.h",
      "new_id": "af9347979878be4148e0ffcf38b074a598dba967",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Features.h"
    },
    {
      "type": "modify",
      "old_id": "09b25cbbc4a7281543817c6a8612e63c06cda75e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/CommandBufferD3D11.cpp",
      "new_id": "dd87fa0692db087071a23f7377f051c6fcafa651",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/CommandBufferD3D11.cpp"
    },
    {
      "type": "modify",
      "old_id": "8500f58410a82b479ac95b1aa5748f4504ab6650",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.cpp",
      "new_id": "76b41578535f838d5641a27553c06ea8ddbf2312",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.cpp"
    },
    {
      "type": "modify",
      "old_id": "7ceb3e4a747ec040cc848aa64917353b188a49ce",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.h",
      "new_id": "6e72d8810d0e933f4152ccc906d98fa962828d0a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.h"
    },
    {
      "type": "modify",
      "old_id": "18c9c947ae9bc43243cd05da4b52eec986949ea0",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/DeviceD3D11.cpp",
      "new_id": "74a5cd30809abd78fca4db14f909825eed98881d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/DeviceD3D11.cpp"
    },
    {
      "type": "modify",
      "old_id": "b6e2a08396fab014dce2d8c54b9a1e31d3ad4e96",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/PhysicalDeviceD3D11.cpp",
      "new_id": "d30825e605db57a20596f649bee74c3462c0ca74",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/PhysicalDeviceD3D11.cpp"
    },
    {
      "type": "modify",
      "old_id": "416b63fc15930c8166181132d5d70bd81d7d3be1",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/SupportedFeatures.cpp",
      "new_id": "2710f01569dad4a090e5fa4b6f11c1d7720f55f8",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/SupportedFeatures.cpp"
    }
  ]
}
