Closed Bug 1554520 Opened 7 months ago Closed 6 months ago

[Wayland] Load DMABuf setup in Wayland Display

Categories

(Core :: Widget: Gtk, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox69 --- fixed

People

(Reporter: stransky, Assigned: stransky)

References

Details

Attachments

(2 files)

Load DMABuf setup in Wayland Display object. Implement nsGbmLib which binds libgbm symbols runtime. When DMABuf is requested Wayland Display tries to bind the library, configure Gbm device and loads available DRM pixel formats.

  • 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.
Keywords: checkin-needed

Pushed by btara@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a1c23b6ea708
[Wayland] Load DMABuf setup in WaylandDisplay class, r=jhorak

Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69

I found that the following patch(also attached) is needed when ac_add_options --enable-printing transitioned to ac_add_options --disable-printing

diff -r 026812d05de4 widget/gtk/nsWaylandDisplay.cpp
--- a/widget/gtk/nsWaylandDisplay.cpp	Fri Jul 26 00:51:09 2019 +0300
+++ b/widget/gtk/nsWaylandDisplay.cpp	Fri Jul 26 06:59:14 2019 +0200
@@ -6,6 +6,8 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "nsWaylandDisplay.h"
+#include <fcntl.h>
+
 
 namespace mozilla {
 namespace widget {

transition tested on:
[2019-07-26T12:45:37 PM+0200] [ALPM] upgraded firefox-hg (r483295+.ca1dbd076e1e+-1 -> r484799+.9813549331af+-1)

my mozconfig (in case needed):

$ cat mozconfig |grep -v '^#' | sed -E 's/(.*)( #.*)/\1/; /^$/d'
. "$topsrcdir/browser/config/mozconfig"
ac_add_options --enable-application=browser
ac_add_options --enable-optimize
ac_add_options --enable-more-deterministic
ac_add_options --disable-debug
ac_add_options --disable-install-strip
ac_add_options --disable-strip
ac_add_options --enable-debug-symbols
ac_add_options --disable-debug-js-modules
ac_add_options --prefix=/usr
export -n MOZ_TELEMETRY_REPORTING
unset MOZ_TELEMETRY_REPORTING
export MOZ_ADDON_SIGNING=1
export MOZ_REQUIRE_SIGNING=0
export -n MOZ_TELEMETRY_ON_BY_DEFAULT
unset MOZ_TELEMETRY_ON_BY_DEFAULT
ac_add_options --with-system-nspr
ac_add_options --without-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-png
ac_add_options --with-system-libevent
ac_add_options --with-system-libvpx
ac_add_options --enable-system-sqlite
ac_add_options --enable-system-ffi
ac_add_options --enable-startup-notification
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-update-channel
ac_add_options --disable-valgrind
ac_add_options --disable-jprof
ac_add_options --disable-instruments
ac_add_options --disable-callgrind
ac_add_options --disable-cpp-rtti
ac_add_options --enable-gold
ac_add_options --disable-dtrace
ac_add_options --disable-printing
ac_add_options --disable-gconf
ac_add_options --disable-libproxy
ac_add_options --enable-dbus
ac_add_options --disable-dbm
ac_add_options --disable-accessibility
ac_add_options --disable-webrtc
ac_add_options --disable-raw
ac_add_options --disable-directshow
ac_add_options --disable-wmf
ac_add_options --enable-ffmpeg
ac_add_options --enable-fmp4
ac_add_options --disable-eme
ac_add_options --disable-alsa
ac_add_options --enable-jack
ac_add_options --enable-pulseaudio
ac_add_options --disable-system-extension-dirs
ac_add_options --enable-extensions=default,-skipgnomevfs,-skipgio
ac_add_options --disable-verify-mar
ac_add_options --disable-parental-controls
ac_add_options --enable-sandbox
ac_add_options --enable-content-sandbox
ac_add_options --enable-zipwriter
ac_add_options --disable-logrefcnt
ac_add_options --disable-dump-painting
ac_add_options --disable-elf-hack
ac_add_options --disable-tasktracer
ac_add_options --disable-stdcxx-compat
ac_add_options --disable-startupcache
ac_add_options --disable-nfc
ac_add_options --disable-webspeech
ac_add_options --disable-synth-speechd
ac_add_options --disable-webspeechtestbackend
ac_add_options --disable-synth-pico
ac_add_options --disable-system-cairo
ac_add_options --disable-system-pixman
ac_add_options --enable-xul
ac_add_options --disable-necko-wifi
ac_add_options --enable-ctypes
ac_add_options --with-system-icu
ac_add_options --with-intl-api
ac_add_options --enable-hardening
ac_add_options --enable-release
ac_add_options --enable-rust-simd
ac_add_options --disable-tests
ac_add_options --disable-lto
ac_add_options --disable-profiling
ac_add_options --disable-vtune
ac_add_options --disable-dmd
mk_add_options AUTOCONF=autoconf-2.13
mk_add_options PYTHON=/usr/bin/python2
export CXXFLAGS="-pipe -march=native -Wno-trigraphs -fno-delete-null-pointer-checks -mtune=native -fomit-frame-pointer -O2 -fPIC -D_FORTIFY_SOURCE=2 -fno-plt"
export CFLAGS="-pipe -march=native -Wno-trigraphs -fno-delete-null-pointer-checks -mtune=native -fomit-frame-pointer -O2 -fPIC -D_FORTIFY_SOURCE=2 -fno-plt"
ac_add_options --with-ccache=/usr/bin/ccache
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
mk_add_options AUTOCLOBBER=1
You need to log in before you can comment on or make changes to this bug.