Commit Graph

2401 Commits

Author SHA1 Message Date
Sandor Molnar
d8d7539593 Backed out 3 changesets (bug 1717151) for causing webgl failures in vector-matrix-constructor-scalarization. CLOSED TREE
Backed out changeset bd3e2c874f3d (bug 1717151)
Backed out changeset 3154db5a81cf (bug 1717151)
Backed out changeset 05bd12e339df (bug 1717151)
2021-09-16 10:29:11 +03:00
Jeff Gilbert
d6aa54df00 Bug 1717151 - Move EGL_EXT_device_query from device exts to client exts. r=gfx-reviewers,lsalzman
This moved due to a fix in ANGLE 56663dbfa78 on 2020-nov-19.

Differential Revision: https://phabricator.services.mozilla.com/D125748
2021-09-15 22:20:32 +00:00
Matt Woodrow
c19e47f6c4 Bug 1729841 - Remove TextureDIB. r=jgilbert,gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D125023
2021-09-15 04:09:43 +00:00
Jeff Muizelaar
4d2306308f Bug 1728991 - Drop some unused gfxASurface includes. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D124456
2021-09-03 16:00:34 +00:00
Nicolas Silva
d7ea7c6d5f Bug 1728651 - Silence a warning. r=gfx-reviewers,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D124322
2021-09-02 16:14:44 +00:00
Nicolas Silva
7d160f6bbc Bug 1728350 - Remove remaining texture-from-pixmap usage. r=gfx-reviewers,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D124093
2021-09-01 17:07:46 +00:00
Nicolas Silva
d7da7d12a4 Bug 1728350 - Remove SharedSurfaceX11. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D124084
2021-09-01 17:07:45 +00:00
Jeff Gilbert
fa284e5717 Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio,webidl
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-27 01:47:14 +00:00
Andi-Bogdan Postelnicu
2fc4f70e9b Bug 1725145 - Preparation for the hybrid build env. r=necko-reviewers,firefox-build-system-reviewers,valentin,glandium
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.

This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.

Differential Revision: https://phabricator.services.mozilla.com/D122345
2021-08-25 10:46:17 +00:00
Jeff Gilbert
0d6f7f1c2b Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-23 23:59:26 +00:00
Csoregi Natalia
8d7a78b944 Backed out changeset fd92f897de07 (bug 1726863) for causing assertion failures on ContentCompositorBridgeParent.cpp. CLOSED TREE 2021-08-24 01:34:22 +03:00
Jeff Gilbert
16b629d8de Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-23 21:54:29 +00:00
Andi-Bogdan Postelnicu
9945b94835 Bug 1519636 - Reformat recent changes to the Google coding style. r=emilio
Updated with clang-format version 12.0.1 (taskcluster-dNZqCRqWRTqa6cZxPKxh7Q)

Differential Revision: https://phabricator.services.mozilla.com/D122814
2021-08-23 09:30:23 +00:00
Csoregi Natalia
a3124addd1 Backed out changeset ef1d6ccf8d61 (bug 1726863) for causing assertion failures on CompositorBridgeParent.cpp. CLOSED TREE 2021-08-21 09:15:08 +03:00
Jeff Gilbert
aa8340500e Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-21 02:08:23 +00:00
Butkovits Atila
477919f37c Backed out changeset a4a346ecefd7 (bug 1726265) for causing failures at test_2_conformance2__extensions__oes-draw-buffers-indexed.html. CLOSED TREE 2021-08-21 01:46:52 +03:00
Jeff Gilbert
28e862be2d Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 20:59:54 +00:00
Cosmin Sabou
135d55cd7e Backed out changeset 24e0d3aa4ada (bug 1726265) for causing non-unified build bustage. CLOSED TREE 2021-08-20 04:29:04 +03:00
Jeff Gilbert
df78036187 Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 00:05:06 +00:00
Jeff Gilbert
16e47c00fa Bug 1725714 - Load glTexSubImage3DOES for texture_3D. r=gfx-reviewers,jrmuizel
Also drop support for the 1996 ext EXT_texture3D, particularly since
GLFeature::texture_3D is core in GL1.2.

Differential Revision: https://phabricator.services.mozilla.com/D122644
2021-08-14 00:07:19 +00:00
Jeff Gilbert
1ab2048d63 Bug 1657189 - Avoid GetFragDataLocation('gl_*') on Mesa. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D122406
2021-08-12 01:35:15 +00:00
Robert Mader
02ec3a3ab0 Bug 1702546 - Update GLConsts.h, r=jgilbert
This is required for D110604

Differential Revision: https://phabricator.services.mozilla.com/D121704
2021-08-04 17:46:57 +00:00
Dorel Luca
585240571a Backed out 2 changesets (bug 1717151) for Crashtest failures in dom/media/gmp/GMPServiceParent.cpp. CLOSED TREE
Backed out changeset adc225dcc004 (bug 1717151)
Backed out changeset 0ca0354e2a44 (bug 1717151)
2021-08-03 01:56:11 +03:00
Jeff Gilbert
002654edda Bug 1717151 - Move EGL_EXT_device_query from device exts to client exts. r=lsalzman
This moved due to a fix in ANGLE 56663dbfa78 on 2020-nov-19.

Differential Revision: https://phabricator.services.mozilla.com/D121561
2021-08-02 19:10:37 +00:00
Mike Hommey
03223f9ea4 Bug 1722653 - Remove MOZ_CAIRO_CFLAGS. r=firefox-build-system-reviewers,jgilbert,andi
Differential Revision: https://phabricator.services.mozilla.com/D121066
2021-07-29 23:38:31 +00:00
Csoregi Natalia
1439cf57eb Backed out 2 changesets (bug 1717151) for causing bustage on validationEGL.h. CLOSED TREE
Backed out changeset 06d6ad49726c (bug 1717151)
Backed out changeset ee22b6243926 (bug 1717151)
2021-07-29 22:52:24 +03:00
Jeff Gilbert
555b7c9143 Bug 1717151 - Move EGL_EXT_device_query from device exts to client exts. r=lsalzman
This moved due to a fix in ANGLE 56663dbfa78 on 2020-nov-19.

Differential Revision: https://phabricator.services.mozilla.com/D121216
2021-07-29 19:16:32 +00:00
Emilio Cobos Álvarez
459155ff4c Bug 1712588 Implement DMABufSurface::GetAsSourceSurface. r=sotaro,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D116411
2021-07-15 16:19:51 +00:00
stransky
4c52dbd0a1 Bug 1712588 Remove unnecessary asserts for gfx::Factory::CopyDataSourceSurface(), r=jgilbert
gfx::Factory::CopyDataSourceSurface() was updated so LOCAL_GL_RGBA readFormat and LOCAL_GL_UNSIGNED_BYTE readType is already supported.

Differential Revision: https://phabricator.services.mozilla.com/D118303
2021-07-15 16:00:45 +00:00
Robert Mader
f691c9ecf9 Bug 1718569 - Implement custom FBO management, r=jgilbert,gfx-reviewers
Instead of using the Wayland EGL platform. The later is very convenient
but has several limitations. Managing FBOs allows to make our code more
similar to that of MacOS as well as the Wayland software backend.

Most importantly, it will allow us to cleanly implement partial damage
by giving us direct acces to previously submitted buffers, allowing us
to blit back from them, similar like in
`NativeLayerCA::HandlePartialUpdate`.
There are several other fields where more control over buffers will
come in handy, too many to describe them here in detail.

Note: we still use individual buffer pools for each tile. However, this
change brings everything into place to allow us to change to a more
`SurfacePoolCA`-style shared pool. That will reduce GPU-memory usage.

Includes some minor cleanups here and there.

Depends on D119013

Differential Revision: https://phabricator.services.mozilla.com/D118925
2021-07-13 13:44:12 +00:00
Sandor Molnar
6c075398dd Backed out 2 changesets (bug 1718570, bug 1718569) for causing wpt failures in /css/css-flexbox/flexbox-align-self-vert-001. CLOSED TREE
Backed out changeset 59cdbaaa6a7b (bug 1718570)
Backed out changeset 489ce763c140 (bug 1718569)
2021-07-13 08:52:28 +03:00
Robert Mader
f3231d9976 Bug 1718569 - Implement custom FBO management, r=jgilbert,gfx-reviewers
Instead of using the Wayland EGL platform. The later is very convenient
but has several limitations. Managing FBOs allows to make our code more
similar to that of MacOS as well as the Wayland software backend.

Most importantly, it will allow us to cleanly implement partial damage
by giving us direct acces to previously submitted buffers, allowing us
to blit back from them, similar like in
`NativeLayerCA::HandlePartialUpdate`.
There are several other fields where more control over buffers will
come in handy, too many to describe them here in detail.

Note: we still use individual buffer pools for each tile. However, this
change brings everything into place to allow us to change to a more
`SurfacePoolCA`-style shared pool. That will reduce GPU-memory usage.

Includes some minor cleanups here and there.

Depends on D119013

Differential Revision: https://phabricator.services.mozilla.com/D118925
2021-07-13 00:55:29 +00:00
Jed Davis
2257145e1c Bug 1635451 - Minimize content processes' connections to the X server. r=jgilbert,stransky,nika
This patch launches content processes with the `MOZ_HEADLESS` env var set
if they're using GTK with an X11 display (and there's no other reason
they'd need GTK).

The goal is to avoid exhausting Xorg's default limit of 256 clients if
there are many content processes due to Fission.  If these conditions
are met, the content process doesn't need to eagerly connect to the X
server.  This does not affect the sandbox policy, and content processes
can still use X if needed for, e.g.,  WebGL.

The boolean pref `dom.ipc.avoid-gtk`, set by default, controls this
feature.  In the future it could also be extended to minimize GTK use
with Wayland displays.

Note that disabling `widget.non-native-theme.enabled`, which is also
enabled by default, will restore the use of X11 in all content processes
even if this pref is set; the alternative is that widgets wouldn't render
in that case.

This change will also save some memory for now-unnecessary instances of
GTK's global state, and improve content process startup time.

Remove also the temp pref dom.ipc.remote-mozIcon because it cannot work
anymore with the content process being headless.

Differential Revision: https://phabricator.services.mozilla.com/D112197
2021-07-06 07:42:42 +00:00
Jed Davis
dc3ae62544 Bug 1635451 - Allow GLX to work in headless content processes. r=jgilbert
This follows what we're already doing for EGL: a refcounted object
which can own the X connection, where we hold a weak reference from
the library object so that multiple contexts opportunistically share
the display but we close the connection when the last context is
freed/GCed.

In a process where GTK is initialized, we borrow its display instead of
opening a new one, which preserves the existing behavior.

Differential Revision: https://phabricator.services.mozilla.com/D112195
2021-07-06 07:42:42 +00:00
Jeff Muizelaar
fc208a231c Bug 1712367. Avoid TexSubImage ES slow path. r=jgilbert,sotaro
Instead of drawing updates into the correct spot in the destination
DataSourceSurface we just use it as scratch space and always
draw in the top-left with stride = bpp*width.

We add a dstOffset to the upload functions to support using
a subsurface.

Differential Revision: https://phabricator.services.mozilla.com/D116501
2021-06-17 13:24:05 +00:00
Andi-Bogdan Postelnicu
f07c975367 Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,emilio
Updated with clang-format version 12.0.0 (taskcluster-FZRqPXamQIOU_i4hF0cAcg)

Differential Revision: https://phabricator.services.mozilla.com/D117905
2021-06-17 11:00:22 +00:00
Jeff Muizelaar
a7817816b7 Bug 1716559 - Remove TextureImageEGL. r=jnicol,jgilbert
TextureImageEGL doesn't seem to provide any value beyond
BasicTextureImage. It's last usage was bug 814159.

Removing this has the side effect of using BasicTextureImage
for small images instead of always using TilingTextureImage.

Differential Revision: https://phabricator.services.mozilla.com/D117904
2021-06-15 21:10:47 +00:00
Dorel Luca
2190a59721 Backed out changeset c30c8b8dc0b5 (bug 1715902) on Dev's request. CLOSED TREE 2021-06-11 15:48:11 +03:00
Andrew Osmond
330727f6e8 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
When trying to create a GLContextEGL or GLContextGLX, we should check to
see what our display is backed by. If using a software driver, we should
fail to create the context for WebRender, so that it can fallback to
Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117473
2021-06-11 12:16:36 +00:00
Robert Mader
de931f5505 Bug 1712472 - Reenable depth-buffer in EGL config if native compositor is used, r=jgilbert,gw
After D113532, a depth-buffer is not needed any more for the draw
compositor and it was subsequently removed from the EGL and GLX
context providers in D115216. This, however, broke the experimental
Wayland native compositor integration, which still needs it.

`SurfacePoolCA` solves this by manually attaching a depth buffer in
`CreateFramebufferForTexture`. `SurfacePoolWayland` will likely be
able to do the same eventually, however until that is the case
we need the GL context to provide it.

While on it, move the hardcoded bits into a better place below the
hard-coded values for ANGLE and remove now used code to make things
less cluttered.

Context: the `aDepth` argument was introduced in D76417 for EGL on X11
support, which used `RenderCompositorOGL`. This was changed in D108508,
making X11/EGL use `RenderCompositorEGL` instead, which uses a shared
GL singleton. This again required the color depth to be independent of
the window, so 32bit color depth was hardcoded in D109737. Therefore,
the `aDepth` and other things introduced in D76417 can be removed again.
Finally, it was found that we only need 32bit depth when used with
HW-WR, see also D114959.

Differential Revision: https://phabricator.services.mozilla.com/D115760
2021-05-25 08:03:28 +00:00
Jeff Muizelaar
4e1bc5a36f Bug 1711490 - Stop using allocating a depth buffer for the main window. r=nical
In bug 1696905 we removed our need for depth buffer when running the
composite shader.

Differential Revision: https://phabricator.services.mozilla.com/D115216
2021-05-17 19:54:35 +00:00
Robert Mader
76023e93e9 Bug 1709606 - Rename CompositorWidget::AsX11() to CompositorWidget->AsGTK(), r=stransky,nical
Nowadays we often use it for Wayland, which is confusing. Also, it
has a bunch of GTK specific functions, which an alternative X11
implementation would like not have. So a explicit name is probably
deserved.

Depends on D114424

Differential Revision: https://phabricator.services.mozilla.com/D114425
2021-05-07 12:31:28 +00:00
stransky
8ff3771ef2 Bug 1704965 [Linux] Remove display connection from nsWindow, CompositorWidgetParent and WindowSurfaceProvider, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D113643
2021-05-04 13:04:35 +00:00
Jed Davis
2f12c6ea18 Bug 1702394 - Work around small memory leaks in Mesa drivers. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D112194
2021-04-30 16:20:15 +00:00
Brad Werth
069a9b5451 Bug 1685183 Part 2: Remove scale factor from SurfaceDescriptorMacIOSurface. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D101227
2021-04-08 16:42:06 +00:00
Brad Werth
e4fe1123e7 Bug 1685183 Part 1: Make MacIOSurface always use 1.0 scale, and update callsites. r=jgilbert
This change makes callsites that use SurfaceDescriptor structures to ignore
scale factors. All surfaces are 1.0 scale, no matter what.

Differential Revision: https://phabricator.services.mozilla.com/D101213
2021-04-08 16:42:06 +00:00
Butkovits Atila
1557f3a480 Backed out 3 changesets (bug 1685183) for causing build bustages. CLOSED TREE
Backed out changeset bef089a9a5fa (bug 1685183)
Backed out changeset d9e2699b32c6 (bug 1685183)
Backed out changeset 083f895fddd9 (bug 1685183)
2021-04-08 06:48:02 +03:00
Brad Werth
d47cb1243e Bug 1685183 Part 2: Remove scale factor from SurfaceDescriptorMacIOSurface. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D101227
2021-04-08 01:39:04 +00:00
Brad Werth
acdd1a887d Bug 1685183 Part 1: Make MacIOSurface always use 1.0 scale, and update callsites. r=jgilbert
This change makes callsites that use SurfaceDescriptor structures to ignore
scale factors. All surfaces are 1.0 scale, no matter what.

Differential Revision: https://phabricator.services.mozilla.com/D101213
2021-04-08 01:39:04 +00:00
sotaro
1001dc3ad6 Bug 1700524 - Rename aWebRender of CreateForCompositorWidget() to aHardwareWebRender r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D109570
2021-04-07 07:04:43 +00:00
David Parks
9032efe20c Bug 1682030 - Remove NPAPI plugin async rendering support r=bas,jgilbert,ipc-reviewers,mccr8
Removes async (windowless) NPAPI plugin rendering methods used to render a plugin to an offscreen surface in the GPU process.  None of this code is used since we have removed all NPAPI plugin support.

Differential Revision: https://phabricator.services.mozilla.com/D107152
2021-04-06 19:28:16 +00:00
Markus Stange
3c50594c6e Bug 1702898 - Remove some respondsToSelector checks that were only needed for old macOS versions. r=mac-reviewers,jgilbert,tnikkel,bradwerth
-[NSOpenGLContext pixelFormat] is 10.10+
-[NSScreen backingScaleFactor] is 10.7+
+[NSEvent isSwipeTrackingFromScrollEventsEnabled] is 10.7+

Differential Revision: https://phabricator.services.mozilla.com/D110772
2021-04-06 14:33:13 +00:00
Csoregi Natalia
d68661e2cc Backed out 24 changesets (bug 1682030) for bustage on ProcessHangMonitor.cpp and nsCOMPtr.h. CLOSED TREE
Backed out changeset 5b1644096477 (bug 1682030)
Backed out changeset 35ae60eea3c7 (bug 1682030)
Backed out changeset 3eca76a6d639 (bug 1682030)
Backed out changeset 259c45447ad9 (bug 1682030)
Backed out changeset de9222dc8c31 (bug 1682030)
Backed out changeset 2986c7e14349 (bug 1682030)
Backed out changeset 6af3410bdb93 (bug 1682030)
Backed out changeset 42b0621c2927 (bug 1682030)
Backed out changeset 366e3e371858 (bug 1682030)
Backed out changeset 9adb2865adea (bug 1682030)
Backed out changeset 6af6af3bc03a (bug 1682030)
Backed out changeset da94a91b35ae (bug 1682030)
Backed out changeset 9143da258d0e (bug 1682030)
Backed out changeset 5e20d06952ba (bug 1682030)
Backed out changeset 6253d7e1ce7d (bug 1682030)
Backed out changeset 0e06ddeea3e2 (bug 1682030)
Backed out changeset 9c58d57c9e44 (bug 1682030)
Backed out changeset e90edd89430e (bug 1682030)
Backed out changeset 5861b8166b10 (bug 1682030)
Backed out changeset b4b88cdc7993 (bug 1682030)
Backed out changeset b80054e9805c (bug 1682030)
Backed out changeset 580d857674c0 (bug 1682030)
Backed out changeset a9cdf93c2662 (bug 1682030)
Backed out changeset 9c9c8b4998e2 (bug 1682030)
2021-04-06 03:54:12 +03:00
David Parks
bd753c5ff6 Bug 1682030 - Remove NPAPI plugin async rendering support r=bas,jgilbert,ipc-reviewers,mccr8
Removes async (windowless) NPAPI plugin rendering methods used to render a plugin to an offscreen surface in the GPU process.  None of this code is used since we have removed all NPAPI plugin support.

Differential Revision: https://phabricator.services.mozilla.com/D107152
2021-04-05 23:48:40 +00:00
Jeff Gilbert
6776a9971c Bug 1678989 - Handle blitting kCVPixelFormatType_422YpCbCr8_yuvs. r=lsalzman
Also more gracefully handle dropped frames for async texture uploads.
If frame is missing, clear to [0.2, 0, 0.2, 1].
Fixing this is a larger change, so defer for now.

Differential Revision: https://phabricator.services.mozilla.com/D109983
2021-04-01 22:58:05 +00:00
Jeff Gilbert
46f5573f62 Bug 1702069 - Cleanup of GLContextGLX code. r=lsalzman
* More const
* RAII wrapper instead of macro wrappers
* Add function name to X ERROR spew
* Reduce buffer size, because 100 is plenty. (usual len is <10)

Differential Revision: https://phabricator.services.mozilla.com/D110340
2021-03-30 23:16:11 +00:00
Jeff Gilbert
7dfe0c5bdc Bug 1700799 - For GLContextGLX creation, add fallback if robustness fails. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D110165
2021-03-29 23:35:28 +00:00
Alexandru Michis
a6b034109b Backed out changeset 1bde1bcafcf1 (bug 1700799) for causing webgl crashes.
CLOSED TREE
2021-03-27 11:59:07 +02:00
Jeff Gilbert
615878e7ce Bug 1700799 - For GLContextGLX creation, add fallback if robustness fails. r=lsalzman
Also trim out unused code/vars.
Also give better WebGL context creation errors.

Differential Revision: https://phabricator.services.mozilla.com/D109679
2021-03-27 08:26:35 +00:00
Robert Mader
1dcdf4e04c Bug 1699864 - Request 32bit color depth on Linux/EGL by default, r=stransky,jgilbert
Since D108508 the X11/EGL backend creates a shared GL context via
`CreateGLContextEGL()` which chains up to `CreateForCompositorWidget()`
with a `nullptr` widget. With the OGL compositor we relied on the
widget giving us a valid color depth, while now we'd fall back to
`gfxVars::ScreenDepth()`.

On X11 color depth is defined as:
> depth means the number of bits in a pixel that are actually used
> to determine the pixel color

i.e. we on a usual system we would get 24bit.

As we require an alpha channel when using WR, the result would be
disappointing. Thus hardcode 32bit color depth for X11/EGL when
creating contexts without widget for now.

In order to keep X11 and Wayland code close together, do the same
on Wayland, even if `gfxVars::ScreenDepth()` returns valid values
there.

Differential Revision: https://phabricator.services.mozilla.com/D109737
2021-03-25 18:44:13 +00:00
Simon Giesecke
760cc7e936 Bug 1679522 - Fix include directives and forward declarations. r=andi,necko-reviewers,jgilbert
- Add missing include directives and forward declarations.
- Remove some extra include directives.
- Add missing namespace qualifications.
- Move include directives out of namespace in toolkit/xre/GlobalSemaphore.h

Differential Revision: https://phabricator.services.mozilla.com/D98894
2021-03-25 10:19:44 +00:00
Lee Salzman
0e1c0ff1cf Bug 1678892 - Use PBOs for uploading tiles in RenderCompositorOGLSWGL. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D109032
2021-03-23 06:36:39 +00:00
Jeff Gilbert
d517313a40 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-19 00:58:23 +00:00
stransky
97fe4dc9a5 Bug 1684194 [Linux] Use RenderCompositorEGL on X11/EGL, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D108508
2021-03-18 13:46:03 +00:00
Csoregi Natalia
e0c536d241 Backed out changeset f155cf6af343 (bug 1697670) for bustage on gfxUtils.cpp. CLOSED TREE 2021-03-17 02:41:15 +02:00
Jeff Gilbert
7d9b571b77 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-16 23:25:54 +00:00
Jan Alexander Steffens (heftig)
4920407bb3 Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-11 14:32:53 +00:00
Simon Giesecke
ad01a10a3b Bug 1634281 - Use nsTHashMap instead of nsDataHashtable. r=xpcom-reviewers,necko-reviewers,jgilbert,nika,valentin
Note that this patch only transforms the use of the nsDataHashtable type alias
to a directly equivalent use of nsTHashMap. It does not change the specification
of the hash key type to make use of the key class deduction that nsTHashMap
allows for in some cases. That can be done in a separate step, but requires more
attention.

Differential Revision: https://phabricator.services.mozilla.com/D106008
2021-03-10 10:47:47 +00:00
Narcis Beleuzu
198358fc15 Backed out changeset a4f4f640eaa7 (bug 1696845) for bustages on pangofc-fontmap.h 2021-03-10 04:49:51 +02:00
Jan Alexander Steffens (heftig)
1261a74d17 Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-09 22:55:47 +00:00
Andrew Osmond
3bd304e55e Bug 1688668 - EGL should attempt to load libGL before libGLES. r=jgilbert
Not all configurations have both libGL and libGLES present, and this
matches the order which glxtest loads them. Without this, a user might
pass glxtest, which says they can use EGL, but then not have libGLES on
the library path.

Differential Revision: https://phabricator.services.mozilla.com/D102936
2021-02-27 21:25:16 +00:00
Simon Giesecke
4f75368dcb Bug 1691913 - Rename nsBaseHashtable::GetOrInsert(With) to LookupOrInsert(With). r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
The functions should be called "Lookup" rather than "Get" because they return
a DataType& (rather than UserDataType).

Differential Revision: https://phabricator.services.mozilla.com/D105472
2021-02-26 09:11:45 +00:00
Simon Giesecke
d2caea36fa Bug 1691894 - Simplify uses of WithEntryHandle that only use OrInsert(With) by using GetOrInsertWith. r=xpcom-reviewers,necko-reviewers,jgilbert,nika
Differential Revision: https://phabricator.services.mozilla.com/D104676
2021-02-22 12:07:46 +00:00
Gerald Squelart
2416d881e2 Bug 1691589 - Reduce reliance on GeckoProfiler.h when only labels (and maybe markers) are needed - r=necko-reviewers,geckoview-reviewers,sg,agi,florian
There are no code changes, only #include changes.
It was a fairly mechanical process: Search for all "AUTO_PROFILER_LABEL", and in each file, if only labels are used, convert "GeckoProfiler.h" into "ProfilerLabels.h" (or just add that last one where needed).
In some files, there were also some marker calls but no other profiler-related calls, in these cases "GeckoProfiler.h" was replaced with both "ProfilerLabels.h" and "ProfilerMarkers.h", which still helps in reducing the use of the all-encompassing "GeckoProfiler.h".

Differential Revision: https://phabricator.services.mozilla.com/D104588
2021-02-16 04:44:19 +00:00
Simon Giesecke
8df74b1582 Bug 1688833 - Migrate LookupForAdd to WithEntryHandle in gfx. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D104216
2021-02-09 18:19:40 +00:00
Cosmin Sabou
7b8c450692 Backed out changeset ece826cc95e0 (bug 1688668) for causing bug 1688999.
CLOSED TREE
2021-01-27 01:05:40 +02:00
Andrew Osmond
a750b3733f Bug 1680759 - Enable EGL robustness with WebRender on Linux. r=jgilbert
This patch enables EGL robustness with WebRender. It also tries harder
to get RBAB, favouring KHR+RBAB over EXT-RBAB, as testing with Intel and
NVIDIA Mesa drivers on Ubuntu suggests we can get KHR+RBAB but not
EXT+RBAB. It also adds support for requesting NVIDIA specific resets via
EGL_NV_robustness_video_memory_purge.

Differential Revision: https://phabricator.services.mozilla.com/D102971
2021-01-26 02:25:08 +00:00
Andrew Osmond
5f8c60ba8d Bug 1688668 - EGL should attempt to load libGL before libGLES. r=jgilbert
Not all configurations have both libGL and libGLES present, and this
matches the order which glxtest loads them. Without this, a user might
pass glxtest, which says they can use EGL, but then not have libGLES on
the library path.

Differential Revision: https://phabricator.services.mozilla.com/D102936
2021-01-25 21:12:52 +00:00
Jeff Gilbert
f4699b02fe Bug 1687438 - Bail if null iosurf for GLBlitHelper::BlitImage. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102373
2021-01-20 01:49:32 +00:00
Jeff Gilbert
7d80634d28 Bug 1687231 - Make failures non-fatal in Nightly !DEBUG builds. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102370
2021-01-20 01:35:31 +00:00
Sylvestre Ledru
912aeb9ab5 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
Updated with clang-format version 11.0.1 (taskcluster-B6bdwSKDRF-luRQWXBuzpA)

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D102084
2021-01-18 16:50:16 +00:00
Jeff Gilbert
a8926ffa47 Bug 1640607 - Send SurfaceDescriptors for GPU blitting for video-to-webgl. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D101061
2021-01-14 01:23:06 +00:00
Andi-Bogdan Postelnicu
7b246e293f Bug 1683551 - Make gfx buildable outside of unified-build environment. r=sg,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D100209
2021-01-04 14:20:17 +00:00
Andrew Osmond
627b3749af Bug 1682876 - Better handle Linux NVIDIA device resets, and unflushed device resets. r=sotaro,jgilbert
These NVIDIA device resets are specific to Linux and trying to handle
them more gracefully is increasingly difficult. There are many
textures/buffers that we need to clear inside WebRender, but attempting
to add them to the list has proved difficult due to the number of places
we need to add, as well as race conditions with clearing them. Given
this shouldn't happen often, it doesn't seem worth optimizing for and we
should treat it just as an innocent device reset.

Testing this revealed an issue during recovery where unflushed device
resets were not handled as expected. When we checked for errors after
creating a new GL context, we would encounter a GL_CONTEXT_LOST error
which we failed to recover from. This is because we called
GLContext::fGetError instead of the GL method directly; the context lost
state was saved in mContextLost, and any subsequent calls to
GLContext::fGetError would continue to return GL_CONTEXT_LOST.

Differential Revision: https://phabricator.services.mozilla.com/D99905
2020-12-18 12:52:00 +00:00
Simon Giesecke
1c53236b70 Bug 1679272 - Include ScopeExit.h exactly where used. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D98888
2020-12-07 14:25:59 +00:00
Robert Mader
c2fc1023f9 Bug 1679022 - Silence warnings about non-essential extensions during EGL init, r=jgilbert
We already explicitly warn if essential extensions are missing -
these warnings clutter debug logs quite a bit.

Differential Revision: https://phabricator.services.mozilla.com/D97883
2020-11-23 18:15:36 +00:00
Simon Giesecke
dd80614fa0 Bug 1678062 - Remove unnecessary includes. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D97467

Depends on D96561
2020-11-23 16:12:02 +00:00
Simon Giesecke
aabaf2b7e8 Bug 1676370 - Remove unused includes from GLLibraryEGL.h. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D96543

Depends on D96542
2020-11-23 16:09:32 +00:00
Simon Giesecke
8c0d8f3f46 Bug 1676370 - Remove unused includes from GLContext.h. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D96542

Depends on D96541
2020-11-23 16:09:28 +00:00
Simon Giesecke
c077183836 Bug 1660470 - Avoid including IPCMessageUtils.h from header files. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D93235

Depends on D93234
2020-11-23 16:03:47 +00:00
Simon Giesecke
971b645fe3 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Sylvestre Ledru
0129dd3f83 Bug 1519636 - Reformat recent changes to the Google coding style r=andi,necko-reviewers,dragana
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D96608
2020-11-16 22:09:25 +00:00
Andrew Osmond
ca9f3b661d Bug 1677165 - Add support for partial present to GLX. r=kvark,jgilbert
This adds support for GLX_EXT_buffer_age if available to minimize how
much must be redrawn when using GLX.

Differential Revision: https://phabricator.services.mozilla.com/D93098
2020-11-13 18:41:41 +00:00
Jeff Muizelaar
fe07fef3bd Bug 1620075. Add a feature flag to allow ES3 on 10.0 devices.
We set the feature flag when creating the EGL display. This lets us run
WebRender on devices that only support D3D 10.0

Differential Revision: https://phabricator.services.mozilla.com/D96452
2020-11-10 02:24:53 +00:00
Jeff Muizelaar
030b73a0a5 Bug 1620075. Use GetPlatformDisplay instead of GetPlatformDisplayEXT. r=jgilbert
GetPlatformDisplay takes a list of EGLAttrib instead of EGLInt. This is needed
if we want to pass EGL_FEATURE_OVERRIDES_ENABLED_ANGLE.

Differential Revision: https://phabricator.services.mozilla.com/D96451
2020-11-10 02:23:09 +00:00
Jeff Gilbert
962773730d Bug 1663152 - Ask for 3.2core+ if !REQUIRE_COMPAT_PROFILE on EGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D93041
2020-11-07 00:37:07 +00:00
Ricky Stewart
02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara
da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart
c0cea3b0fa Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca
1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart
50762dacab Bug 1654103: Standardize on Black for Python code in mozilla-central. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Jean-Yves Avenard
648ba057e8 Bug 1595994 - P19. Add fast path readback for IOSurface image created out of process. r=jgilbert
When using a software decoder, the IOSurface type is using a YUV422 before which is only usable with webrender.
For now, disable the test that attempts to check if a fast read is possible when not running webrender.

These tests can be re-enabled once WebGL works in the GPU process.

Depends on D91695

Differential Revision: https://phabricator.services.mozilla.com/D91696
2020-10-20 23:29:02 +00:00
Jean-Yves Avenard
8f361435da Bug 1595994 - P18. Don't attempt to directly read a GPUVideoImage if it can't be. r=jgilbert
GPUVideoImage can be used on other platform than Windows; if so it will be made of an opaque handle referencing the texture as known by the PVideoBridge.
Only if a sub-description is set can you directly read the image from the content process.

Depends on D91694

Differential Revision: https://phabricator.services.mozilla.com/D91695
2020-10-20 23:28:48 +00:00
Kartikaya Gupta
6d47eac4ee Bug 1666802 - Remove LayersLogging.*. r=mattwoodrow
The remaining functions are moved to be with their brethren in xpcom.

Differential Revision: https://phabricator.services.mozilla.com/D93146
2020-10-11 21:20:46 +00:00
Dorel Luca
f1977d1074 Backed out changeset 016992fe00d7 (bug 1663152) for Browser-chrome failures in browser/base/content/test/performance/browser_startup_mainthreadio.js. CLOSED TREE 2020-10-09 10:53:09 +03:00
Jeff Gilbert
7ac2fb745a Bug 1663152 - Ask for 3.2core+ if !REQUIRE_COMPAT_PROFILE on EGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D93041
2020-10-09 00:34:31 +00:00
Jeff Gilbert
a426e3880b Bug 1669381 - Replace GLLibraryEGL nsIGfxInfo use with gfxVars. r=mattwoodrow
+ Remove now-unused gfxUtils::ThreadSafeGetFeatureStatus.

Differential Revision: https://phabricator.services.mozilla.com/D92529
2020-10-06 05:43:33 +00:00
Jamie Nicol
7adec85b80 Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
KHR_partial_update allows us to avoid rerendering the entire
backbuffer every frame, and instead only render what has changed on
the current frame, as well as the difference between the current
backbuffer and the current frontbuffer. It works similarily to
EXT_buffer_age, which we already support, with the additional
requirement that we must call eglSetDamageRegion each frame before
rendering to the backbuffer.

Modify GLContextEGL::GetBufferAge() so that it queries the age if
either EXT_buffer_age or KHR_partial_update are available. This will
now automatically be queried by webrender through the
PartialPresentCompositor trait. Add a new function to that trait,
set_buffer_damage_region(), whose RenderCompositorEGL implementation
calls eglSetDamageRegion(). Call this from composite_simple(), once
the damage rect has been calculated but before rendering to the
backbuffer.

Additionally, change both RenderCompositorEGL and
RenderCompositorOGL's implementations of
ShouldDrawPreviousPartialPresentRegions() to unconditionally return
true, rather than checking for the existence of EXT_buffer_age (or
adding a new check for KHR_partial_update). The lack of these
extensions does not mean that webrender is able to skip rendering
previous frames' damage. Rather the opposite, it means we cannot
render *only* the previous frames' damage, and must instead always
render the entire buffer.

Differential Revision: https://phabricator.services.mozilla.com/D91203
2020-10-02 10:23:56 +00:00
Razvan Maries
63b41aa30f Backed out 3 changesets (bug 1656533, bug 1575765) for WebRender bustages. CLOSED TREE
Backed out changeset 84c31fd9ff82 (bug 1575765)
Backed out changeset 48c1532d1d9d (bug 1575765)
Backed out changeset ed9075d9319b (bug 1656533)
2020-10-02 12:51:55 +03:00
Jamie Nicol
5b8c7d826e Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
KHR_partial_update allows us to avoid rerendering the entire
backbuffer every frame, and instead only render what has changed on
the current frame, as well as the difference between the current
backbuffer and the current frontbuffer. It works similarily to
EXT_buffer_age, which we already support, with the additional
requirement that we must call eglSetDamageRegion each frame before
rendering to the backbuffer.

Modify GLContextEGL::GetBufferAge() so that it queries the age if
either EXT_buffer_age or KHR_partial_update are available. This will
now automatically be queried by webrender through the
PartialPresentCompositor trait. Add a new function to that trait,
set_buffer_damage_region(), whose RenderCompositorEGL implementation
calls eglSetDamageRegion(). Call this from composite_simple(), once
the damage rect has been calculated but before rendering to the
backbuffer.

Additionally, change both RenderCompositorEGL and
RenderCompositorOGL's implementations of
ShouldDrawPreviousPartialPresentRegions() to unconditionally return
true, rather than checking for the existence of EXT_buffer_age (or
adding a new check for KHR_partial_update). The lack of these
extensions does not mean that webrender is able to skip rendering
previous frames' damage. Rather the opposite, it means we cannot
render *only* the previous frames' damage, and must instead always
render the entire buffer.

Differential Revision: https://phabricator.services.mozilla.com/D91203
2020-10-02 08:38:29 +00:00
sotaro
0666f42a43 Bug 1667932 - Fix file descriptor handling in SharedSurface_AndroidHardwareBuffer::WaitForBufferOwnership() r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D91704
2020-09-29 22:44:33 +00:00
sotaro
33ae1c138c Bug 1665241 - Simplify SurfaceFactory::Create() at TextureType::AndroidNativeWindow case r=jgilbert
When TextureType::AndroidNativeWindow is chosen StaticPrefs::webgl_enable_surface_texture() should be true.

Differential Revision: https://phabricator.services.mozilla.com/D90340
2020-09-29 04:28:48 +00:00
sotaro
36fb807eb2 Bug 1665300 - Disable glGetGraphicsResetStatus usage on android emulator r=jgilbert
glGetGraphicsResetStatus does not work on android emulator both with SwiftShader and with GPU.

Differential Revision: https://phabricator.services.mozilla.com/D90391
2020-09-29 04:37:22 +00:00
sotaro
67e6515719 Bug 1663381 - Reduce file descriptor usage at SharedSurface_AndroidHardwareBuffer r=nical
We needs to reduce file descriptor creation for AndroidHardwareBuffer to avoid out of file descriptor situation. SharedSurface_AndroidHardwareBuffer::ToSurfaceDescriptor() is called for every composition. It causes avoid out of file descriptor.

By the change, file descriptor is created only once for each AndroidHardwareBuffer of SharedSurface_AndroidHardwareBuffer.

Differential Revision: https://phabricator.services.mozilla.com/D90066
2020-09-28 20:29:50 +00:00
Steven Michaud
69821ba2af Bug 1666293 - Flush explicitly before deleting textures. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D90893
2020-09-21 20:24:51 +00:00
Sylvestre Ledru
ec8859e69e Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D90793
2020-09-20 10:14:09 +00:00
Matt Woodrow
77b568f7af Bug 1660709 - Use MacIOSurface code to determine texture formats when binding an IOSurface to a texture. r=jgilbert
The GLBlitHelper version was reimplementing the same logic, and didn't have support for all the pixel types needed.

Differential Revision: https://phabricator.services.mozilla.com/D88125
2020-09-10 23:38:30 +00:00
John Lin
b3c72383ca Bug 1655915 - p3: make AndroidSharedBlitGL unique. r=jgilbert
AndroidSharedBlitGL is never shared with other objects and doesn't
have to be ref-counted.

Differential Revision: https://phabricator.services.mozilla.com/D89532
2020-09-09 00:05:20 +00:00
John Lin
a79f02d04e Bug 1655915 - p1: properly release surface. r=snorp,geckoview-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D89530
2020-09-16 16:59:49 +00:00
stransky
c14c6f5775 Bug 1663003 [Linux/EGL] When we can't find EGLConfig with actual XVisual, use the first suitable one, r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D89720
2020-09-11 10:39:56 +00:00
sotaro
872ccfe115 Bug 1649088 - Add SharedSurface support with AHardwareBuffer support on android r=jgilbert
AHardwareBuffer could remove several limitations of android::SurfaceTexture.

File descriptor usage of current implementation is not efficient. It is going to be addressed by Bug 1663381.

Differential Revision: https://phabricator.services.mozilla.com/D89232
2020-09-11 03:11:45 +00:00
sotaro
5d9e5a2687 Bug 1654475 - SharedSurface_SurfaceTexture: Only ReleaseTexImage if IsSingleBuffer r=jgilbert
SharedSurface_SurfaceTexture::ProducerReadReleaseImpl() handles java::GeckoSurfaceTexture. But how it work is very confusing. The GeckoSurfaceTexture is not SurfaceTexture of this class's GeckoSurface when current process is content process. SurfaceTexture of this class's GeckoSurface does not exist in this process. It exists in compositor's process. Then GeckoSurfaceTexture in this process is a sync surface that copies back the SurfaceTextrure from compositor's process.

Call ReleaseTexImage() only when Surface is single buffer mode, since it needs to be called only when Surface is single buffer mode.

Differential Revision: https://phabricator.services.mozilla.com/D84477
2020-09-10 17:19:15 +00:00
Narcis Beleuzu
69a21ed2df Backed out 2 changesets (bug 1663003) for bustages on nsWindow.cpp . CLOSED TREE
Backed out changeset 50a87c4ddf15 (bug 1663003)
Backed out changeset c3035ba4d8fc (bug 1663003)
2020-09-10 23:40:09 +03:00
stransky
f49660886e Bug 1663003 [Linux/EGL] When we can't find EGLConfig with actual XVisual, use the first suitable one, r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D89720
2020-09-10 17:47:37 +00:00
stransky
3468f83483 Bug 1650583 [Linux/EGL] Implement GLContextEGL::FindVisual(), r=jgilbert
Implement GLContextEGL::FindVisual() as a EGL counterpart of GLContextGLX::FindVisual() used
by GLX.

We need to make sure that GdkWindow uses the same visual as GL framebuffer we use for it.
That was already implemented for GLX backend (Bug 1478454).

The visual match is implemented by visual parameter at CreateConfig()/CreateConfigScreen() routines and when it's non-zero,
try to find exact match based on visual ID.

Differential Revision: https://phabricator.services.mozilla.com/D87636
2020-09-03 09:02:44 +00:00
stransky
1b305cb7c0 Bug 1650583 [Linux/EGL] Log eglCreateWindowSurface failure, r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D87635
2020-09-03 09:02:37 +00:00
Noemi Erli
3403bbb58e Backed out 4 changesets (bug 1650583) for causing build bustages in rules.mk CLOSED TREE
Backed out changeset 033e491241b1 (bug 1650583)
Backed out changeset e6a03fea3aad (bug 1650583)
Backed out changeset b24be6b2d8cd (bug 1650583)
Backed out changeset bbb04547d367 (bug 1650583)
2020-09-03 02:33:34 +03:00
Martin Stransky
90c4b74c25 Bug 1650583 [Linux/EGL] Implement GLContextEGL::FindVisual(), r=jgilbert
Implement GLContextEGL::FindVisual() as a EGL counterpart of GLContextGLX::FindVisual() used
by GLX.

We need to make sure that GdkWindow uses the same visual as GL framebuffer we use for it.
That was already implemented for GLX backend (Bug 1478454).

The visual match is implemented by visual parameter at CreateConfig()/CreateConfigScreen() routines and when it's non-zero,
try to find exact match based on visual ID.

Differential Revision: https://phabricator.services.mozilla.com/D87636
2020-09-02 19:45:44 +00:00
Martin Stransky
fcbc4fc378 Bug 1650583 [Linux/EGL] Log eglCreateWindowSurface failure, r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D87635
2020-09-02 19:45:57 +00:00
James Willcox
8ce74e9eef Bug 1654459 - Don't use single-buffer SurfaceTexture on emulator r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D89041
2020-09-02 00:13:15 +00:00
Jeff Gilbert
79587135ae Bug 1661328 - Enable Mac webgl-ipc tests on Central. r=jmaher,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D89038
2020-09-01 23:29:01 +00:00
James Willcox
665c0bd32e Bug 1659681 - Avoid crash in ~SharedSurace_SurfaceTexture() when GLContext is lost r=sotaro,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D88889
2020-09-01 13:00:39 +00:00
stransky
4256c8d7fc Bug 1656505 [Linux] Restore active texture when dmabuf texture is created and provide logging to dmabuf surfaces, r=jgilbert
- Restore active texture when dmabuf texture is created at DMABufSurfaceRGBA::CreateTexture()/DMABufSurfaceYUV::CreateTexture.
- Provide more logging for DMABufSurfaceRGBA surfaces.
- Implement DMABufSurfaceRGBA::DumpToFile() to save dmabuf surface content to png file.

Differential Revision: https://phabricator.services.mozilla.com/D88382
2020-09-01 07:24:46 +00:00
sotaro
b71cdb204a Bug 1658126 - Fix EGL_ANDROID_native_fence_sync check for android r=jgilbert
On recent android, EGL_ANDROID_native_fence_sync support is not reported even when eglDupNativeFenceFDANDROID() exists.

Differential Revision: https://phabricator.services.mozilla.com/D87995
2020-08-25 14:37:23 +00:00
Nicolas Silva
9f234a0d35 Bug 1660187 - Don't assert if the GL version string is empty. r=jgilbert
It can happen with Pernosco, getting in the way of reproducing problems elsewhere in the code base.

Differential Revision: https://phabricator.services.mozilla.com/D87732
2020-08-25 07:41:12 +00:00
sotaro
520e0ba1c7 Bug 1660434 - Add EGL_KHR_wait_sync support r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D87994
2020-08-24 17:50:48 +00:00
Jeff Gilbert
62f6cc5d9c Bug 1659225 - Apply UNPACK_ params only after init. r=lsalzman
+ Add asserts that we are infact in the default state.

Differential Revision: https://phabricator.services.mozilla.com/D87964
2020-08-23 06:09:33 +00:00
Jeff Gilbert
e3e331e9ad Bug 1658433 - Implement WebGL draft extension EXT_texture_norm16. r=lsalzman,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D86630
2020-08-12 15:19:17 +00:00
Jeff Gilbert
a824ab4d81 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-07 07:14:46 +00:00
Mihai Alexandru Michis
639b2bd075 Backed out changeset f1f10f791e99 (bug 1656034) for causing bustages in DMABufSurface.cpp
CLOSED TREE
2020-08-07 02:36:33 +03:00
Jeff Gilbert
b5d6906473 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-06 22:53:53 +00:00
Mihai Alexandru Michis
4719cf3e7d Backed out changeset 06538f141210 (bug 1656034) for causing bustages in GLContextProviderEGL.cpp
CLOSED TREE
2020-08-07 00:19:32 +03:00
Jeff Gilbert
78c66237bb Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-06 19:56:43 +00:00
Dzmitry Malyshau
86b28cfe0b Bug 1656853 - Check for EGL context to be alive on destruction r=aosmond,jgilbert
This probably doesn't matter, as the changes will be rolled back by
https://phabricator.services.mozilla.com/D85496
But the change should fix the crash anyway, for now.

Differential Revision: https://phabricator.services.mozilla.com/D86069
2020-08-05 21:58:14 +00:00
Robert Mader
dd996a396b Bug 1656472 - [X11] Drop CopySubBufferMESA and add SwapBuffersWithDamage support, r=nical
This largely reverts D81868, only keeping what's needed to make SwapBuffersWithDamage
work, and also adds BufferAge support to RenderCompositorOGL.

Differential Revision: https://phabricator.services.mozilla.com/D85565
2020-07-31 16:13:54 +00:00
Dzmitry Malyshau
3d822b4eda Bug 1652972 - Mark EGL context as lost on Shutdown() r=aosmond
This is meant to save us in cases where the message loop in GPU process
receives commands related to resources that point to the old EGL context
that was just shut down. Since the symbols are erased, we'd end up with
trying to execute a nullptr on `MakeCurrent()`. With marking the context
as lost, however, no symbols will be accessed.

Differential Revision: https://phabricator.services.mozilla.com/D84868
2020-07-29 02:33:54 +00:00
Robert Mader
1e96614739 Bug 1654687 - Remove some more GTK3-version related checks, r=stransky
They are all present since 3.8. Also bumb a version check.

Differential Revision: https://phabricator.services.mozilla.com/D84899
2020-07-26 13:20:13 +00:00
Emilio Cobos Álvarez
ff61891772 Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp
Having two classes in the inheritance chain inherit from SupportsWeakPtr
now won't compile, but you can use WeakPtr<Derived> when any base class
inherits from SupportsWeakPtr.

Differential Revision: https://phabricator.services.mozilla.com/D83674
2020-07-23 14:51:46 +00:00
Andrew Osmond
6cfed64163 Bug 1650748 - Prevent DMABUF usage with GLX. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D84256
2020-07-22 18:58:11 +00:00
Nicolas Silva
eb34985ecc Bug 1625070 - Use glxCopySubBufferMESA when available if partial present and WebRender are enabled on GLX. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D81868
2020-07-16 14:44:41 +00:00