commit | ff133c03b9f14358ef746386f7210ec8b1cedb34 | [log] [tgz] |
---|---|---|
author | Stephen White <senorblanco@chromium.org> | Tue May 14 05:40:58 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue May 14 05:40:58 2024 +0000 |
tree | 693445574c215aed76f8ef3e75824b8183585b88 | |
parent | 166c9d5d561d72bfbfacb99671d99675eb9e7fac [diff] |
OpenGL: fix spurious EGLSync on queue destruction. During Device::Destroy(), Queue::WaitForIdleForDestruction() is called. In the GL backend, this calls gl.Finish(). But the "GetGL()" call used to call gl.Finish() causes mHasPendingCommands to be set to true. Later in Device::Destroy(), TickImpl() is called one last time to release resources. In the GL case, since mHasPendingCommands is true, this inserts a new EGLSync which is never destroyed or waited on. The fix is to set mHasPendingCommands to false after gl.Finish(). Leaving no pending commands is the very definition of glFinish(), so it's safe to do. Bug: 340202279 Change-Id: I3625363018b564fd4409c957576ab9dfe5917d7f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/188061 Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h
that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h
version that Dawn implements.webgpu.h
.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.