Commit Graph

1364 Commits

Author SHA1 Message Date
Victor Berger a717fa36cd backend.session: Migrate to using Signaler
Change the session backend to rely on Signaler to propagate its
signals. Also introduce the Linkable trait to allow generic composition
of objects needing to listen for signals.
2020-05-23 21:37:22 +02:00
Victor Berger c3859d999b backend.session: use pkg-config to find logind lib
Introduce the `backend_session_elogind` cargo feature which pulls
`backend_session_logind` and makes the logind session backend seek
`libelogind.so` instead of `libsystemd.so`.

Fixes #127
2020-05-23 21:37:22 +02:00
Victor Berger b05c2ccbba backend.session: rework as calloop event sources
Rework the Session Notifiers so that they are calloop event sources
by themselves, allowing them to be inserted by the user without the
`bind_session` dance.

Also update the logind backend to use the current dbus-rs API, rather
than the deprecated one.
2020-05-23 21:37:22 +02:00
Victor Brekenfeld 2d5e829e12
Merge pull request #214 from Smithay/feature/nvidia
Add support for nvidia's EGLStream API
2020-05-23 15:47:28 +02:00
Victor Brekenfeld c186bbb4c4 ci: add backend_drm_eglstream to feature matrix 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 0c19a461b6 anvil: use fallback-device for gbm/nvidia 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 9acd109a04 fallback: support FallbackDevice<GbmDevice, EglStreamDevice> for automatic nvidia support 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 53f5753943 udev: Add function to query the loaded driver of a device 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 38d3db565a anvil: do not double initialize surfaces with multiple matching encoders 2020-05-23 00:29:32 +02:00
Victor Brekenfeld 69c1116d82 eglstream: initial backend implementation 2020-05-23 00:29:32 +02:00
Victor Brekenfeld eb1dc5de4f egl: do not fail if desired swap interval cannot be selected 2020-05-23 00:17:19 +02:00
Victor Brekenfeld e8926da56c graphics: Log underlying error of SwapBuffers 2020-05-23 00:17:19 +02:00
Victor Brekenfeld d3a60e03c9 egl: differenciate display creation failures 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 73447bd668 egl: Pass clonable display handle to native-impls 2020-05-23 00:17:19 +02:00
Victor Brekenfeld cc6e3569f0 gbm: Do not try to use eglGetDisplay 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 997895b3c7 drm: allow crate internal impls to access crtc and plane 2020-05-23 00:17:19 +02:00
Victor Brekenfeld f9aef43ac2 egl: move loading into separate function 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 19ef1ed3c0 egl: move eglSwapBuffers call into NativeSurface 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 0565e5fd79 egl: NativeSurface: replace recreate with create 2020-05-23 00:17:19 +02:00
Victor Brekenfeld 0267703e91 egl: move surface creation into `NativeSurface` 2020-05-22 23:19:19 +02:00
Victor Brekenfeld 4647141770 egl: Allow displays to specify surface_type 2020-05-22 23:19:17 +02:00
Victor Brekenfeld 726624cbd8 egl: allow display creation to specify attributes 2020-05-22 23:18:49 +02:00
Victor Brekenfeld 1a39c208c4
Merge pull request #209 from Smithay/fix/egl_glium_errors
Rework rendering loop
2020-05-14 00:45:20 +02:00
Victor Brekenfeld 0486c567ac fix ci 2020-05-14 00:36:22 +02:00
Victor Brekenfeld 64a57a4cc8 downgrade some recoverable errors to warnings 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 9610f31e44 drm: log initial surface parameters 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 2128f68847 egl: log hidden egl errors 2020-05-12 20:03:03 +02:00
Victor Brekenfeld bf3e8b4d10 egl: check for surface creation failure 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 7c4ca4e524 atomic: do not revert on failing state 2020-05-12 20:03:03 +02:00
Victor Brekenfeld f1c40f7306 lint: fmt & clippy 2020-05-12 20:03:03 +02:00
Victor Brekenfeld 20b373470f drm: permission denied is also temporary 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 25f2610ea6 gbm: Do not unpack drm-rs errors on conversion 2020-05-12 19:47:16 +02:00
Victor Brekenfeld a0c65114fb drm: Do not unpack drm-rs errors on conversion 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 12a57f799a logind: ignore gone events 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 44ebed3446 gbm: only clear recreation state on successful commits 2020-05-12 19:47:16 +02:00
Victor Brekenfeld a6863af496 egl: force surface creation on resume 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 140185f6f5 atomic: clear invalid cursor buffers 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 163533a72a atomic: avoid too excessive trace logging 2020-05-12 19:47:16 +02:00
Victor Brekenfeld b4cbecd369 atomic: do not set current state if commit fails 2020-05-12 19:47:16 +02:00
Victor Brekenfeld f3dabe2cea atomic: clear broken resources on resume 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 9bbd9edb0c egl: track backends 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 7bca463934 atomic: do not cache cursor fb info 2020-05-12 19:47:16 +02:00
Victor Brekenfeld 7518f8c0f7 anvil: retry initial renderings 2020-05-12 19:47:10 +02:00
Victor Brekenfeld 1a5cc59983 drm: do not ignore events for inactive devices 2020-05-12 19:46:18 +02:00
Victor Brekenfeld 49215f6a3d gbm: do not implicitly restart rendering loop 2020-05-12 19:46:18 +02:00
Victor Brekenfeld 64fc1aa0da gbm: do not block buffer forever if commit/page_flip fails 2020-05-12 19:46:18 +02:00
Victor Brekenfeld 0a716438e3 gbm: split out clear_framebuffers 2020-05-12 19:46:18 +02:00
Victor Brekenfeld eaa3a0ca87 egl: fix broken egl check 2020-05-12 19:46:18 +02:00
Victor Berger b708f88da6 anvil: Fuse InputHandler into AnvilState 2020-05-12 08:46:34 +02:00
Victor Berger 8f543eb597 backend.input: rework libinput as a calloop source 2020-05-12 08:46:34 +02:00