Граф коммитов

32 Коммитов

Автор SHA1 Сообщение Дата
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
Martin Stransky d78c51a229 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-22 13:24:09 +00:00