EGL/X11 does not suport 10-bit color depth
Categories
(Core :: Graphics, defect)
Tracking
()
People
(Reporter: pdunn+firefox, Assigned: rmader)
References
(Blocks 2 open bugs, )
Details
Attachments
(7 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0
Steps to reproduce:
Adjusting xorg.conf to:
Section "Screen"
DefaultDepth 30 #default is 24
EndSection
And start firefox (tested 81/82 beta/83 nightly) with MOZ_X11_EGL=1.
Actual results:
Webrender will no longer work when combined with MOZ_X11_EGL=1.
[user@Device ~]$ env MOZ_X11_EGL=1 firefox
Can't find symbol 'eglGetNativeClientBufferANDROID'.
Can't find symbol 'eglQuerySurfacePointerANGLE'.
Can't find symbol 'eglCreateStreamProducerD3DTextureANGLE'.
Can't find symbol 'eglStreamPostD3DTextureANGLE'.
[GFX1-]: Failed to create EGLConfig for WebRender with depth!
[GFX1-]: Failed to create EGLConfig for WebRender with depth!
[GFX1-]: Failed GL context creation for WebRender: 0
[GFX1-]: Failed to connect WebRenderBridgeChild.
[GFX1-]: Failed to create EGLConfig for WebRender with depth!
[GFX1-]: Failed to create EGLConfig for WebRender with depth!
[GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
All works as expected without MOZ_X11_EGL, but then there is no vaapi support.
Expected results:
I would have expected X11_EGL to support 30bit colour depth, and thus hardware decoding support through vaapi
Reporter | ||
Comment 1•4 years ago
|
||
Reporter | ||
Comment 2•4 years ago
|
||
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Comment 3•4 years ago
|
||
To be clear:
Xorg DefaultDepth 24 + MOZ_X11_EGL=1 works (and i get vaapi)
Xorg DefaultDepth 30 + MOZ_X11_EGL=1 broken (this report)
Xorg DefaultDepth 30 no MOZ_X11_EGL works (but ofc no vaapi, which was the goal)
Updated•4 years ago
|
Updated•4 years ago
|
Comment 4•4 years ago
|
||
You should use DefaultDepth 24. DefaultDepth 30 meas 10-bit colors which is not supported by Firefox.
Comment 5•4 years ago
|
||
This may be an enhancement request as 10-bit colors are not supported right now.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 6•3 years ago
|
||
Pdunn, does this still happen for you in nightly? IIUC it should be fixed by now (by hardcoding 32bit contexts). Thanks!
Assignee | ||
Comment 7•3 years ago
|
||
Reporter is inactive and the issue should be fixed.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 9•3 years ago
|
||
Iso, could you check if latest nightly also shows the problem with 30 bit depth on Xorg and answer here?
Comment 10•3 years ago
•
|
||
WebRender doesn't seem to support HDR yet (bug 1539685): bug 1493198 only added HDR to SDR conversion to WebRender (Ctrl+F HDR).
This line requests RGBA8888: https://searchfox.org/mozilla-central/rev/7e36862b61622889b28492d60564dbab1e6d8bbf/gfx/gl/GLContextProviderEGL.cpp#876
And this line seems to require RGBA8888 otherwise CreateConfig seems to fail: https://searchfox.org/mozilla-central/rev/7e36862b61622889b28492d60564dbab1e6d8bbf/gfx/gl/GLContextProviderEGL.cpp#928
Could 2 bit alpha be requested and no alpha be required, so that the RGB10_A2 egl fb config could have matched? That was the only one with alpha on the X11 platform. Does WebRender need to support HDR before doing such a change?
Comment 11•3 years ago
|
||
This is bug 1735045 reproduced on KDE/Nvidia (instead of AMD). There is no corresponding XVisual for RGB8888.
$ nvidia-settings --eglinfo
EGL Information for darkspirit-ubuntu:1.0:
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL extensions:
EGL_EXT_buffer_age, EGL_EXT_client_sync, EGL_EXT_create_context_robustness, EGL_EXT_image_dma_buf_import,
EGL_EXT_image_dma_buf_import_modifiers, EGL_MESA_image_dma_buf_export, EGL_EXT_output_base, EGL_EXT_stream_acquire_mode,
EGL_EXT_sync_reuse, EGL_IMG_context_priority, EGL_KHR_config_attribs, EGL_KHR_create_context_no_error,
EGL_KHR_context_flush_control, EGL_KHR_create_context, EGL_KHR_fence_sync, EGL_KHR_get_all_proc_addresses,
EGL_KHR_partial_update, EGL_KHR_swap_buffers_with_damage, EGL_KHR_no_config_context, EGL_KHR_gl_colorspace,
EGL_KHR_gl_renderbuffer_image, EGL_KHR_gl_texture_2D_image, EGL_KHR_gl_texture_3D_image, EGL_KHR_gl_texture_cubemap_image,
EGL_KHR_image, EGL_KHR_image_base, EGL_KHR_image_pixmap, EGL_KHR_reusable_sync, EGL_KHR_stream, EGL_KHR_stream_attrib,
EGL_KHR_stream_consumer_gltexture, EGL_KHR_stream_cross_process_fd, EGL_KHR_stream_fifo,
EGL_KHR_stream_producer_eglsurface, EGL_KHR_surfaceless_context, EGL_KHR_wait_sync, EGL_NV_nvrm_fence_sync,
EGL_NV_post_sub_buffer, EGL_NV_quadruple_buffer, EGL_NV_stream_consumer_eglimage, EGL_NV_stream_cross_display,
EGL_NV_stream_cross_object, EGL_NV_stream_cross_process, EGL_NV_stream_cross_system, EGL_NV_stream_dma,
EGL_NV_stream_flush, EGL_NV_stream_metadata, EGL_NV_stream_remote, EGL_NV_stream_reset, EGL_NV_stream_socket,
EGL_NV_stream_socket_inet, EGL_NV_stream_socket_unix, EGL_NV_stream_sync, EGL_NV_stream_fifo_next,
EGL_NV_stream_fifo_synchronous, EGL_NV_stream_consumer_gltexture_yuv, EGL_NV_stream_attrib, EGL_NV_stream_origin,
EGL_NV_system_time, EGL_NV_output_drm_flip_event, EGL_NV_triple_buffer
--fc- --vi- --vt-- buf lv rgb colorbuffer am lm dp st -bind cfrm sb sm cav -----pbuffer----- swapin nv rn su -transparent--
id id siz l lum r g b a sz sz th en - a eat widt hght max-pxs mx mn rd ty ty typ r g b
-------------------------------------------------------------------------------------------------------------------------------
0x001 . 0x8000 32 0 rgb 8 8 8 8 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x002 0x028 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x003 0x07e 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x004 0x053 0x8003 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x005 . 0x8000 32 0 rgb 8 8 8 8 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x006 0x024 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x007 0x07a 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x008 0x04f 0x8003 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x009 . 0x8000 32 0 rgb 8 8 8 8 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x00a 0x02c 0x8002 32 0 rgb 10 10 10 2 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x00b 0x082 0x8002 32 0 rgb 10 10 10 2 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x00c 0x057 0x8003 32 0 rgb 10 10 10 2 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 8 0 . 4d 807 . 0 0 0
0x00d 0x038 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x00e 0x08e 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x00f 0x063 0x8003 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x010 0x030 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x011 0x086 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x012 0x05b 0x8003 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 2 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x013 0x03a 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x014 0x090 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x015 0x065 0x8003 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x016 0x032 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x017 0x088 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x018 0x05d 0x8003 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 4 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x019 0x044 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01a 0x09a 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01b 0x06f 0x8003 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01c 0x040 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01d 0x096 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01e 0x06b 0x8003 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 8 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x01f 0x04c 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x020 0x0a2 0x8002 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x021 0x077 0x8003 32 0 rgb 10 10 10 2 0 0 24 8 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x022 0x048 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x023 0x09e 0x8002 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x024 0x073 0x8003 32 0 rgb 10 10 10 2 0 0 24 0 . . 0x4D 1 16 . 8000 8000 40000000 8 0 . 4d 805 . 0 0 0
0x025 . 0x8000 24 0 rgb 8 8 8 0 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x026 . 0x8000 24 0 rgb 8 8 8 0 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x027 . 0x8000 24 0 rgb 8 8 8 0 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x028 . 0x8000 16 0 rgb 5 6 5 0 0 0 24 8 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x029 . 0x8000 16 0 rgb 5 6 5 0 0 0 24 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x02a . 0x8000 16 0 rgb 5 6 5 0 0 0 16 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
0x02b . 0x8000 16 0 rgb 5 6 5 0 0 0 0 0 . . 0x4D 0 0 . 8000 8000 40000000 0 0 . 4d 801 . 0 0 0
darkspirit@darkspirit-ubuntu:~$ cat /etc/X11/xorg.conf
Section "Screen"
Identifier "asdf"
DefaultDepth 30
EndSection
(#0) Error Failed to create EGLConfig for WebRender!
(#5) Error Failed GL context creation for hardware WebRender: true
(#6) Error GLContextEGL::FindVisual(): Failed to create EGLConfig!
(#7) Error Failed to create EGLConfig for WebRender!
(#8) Error Failed to create EGLConfig for WebRender!
(#9) Error Failed GL context creation for hardware WebRender: true
(#10) Error Failed to get shared GL context
(#11) Error Failed to create EGLConfig for WebRender!
(#12) Error Failed to create EGLConfig for WebRender!
(#13) Error Failed GL context creation for hardware WebRender: true
(#14) Error Failed to create EGLConfig for WebRender!
(#15) Error Failed to create EGLConfig for WebRender!
(#16) Error Failed GL context creation for WebRender: 0
(#17) Error FEATURE_FAILURE_WEBRENDER_INITIALIZE_UNSPECIFIED
(#18) Error Failed to connect WebRenderBridgeChild.
(#19) Error Fallback WR to SW-WR
Assignee | ||
Comment 12•3 years ago
|
||
Thanks Jan. I guess it will get hairy to try to support anything but 24 bit default depth on X11 at the moment, so I'll create a patch to blocklist EGL for other cases.
Comment 13•3 years ago
|
||
I don't know if it's worth. GLX WebGL1 + GLX WebGL2 fail as well (FEATURE_FAILURE_WEBGL_EXHAUSTED_DRIVERS), while GLX WebRender seems to work. You would make HW WR work again for a strange configuration that should probably be blocked entirely.
Comment 14•3 years ago
|
||
HW WR work again for a strange configuration that should probably be blocked entirely.
Strange or not, it provides usable browsing experience to potential inattentive users who
would flock away from FF fast after a couple of minutes of SW-WR.
The more specific error messages from a year go look more helpful than the current generic ones too.
Comment 15•3 years ago
|
||
(In reply to Iso from comment #14)
HW WR work again for a strange configuration that should probably be blocked entirely.
Strange or not, it provides usable browsing experience to potential inattentive users who would flock away from FF fast after a couple of minutes of SW-WR.
The more specific error messages from a year go look more helpful than the current generic ones too.
This problem might be fixed as soon as Firefox starts supporting HDR output.
With GLX, an unexpected bundle of settings slips through the code and gets GLX HW WR while GLX WebGL fails.
How common are HDR-only users who can't display SDR on a composited desktop? IIUC, RGBA8888 is a mandatory format.
Not requiring alpha was the cause for a severe rendering bug on Nvidia (bug 1663273) and it was assumingly not Nvidia's fault. X11 widget code is still too complex and buggy (bug 1630251, bug 1733283, bug 1677314, bug 1730991). If at all, a fallback should only be done on Mesa, but then we had another configuration that need to be maintained and kept in mind when dealing with bug reports.
gdk_screen_get_rgba_visual fails on such a system. I could get my test app working on Nvidia by no longer choosing the egl fb config based on the gdk_screen_get_system_visual defined widget visual (there was no match), but by checking each EGL_NATIVE_VISUAL_ID's depth and choosing fb config and visual if it has the desired depth. This can't work on Mesa EGL as it always wants opaque visuals.
If I am not wrong, these 78 Linux configurations need to be considered already (but are not even actively tested), and many about:config prefs could change behavior further. It would be far more important to ensure first that WebRender works well for expected configurations (Raspberry Pi, etc).
Intel/AMD/Nvidia Mesa | SW WR GLX | WR GLX | SW WR EGL | WR EGL | WR EGL with OS compositing |
---|---|---|---|---|---|
Gnome Wayland | x | x | possible | possible | possible |
Gnome Xwayland | possible | possible | possible | possible | x |
Gnome X11 | possible | possible | possible | possible | x |
Gnome X11 with GTK_CSD=1 (e.g. elementaryOS) | possible | possible | possible | possible | x |
KDE Wayland | x | x | possible | possible | possible (?) |
KDE X11 with compositing | possible | possible | possible | possible | x |
KDE X11 without compositing, i3, etc. (no alpha) | possible | possible | possible | possible | x |
Proprietary Nvidia driver | SW WR GLX | WR GLX | SW WR EGL | WR EGL | WR EGL with OS compositing |
---|---|---|---|---|---|
Gnome Wayland | x | x | possible | possible | unknown? |
Gnome Xwayland | possible | possible | possible | possible | x |
Gnome X11 | possible | possible | possible | possible | x |
Gnome X11 with GTK_CSD=1 (e.g. elementaryOS) | possible | possible | possible | possible | x |
KDE Wayland | x | x | possible | possible | unknown? |
KDE X11 with compositing | possible | possible | possible | possible | x |
KDE X11 without compositing, i3, etc. (no alpha) | possible | possible | possible | possible | x |
Uncommon Mesa (e.g. Raspberry Pi) | SW WR GLX | WR GLX | SW WR EGL | WR EGL | WR EGL with OS compositing |
---|---|---|---|---|---|
Gnome Wayland | x | x | possible | possible (GLES3) | unknown? |
Gnome Xwayland | partly (?) possible | unknown? | possible | possible (GLES3) | x |
Gnome X11 | partly (?) possible | unknown? | possible | possible (GLES3) | x |
Gnome X11 with GTK_CSD=1 (e.g. elementaryOS) | partly (?) possible | unknown? | possible | possible (GLES3) | x |
KDE Wayland | x | x | possible | possible (GLES3) | unknown? |
KDE X11 with compositing | partly (?) possible | unknown? | possible | possible (GLES3) | x |
KDE X11 without compositing, i3, etc. (no alpha) | partly (?) possible | unknown? | possible | possible (GLES3) | x |
Updated•3 years ago
|
Assignee | ||
Comment 16•3 years ago
|
||
Just tried it myself and on GLX even WebGL runs just fine (on Intel). So this is a clear regression from previous behaviour. Will look if I can make things work with EGL - or blocklist EGL for this case otherwise.
Comment hidden (obsolete) |
Comment 18•3 years ago
|
||
I'll make printf debugging here as well to see what it uses with GLX.
Assignee | ||
Comment 19•3 years ago
•
|
||
A quick comparison between glxinfo
and eglinfo
reveals that this is simply a driver issue: the X11 platform
on EGL does not offer RGBA8888 configs in this case. As other platforms, such a the GBM or surfaceless one do offer such configs, I suspect this is a bug, likely related to the mess around https://gitlab.freedesktop.org/mesa/mesa/-/issues/149.
This has to be fixed in Mesa (and checked on Nvidia). Until then we should force-disable EGL in this case, will create a patch now.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 20•3 years ago
|
||
30bit "Deep Color" is broken on EGL on Mesa and everything else is neither
tested nor expected to work now or in the future. If WR starts to
support higher color depths in the future, we will likely only support
it on Wayland.
Thus bail out of the EGL test early as GLX does handle the 30 bit case
and maybe also works better with 16 bit.
This fixes HW-WR and WebGL on Xorg configs with DefaultDepth 30
.
Updated•3 years ago
|
Comment 21•3 years ago
|
||
EGL/Nvidia supports opaque RGB565. Firefox' EGL fb config/xvisual selection code just needed to be fixed for it.
Gnome X11/DefaultDepth 16/Nvidia is broken: The Gnome terminal is an invisible window.
KDE X11/DefaultDepth 16/Nvidia works.
Comment 22•3 years ago
•
|
||
.X11 DefaultDepth 30: EGL/Nvidia (and EGL/Mesa) support transparent RGB10_A2.
Comment 23•3 years ago
•
|
||
(And attachment 9245762 [details] has eglinfo+glxinfo of default Xorg/Gnome X11/Nvidia.)
With Wayland, EGL, Snap and Flatpak we get more and more and more possible configurations. (I have seen a Snap-only Nvidia bug report.)
IMHO, the goal should be to deprecate GLX to remove the burden of testing it.
The purpose of SW WR is to cover edge cases.
this bug:
On 30 bit Xorg, Firefox might be able to use EGL with RGB10_A2 on Mesa and Nvidia, but Firefox denies it. (My test app works with RGB10_A2.)
At the moment, Mesa 21 users either get EGL WR with RGBA8888 (the default) or SW WR (this bug's edge case).
Options:
a) 30 bit Xorg users could manually set gfx.x11-egl.force-disabled=true.
b) 30 bit Xorg users could remove their custom DefaultDepth 30
xorg config option (as done in bug 1735045 comment 3).
c) Firefox could allow RGB10_A2 for presentation.
d) Attached patch from comment 20: Fallback to GLX, keeping GLX a bit more alive.
e) 30 bit Xorg users keep using SW WR.
mentioned in comment 20:
Should HW WR even be enabled for 16 bit RGB565 on Linux? What is the minimum on Windows?
Assignee | ||
Comment 24•3 years ago
|
||
Turns out that this gets fixed on Mesa by https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9989 - hope to get it merged now, but I still think we can take the patch above for the time being. In a year or two we can hopefully remove it, together with GLX in general :)
Comment 25•3 years ago
|
||
EGL RGB10_A2 works on Default Depth 30
/Gnome X11/Nvidia after making these two changes on top of bug 1702546 comment 9:
- Add
|| (GdkIsX11Display() && aDepth == 32 && r == 10 && g == 10 && b == 10 && a == 2)
after(aDepth == 32 && r == 8 && g == 8 && b == 8 && a == 8)
. - Reduce minimum alpha of kEGLConfigAttribsRGBA32 from 8 to 2.
Does that work for you on Mesa as well?
I could even get EGL WR working with opaque RGB565 on Default Depth 16
/KDE X11/Nvidia by adding some fallbacks.
Assignee | ||
Comment 26•3 years ago
|
||
I'm pretty sure we can get such configs to work, however I'd see a good chance that they turn out to be glitchy as AFAIK the WR team only cares about 8888 atm. I really wouldn't want to make something work that's only used on Linux, and only on edge cases. The issue here will hopefully get fixed in Mesa soon, so we can remove that workaround again in some time (note that I also want a patch that's easily backportable - making changes to GLContextProviderEGL
is usually a bit delicate because it affects so many platforms.)
Comment 27•3 years ago
|
||
Pushed by robert.mader@posteo.de: https://hg.mozilla.org/integration/autoland/rev/a9368e7ab311 Disable EGL on all default colors depths but 24, r=gfx-reviewers,nical
Comment 28•3 years ago
|
||
bugherder |
Assignee | ||
Comment 29•3 years ago
|
||
Comment on attachment 9245717 [details]
Bug 1667621: Disable EGL on all default colors depths but 24, r=aosmond
Beta/Release Uplift Approval Request
- User impact if declined: Some setups will have broken WebGL and fall back to SW-WR due to a driver bug.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Disables a new feature that ships in 94 for some users, falls back to 93 behaviour. The code is simple and is run on every start on CI, so the risk of crashes etc. is very low (even though CI does not test the setups in question).
- String changes made/needed:
Updated•3 years ago
|
Comment 30•3 years ago
|
||
Comment on attachment 9245717 [details]
Bug 1667621: Disable EGL on all default colors depths but 24, r=aosmond
Approved for 94.0b7.
Comment 31•3 years ago
|
||
bugherder uplift |
Description
•