Commit graph

51 commits

Author SHA1 Message Date
Martin Stransky
59c99a1b8c Bug 1632059 [Wayland] Use wayland display directly for va-api, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D72122
2020-04-23 16:06:54 +00:00
Martin Stransky
6cfd5ed10f Bug 1629526 [Wayland] Add gWaylandThreadLoopMutex to guard thread loop shutdown, r=jhorak
- Add gWaylandThreadLoopMutex to guard thread loop shutdown
- Rename gWaylandDisplaysMutex to gWaylandDisplayArrayMutex to clarify it's mutex for gWaylandDisplays array access
- Add gWaylandDisplayArrayMutex lock at ReleaseDisplaysAtExit()
- Rename DispatcherThreadLoop names to ThreadLoop

Differential Revision: https://phabricator.services.mozilla.com/D71106

--HG--
extra : moz-landing-system : lando
2020-04-16 06:07:06 +00:00
Bogdan Tara
c53091bec7 Bug 1629526 - Fix whitespace lint on nsWaylandDisplay.cpp CLOSED TREE 2020-04-14 17:42:03 +03:00
Martin Stransky
37e2e6954d Bug 1629526 [Wayland] Use mutex when clear mDispatcherThreadLoop, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D70848

--HG--
extra : moz-landing-system : lando
2020-04-14 13:25:12 +00:00
Martin Stransky
39bcf103db Bug 1625294 [Wayland] Ship testing dmabuf preferences on nightly only, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D68455

--HG--
extra : moz-landing-system : lando
2020-03-27 08:49:47 +00:00
Martin Stransky
c811449120 Bug 1623060 [Wayland] Respect GtkWidget size then committing to wayland surface, r=jhorak
Mutter 3.36 requests exact match of wl_surface/wl_subsurface size so we need to respect
wl_surface size (GtkWidget size) and create a wl_subsurface with the same size.

Differential Revision: https://phabricator.services.mozilla.com/D67137

--HG--
extra : moz-landing-system : lando
2020-03-18 09:43:34 +00:00
Martin Stransky
d2b8e6dd4e Bug 1619530 [Wayland] Don't request zwp_linux_dmabuf to import dmabuf objects, r=jhorak
- Allow to create dmabuf object without zwp_linux_dmabuf extension.
- Don't import GBM dmabuf objects

Differential Revision: https://phabricator.services.mozilla.com/D65500

--HG--
extra : moz-landing-system : lando
2020-03-06 10:40:39 +00:00
Martin Stransky
8416366bd0 Bug 1619907 [Wayland] Provide logging to dmabuf code, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D65307

--HG--
extra : moz-landing-system : lando
2020-03-05 09:19:59 +00:00
Ciure Andrei
4a6e05a3d7 Backed out changeset f96f7b534cbd (bug 1619907) for causing build bustages CLOSED TREE 2020-03-05 11:03:49 +02:00
Martin Stransky
0d15b67122 Bug 1619907 [Wayland] Provide logging to dmabuf code, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D65307

--HG--
extra : moz-landing-system : lando
2020-03-05 08:21:44 +00:00
Martin Stransky
a8b9ee58f8 Bug 1618367 [Wayland] Make nsWaylandDisplay usable on child processes, rename dmabuf preferences, r=jhorak
- Increment MAX_DISPLAY_CONNECTIONS to 5 (main, compositor, renderer, and two media threads).
- Stop posting events to message loop when it's deleted. Use message loop shutdown observer for it.
- Shutdown nsWaylandDisplay event queue on both chrome and content processes.
- Use static preference variables which means dmabuf prefs are renamed to: widget.wayland-dmabuf-textures.enabled widget.wayland-dmabuf-webgl.enabled widget.wayland-dmabuf-vaapi.enabled

Differential Revision: https://phabricator.services.mozilla.com/D64474

--HG--
extra : moz-landing-system : lando
2020-02-28 10:09:04 +00:00
Martin Stransky
b929ff1886 Bug 1616680 [Wayland] Use widget.wayland_dmabuf_vaapi.enabled to enable VAAPI / dmabuf video playback, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D63381

--HG--
extra : moz-landing-system : lando
2020-02-24 09:50:23 +00:00
Martin Stransky
8df4dc66e5 Bug 1608800 [Wayland] Implement DMABUF modifiers, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D59677

--HG--
extra : moz-landing-system : lando
2020-01-14 13:13:51 +00:00
Martin Stransky
661b57c13f Bug 1608380 [Wayland] Divide dmabuf configuration for textures and webgl backend, r=jhorak
We need to enable dmabuf backend for textures and webgl backend independently.
There's no gain from dmabuf texture backend right now but it brings performance improvements
as WebGL framebuffer.

Depends on D59485

Differential Revision: https://phabricator.services.mozilla.com/D59486

--HG--
extra : moz-landing-system : lando
2020-01-13 13:30:36 +00:00
Martin Stransky
654ba476fb Bug 1607721 [Wayland] Check default nsWaylandDisplay for an actual display type, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D59098

--HG--
extra : moz-landing-system : lando
2020-01-08 12:30:48 +00:00
Greg V
97c5686fd7 Bug 1587360 - Add support for idle-inhibit Wayland protocol r=stransky
The idle-inhibit protocol allows idle wake locks on Wayland
without any of the supported D-Bus interfaces running.

Differential Revision: https://phabricator.services.mozilla.com/D49095

--HG--
extra : moz-landing-system : lando
2020-01-06 16:11:19 +00:00
Martin Stransky
fbf6218371 Bug 1599393 [Wayland] Use dmabuf for basic compositor under preference, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D54692

--HG--
extra : moz-landing-system : lando
2019-12-11 15:37:44 +00:00
Emilio Cobos Álvarez
0f8d2aad39 Bug 1600454 - Add some missing includes in nsWaylandDisplay.cpp r=stransky
Otherwise open flags are not defined in some build configurations (or in
non-unified builds, for that matter).

Differential Revision: https://phabricator.services.mozilla.com/D55363

--HG--
extra : moz-landing-system : lando
2019-12-02 06:54:08 +00:00
Martin Stransky
6bafd20d69 Bug 1587731 - [Wayland] Don't throw missing GdkDisplay warning in headless mode r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D49155

--HG--
extra : moz-landing-system : lando
2019-10-14 13:37:44 +00:00
Martin Stransky
4b928e7b91 Bug 1580152 - [Wayland] Fix rendering glitches on wayland , r=jhorak
- Recently we're missing some drawings as we disabled flushing cached images in frame callback. Let's enable it again and make sure we don't flush the drawings between Lock()/Commit() compositor calls which is controlled by mBufferCommitAllowed.

- When we draw directly to wl_buffer, flush all cached drawings we have or clear them if there's fullscreen update. It prevents potential rendering of cached images over unrelevant buffer content.

- Flush cached images when wl_buffer is detached by wayland compositor. It allows to paint delayed drawings and ensures they won't stay in the queue infinitely.

- Use mBufferPendingCommit to indicate that the WaylandBuffer contains updates from gecko which has not been submitted to wayland compositor yet. Allows delated commit handlers (frame callback, delayed commit and when wl_buffer is detached) to send WaylandBuffer content to wayland compositor.

- Record time of last finished commit to mLastCommitTime and throws warning when wayland compositor does not release wl_buffer in 200ms.

- Use wl_display_sync() to synchronize wl_display events. Wait for events from wl_display until all pending events are processed before we start drawing at WindowSurfaceWayland::Lock(). There may wl_buffer release event waiting which releases wl_buffer for rendering.

- Don't use XMost()/YMost() to get drawing area size.

- Remove mDisplayThreadMessageLoop as it's no longer used.

Differential Revision: https://phabricator.services.mozilla.com/D45661

--HG--
extra : moz-landing-system : lando
2019-09-17 12:34:28 +00:00
Martin Stransky
2ba6437bbb Bug 1579794 - [Wayland] Use wl_surface_damage_buffer() and require wl_compositor v.4, r=jhorak
Use wl_surface_damage_buffer() to propagate wl_buffer damage to avoid rounding errors and
rendering artifacts for HiDPI wl_buffers.

Depends on D45165

Differential Revision: https://phabricator.services.mozilla.com/D45166

--HG--
extra : moz-landing-system : lando
2019-09-10 07:58:56 +00:00
Martin Stransky
7ec25f9853 Bug 1577024 - [Wayland] Enable experimental wayland backend modes by widget.wayland_cache_mode pref, r=jhorak
Image cache mode can be set by widget.wayland_cache_mode.

- widget.wayland_cache_mode = 0 (or missing):
  Cache and clip all drawings, default. It's slowest
  but also without any rendered artifacts.

- widget.wayland_cache_mode = 1:
  Cache drawing only when back buffer is missing. May produce
  some rendering artifacts and flickering when partial screen update
  is rendered.

- widget.wayland_cache_mode = 2:
  Don't cache anything, draw only when back buffer is available.
  Suitable for fullscreen content only like fullscreen video playback and
  may work well with dmabuf backend.

Differential Revision: https://phabricator.services.mozilla.com/D43681
2019-08-31 00:19:03 +03:00
Martin Stransky
4e8409ddcd Bug 1576898 - [Wayland] Implement gbm_bo_import & gbm_device_is_format_supported at nsGbmLib, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D43603

--HG--
extra : moz-landing-system : lando
2019-08-28 10:38:11 +00:00
Neil Bleasdale
7908205544 Bug 1564797 - Initialise mDmabuf in nsWaylandDisplay constructor. r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D38578

--HG--
extra : moz-landing-system : lando
2019-07-25 21:33:41 +00:00
Martin Stransky
14cac6b6f3 Bug 1561859 - [Wayland] Expose active DRM on Wayland in about:support & telemetry, r=kats
Differential Revision: https://phabricator.services.mozilla.com/D36248

--HG--
extra : moz-landing-system : lando
2019-07-02 09:17:22 +00:00
Martin Stransky
91bbb7f0d9 Bug 1562023 - [Wayland] Factorize out DMABUF setup, r=ashie
Differential Revision: https://phabricator.services.mozilla.com/D36420

--HG--
extra : moz-landing-system : lando
2019-07-01 08:55:03 +00:00
Martin Stransky
df9765aca2 Bug 1561883 - [Wayland] Provide WaylandDisplayGetWLDisplay() to directly get wl_display, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D36183

--HG--
extra : moz-landing-system : lando
2019-07-01 06:38:32 +00:00
Gurzau Raul
125bf10273 Backed out changeset 460bb9bef9c3 (bug 1561883) for build bustage at nsWaylandDisplay.h on a CLOSED TREE. 2019-06-29 14:24:34 +03:00
Martin Stransky
450f08a255 Bug 1561883 - [Wayland] Provide WaylandDisplayGetWLDisplay() to directly get wl_display, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D36183

--HG--
extra : moz-landing-system : lando
2019-06-28 14:58:55 +00:00
Martin Stransky
f1bbfe6ec3 Bug 1557265 - Remove HAVE_LIBDRM defines as libdrm is mandatory now, r=glandium
Depends on D33918

Differential Revision: https://phabricator.services.mozilla.com/D34857

--HG--
extra : moz-landing-system : lando
2019-06-20 21:52:40 +00:00
Noemi Erli
509cc39c0f Backed out 3 changesets (bug 1557265) for causing Linux bustages CLOSED TREE
Backed out changeset 5e797f74091a (bug 1557265)
Backed out changeset f10c947516e0 (bug 1557265)
Backed out changeset f7e5ef31a50b (bug 1557265)
2019-06-20 22:13:33 +03:00
Martin Stransky
e11e5a22b9 Bug 1557265 - Remove HAVE_LIBDRM defines as libdrm is mandatory now, r=glandium
Depends on D33918

Differential Revision: https://phabricator.services.mozilla.com/D34857

--HG--
extra : moz-landing-system : lando
2019-06-20 18:05:27 +00:00
Daniel Varga
a50d7d7a01 Backed out 3 changesets (bug 1557265) for build bustage at /obj-firefox/dist/include/mozilla/widget/nsWaylandDisplay.h. On a CLOSED TREE
Backed out changeset 7b180f98ba3e (bug 1557265)
Backed out changeset 0739231e0456 (bug 1557265)
Backed out changeset 5fc2424b9085 (bug 1557265)

--HG--
extra : rebase_source : b681bd09fc7b066f8caf157c6990927755a44d36
2019-06-20 03:34:20 +03:00
Martin Stransky
6d7a459e88 Bug 1557265 - Remove HAVE_LIBDRM defines as libdrm is mandatory now, r=glandium
Depends on D33918

Differential Revision: https://phabricator.services.mozilla.com/D34857

--HG--
extra : moz-landing-system : lando
2019-06-19 21:55:35 +00:00
Martin Stransky
2c519e8d1b Bug 1557266 - [Wayland] Use widget.wayland_dmabuf_backend.enabled preference to enable wayland dmabuf backend, r=jhorak
- Add widget.wayland_dmabuf_backend.enabled
- Expose it to Wayland backend by WaylandDisplay object
- Add more logging to Wayland DMABuf backend

Differential Revision: https://phabricator.services.mozilla.com/D33919

--HG--
extra : moz-landing-system : lando
2019-06-10 12:37:06 +00:00
Martin Stransky
7c09d4b7af Bug 1557658 - [Wayland] Don't use developers version of libdrm.so and libgbm.so, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D34146

--HG--
extra : moz-landing-system : lando
2019-06-07 21:45:46 +00:00
Dorel Luca
f304631202 Backed out changeset 37138554f34a (bug 1557266) for Build bustage in /builds/worker/workspace/build/src/widget/gtk/WindowSurfaceWayland.cpp. CLOSED TREE 2019-06-08 00:31:56 +03:00
Dorel Luca
0c58ec27a3 Backed out changeset 819a428097dc (bug 1557658) for backout conflicts with Bug 1557266. CLOSED TREE 2019-06-08 00:30:30 +03:00
Martin Stransky
fcb02207a1 Bug 1557658 - [Wayland] Don't use developers version of libdrm.so and libgbm.so, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D34146

--HG--
extra : moz-landing-system : lando
2019-06-07 14:37:54 +00:00
Martin Stransky
5d9ce4b333 Bug 1557266 - [Wayland] Use widget.wayland_dmabuf_backend.enabled preference to enable wayland dmabuf backend, r=jhorak
- Add widget.wayland_dmabuf_backend.enabled
- Expose it to Wayland backend by WaylandDisplay object
- Add more logging to Wayland DMABuf backend

Differential Revision: https://phabricator.services.mozilla.com/D33919

--HG--
extra : moz-landing-system : lando
2019-06-07 14:34:25 +00:00
Martin Stransky
057f924f15 Bug 1554520 - [Wayland] Load DMABuf setup in WaylandDisplay class, r=jhorak
- Implement nsGbmLib object which binds symbols run-time from libgbm.so library.
- Load available DRM pixel formats from Wayland registry and store related modifiers at WaylandDisplay object.
- Implement Gbm device setup at WaylandDisplay.

Differential Revision: https://phabricator.services.mozilla.com/D32633

--HG--
extra : moz-landing-system : lando
2019-06-04 08:46:59 +00:00
Sylvestre Ledru
e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Kenny Levinsen
6bb9951cf7 Bug 1467127 - Post wl_display_dispatch_queue_pending tasks from ProcessNextNativeEvent. r=stransky
Send tasks to dispatch our other wayland event queues from their respective threads whenever we service the GTK main event loop.

Differential Revision: https://phabricator.services.mozilla.com/D28819

--HG--
extra : moz-landing-system : lando
2019-04-30 09:37:37 +00:00
Sylvestre Ledru
7f60810d86 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D27245

--HG--
extra : moz-landing-system : lando
2019-04-12 13:14:25 +00:00
Martin Stransky
1ffeea40ca Bug 1517205 - Make nsWaylandDisplay() global, r=lsalzman
Lazilly create nsWaylandDisplay objects and remove them at Firefox quit.

nsWaylandDisplay objects should stay as global objects and don't be created/released.
The creation/removal wastes resources on server side as the wl_registry objects at nsWaylandDisplay has to be stored at server
side and can't be removed until firefox ends [1] anyway.

Also the removed nsWaylandDisplay causes crashes when display
topology changes due to the global nature of the wl_registry.

[1] https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_registry

Differential Revision: https://phabricator.services.mozilla.com/D26673

--HG--
extra : moz-landing-system : lando
2019-04-09 21:39:51 +00:00
sotaro
ba95495155 Bug 1527556 - Change MAX_DISPLAY_CONNECTIONS to 3 r=stransky
nsWaylandDisplay needs to be allocated for each calling thread(main thread, compositor thread and render thread)

Differential Revision: https://phabricator.services.mozilla.com/D20118

--HG--
extra : moz-landing-system : lando
2019-02-18 09:15:30 +00:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Martin Stransky
786a526298 Bug 1507475 - [Wayland] Implement global wayland registry, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D12255

--HG--
extra : moz-landing-system : lando
2018-11-23 07:04:16 +00:00
Noemi Erli
c00dbe5749 Backed out changeset bafd708f5788 (bug 1507475) for bustages in builds/worker/workspace/build/src/widget/gtk/mozcontainer.cpp CLOSED TREE 2018-11-22 20:09:34 +02:00