Commit Graph

2257 Commits

Author SHA1 Message Date
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