Closed Bug 1954446 Opened 1 year ago Closed 1 year ago

Create DMABuf buffer by EGL_dmabuf_export for NVIDIA

Categories

(Core :: Widget: Gtk, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
138 Branch
Tracking Status
firefox138 --- fixed

People

(Reporter: stransky, Assigned: stransky)

References

(Blocks 1 open bug)

Details

Attachments

(5 files)

Create DMABuf buffer by EGL_dmabuf_export for NVIDIA as we can't use GBM for it.

This may involve RGBA buffers used for regular direct rendering too.

Attached patch wip.patchSplinter Review
Assignee: nobody → stransky
  • Split DMABufSurfaceRGBA::Create() to DMABufSurfaceRGBA::CreateGBM() and DMABufSurfaceRGBA::CreateExport() to switch between RGBA texture creation methods.
  • Split DMABufSurfaceRGBA::CreateYUVPlane() to DMABufSurfaceYUV::CreateYUVPlaneGBM and DMABufSurfaceYUV::CreateYUVPlaneExport() to create YUV texure planes.
  • Implement dmabuf creation logic in DMABufSurface (DMABufSurface::UseDmaBufExportExtension) and use only one API by external code.
  • Make sure textures/EGLImages created by snapshot GL context are also released when snapshot is returned.
  • Implement DMABufSurface::UseDmaBufGL() as one time check that we can use dmabuf based surfaces
  • Remove CreateEGLImage() / ReleaseEGLImages() for DMABufSurfaceYUV and create / remove EGLImage as along with texures.
Pushed by stransky@redhat.com: https://hg.mozilla.org/integration/autoland/rev/9861030ddf73 [Linux] Add widget.dmabuf-export.force-enabled pref to force use EGL_dmabuf_export GL extension r=emilio https://hg.mozilla.org/integration/autoland/rev/084c6072fd93 [Linux] Implement eglExportDMABUFImage() to create DMABuf surface r=emilio https://hg.mozilla.org/integration/autoland/rev/5597515065c7 [Linux] Use new unified DMABufSurface by SharedSurfaceDMABUF, DMABUFTextureData and WaylandBuffer r=emilio
Pushed by amarc@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b9f8136cb316 [Linux] Use widget.dmabuf-export.force-enabled pref on nightly only r=emilio CLOSED TREE
Regressions: 1956366
Regressions: 1957892
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: