Closed Bug 1640048 Opened 5 years ago Closed 5 years ago

[X11] Initial EGL runtime support

Categories

(Core :: Graphics, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox80 --- fixed

People

(Reporter: rmader, Assigned: rmader)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Implement initial EGL on X11 support.

Blocks: linux-egl

This add initial support for EGL on X11, enabled by setting the
MOZ_X11_EGL env variable. It allows running the Webrender
and OpenGL compositors.

Note that that there are several things missing yet:

  • no GPU process support
  • no pixmap sharing support
  • hard-coded to use 32bit visuals
  • it still uses GLX for several things like VSync, glxtest etc.

It includes some cleanups, mostly in order to decouple the X11
and Wayland implementations a bit more.

Assignee: nobody → robert.mader
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true

Depends on D76417

Attachment #9151055 - Attachment is obsolete: true

Turns out things are easier than expected and we don't need pixmaps for the GPU process - so that works now, too.

Jeff, I think the revision is in a good shape for a review/landing and I'd love to get some feedback if the general approach looks good to you. So if you find time, I'd highly appreciate if you have a look :)

Flags: needinfo?(jgilbert)

Found a hopefully acceptable solution for the color depth problem, trying to keep X11 specific things out of the EGL provider. This makes the EGL implementation mostly complete - pixmaps are missing, but we don't seem to use them by default (and probably shouldn't), and we still use GLX for vsync and glxtest (which shouldn't be problematic as long as we don't want to remove GLX support).

Thanks a log, I'm going to use your patch as a template to implement Bug 1619523.

Jan: I think I finally managed to make a try push (https://treeherder.mozilla.org/#/jobs?repo=try&revision=992d60ba9d8167a0f5de0421e4455decae405609) - I don't quite understand where it should be possible to download it though. If it's possible, mind having a look if partial damage works on you nvidia gpu?

p.s.: try server and git doesn't seem to work :/

Flags: needinfo?(jan)

I don't quite understand where it should be possible to download it though.

Linux x64 opt > B > Job Details > target.tar.bz2
or
$ pip3 install --upgrade mozregression
$ MOZ_X11_EGL=1 ~/.local/bin/mozregression --repo try --launch 992d60ba9d8167a0f5de0421e4455decae405609 --pref gfx.webrender.all:true gfx.webrender.max-partial-present-rects:-1 -a about:support

Ah thanks, good to know! So unfortunately the build also suffers from bug 1648872 on Wayland - probably the same applies on X11 :(

Robert, if you don't mind I can take care of this one as it's needed for Bug 1619523.

(In reply to Martin Stránský [:stransky] from comment #10)

Robert, if you don't mind I can take care of this one as it's needed for Bug 1619523.

Sure, thanks!

Blocks: 1625070
Flags: needinfo?(jgilbert)
Pushed by ncsoregi@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/26aa0ccc6c5e [X11] Initial EGL runtime support, r=jgilbert,rmader
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80

(In reply to Robert Mader [:rmader] from comment #7)

mind having a look if partial damage works on you nvidia gpu?

It works (bug 1625070 comment 30), but is blocked by bug 1650583.

Flags: needinfo?(jan)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: