commit | 1ee9f6bf926084df65ec4d8d06ce6437575ddeeb | [log] [tgz] |
---|---|---|
author | Corentin Wallez <cwallez@chromium.org> | Tue Jun 25 17:30:19 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jun 25 17:30:19 2024 +0000 |
tree | ec51b9161e360c12fd277fede33fcf35a38df980 | |
parent | 3a5289ded0464c461cf0aad9eccc4a35b24344fd [diff] |
Reland "EGL: Move initialization of EGL inside a DisplayEGL class" This is a reland of commit 9fba7ea8e943cb9396c356c4becb6842ef0710d5 Two fixes were needed for this CL: - Do not call eglTerminate in Dawn as EGL may return the same display multiple times with eglGetDisplay, such that terminating the display in Dawn could terminate the display used by someone else as well. (This is a known design bug in EGL unfortunately). - Explicitly pass in the EGLDisplay in Chromium during GPU info collection. Previously Dawn tried to get a display using eglGetCurrentDisplay() but this seems brittle compared to passing the display explicitly. Original change's description: > EGL: Move initialization of EGL inside a DisplayEGL class > > The moves initialization and checks of EGLDisplays to be in its own > class instead of split across opengl::Backend and > opengl::PhysicalDevice. That class also contains data that's per EGL > connection such as the EGLDisplay and the procs. This removes the need > for opengl::Backend to return a single PhysicalDevice ever. > > The ContextEGL class now only deals with creating context and doing > MakeCurrent, with some of its validation checks moved to classes using > it. This will make it easier to dynamically handle EGL extension being > present (e.g. to support webgpu.h when EGL_KHR_image_base is not present). > > Finally the encapsulation in these classes is step towards supporting > more embedder APIs in the future (like GLX). > > Bug: 344814083 > Bug: 42241384 > Change-Id: I34d7c24c518a791da920a640a5764458073f976e > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/193160 > Commit-Queue: Corentin Wallez <cwallez@chromium.org> > Reviewed-by: Austin Eng <enga@chromium.org> > Reviewed-by: Stephen White <senorblanco@chromium.org> Bug: 344814083 Bug: 42241384 Change-Id: I76f904be88696a6a90b21e2c55637f3451054c00 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/194780 Auto-Submit: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Austin Eng <enga@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.