commit | ff8d22e5511fe86327231e2f1ad9e1952dd4be35 | [log] [tgz] |
---|---|---|
author | Tom Anderson <thomasanderson@chromium.org> | Thu Jan 30 03:19:16 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Jan 30 03:19:16 2020 |
tree | cf6402b71ecf25972395919fa1057fab0b605cb7 | |
parent | 839c13c6f2107bb915968a9470de5d25a27b71e7 [diff] |
Implement GpuMemoryBuffers for EGL and GLX Adds GMB support for Linux/X11. ANGLE support will be added in followup(s). For now, support on EGL/GLX is enabled when --enable-native-gpu-memory-buffers is passed. Main code additions: * GbmSupportX11: ui/gfx/linux/gbm_support_x11.* - Uses DRI3 to get an authenticated DRM fd. Creates a GbmDevice with it. * GLImageGLXNativePixmap: ui/gl/gl_image_glx_native_pixmap.* - Subclasses GlImageGLX. Uses DRI3 to get a GLX pixmap from a dma-buf. * ui/gl/gl_visual_picker_glx.* - Figures out which GLXFBConfigs should be used for corresponding gfx::BufferFormats. Only BGR(A) formats are supported by GLX. GMB support used to be routed through gpu::GpuMemoryBufferSupport, which is basically just a switch statement over the various gfx::BufferFormats and gfx::BufferUsages. With X11, GMB support needs to be determined at runtime, and in the GPU process (since it depends on the singleton GbmDevice and the GL implementation), so GMB support is put into gpu::GPUInfo, similar to how we're already doing with visual IDs. BUG=1031269 Change-Id: Ie254e6c5646073be0cb76d549c115be274e4ef46 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1984712 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: Martin Barbella <mbarbella@chromium.org> Reviewed-by: Mark Pearson <mpearson@chromium.org> Reviewed-by: Jonathan Backer <backer@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: kylechar <kylechar@chromium.org> Reviewed-by: Robert Kroeger <rjkroege@chromium.org> Cr-Commit-Position: refs/heads/master@{#736698}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .