aboutsummaryrefslogtreecommitdiff
path: root/backend/drm
AgeCommit message (Collapse)Author
2018-01-30backend: fix use-after-free when destroying backendsemersion
The backend destroy signal is emitted before the output_remove signal is. When the destroy signal is emitted listeners remove their output_remove listener, so the output_remove signal is never received and listeners have an invalid output pointer. The correct way to solve this would be to remove the output_remove signal completely and use the wlr_output.events.destroy signal instead. This isn't yet possible because wl_signal_emit is unsafe and listeners cannot be removed in listeners.
2018-01-30backend/drm: fix hw cursor position on rotated and scaled outputsemersion
output: add wlr_output_transformed_resolution
2018-01-29Merge remote-tracking branch 'upstream/master' into output-damageemersion
2018-01-29Merge pull request #580 from emersion/screenshooter-renderer-backportTony Crisci
Backport screenshooter fixes from the renderer redesign v1
2018-01-28backend/drm: do not retry pageflip when swapping buffersemersion
2018-01-28Do not flush damage if swapping buffers failedemersion
This should solve issues with multiple outputs on DRM backend.
2018-01-28Merge remote-tracking branch 'upstream/master' into output-damageemersion
2018-01-27drm: Use ptrdiff_t instead of intmax_t in format stringGuido Günther
since we're looking at pointer differences. Otherwise the build fails on arm like In file included from ../backend/drm/drm.c:19:0: ../include/wlr/util/log.h:34:17: error: format '%jd' expects argument of type 'intmax_t', but argument 7 has type 'int' [-Werror=format=] _wlr_log(verb, "[%s:%d] " fmt, _strip_path(__FILE__), __LINE__, ##__VA_ARGS__) ^ ../backend/drm/drm.c:462:2: note: in expansion of macro 'wlr_log' wlr_log(L_DEBUG, "%s: crtc=%ju ovr=%jd pri=%jd cur=%jd", conn->output.name, ^~~~~~~ ../backend/drm/drm.c:462:39: note: format string is defined here wlr_log(L_DEBUG, "%s: crtc=%ju ovr=%jd pri=%jd cur=%jd", conn->output.name, ~~^ %d
2018-01-27Fix flickering when switching VTemersion
2018-01-26output: add wlr_output_schedule_frameemersion
2018-01-26Damage tracking for transformed outputsemersion
2018-01-24Clean up session signal handler on drm init failVincent Vanlaer
2018-01-23Backport screenshooter fixes from the renderer redesign v1emersion
This backports some changes to #319 to fix the screenshooter data format. This also adds wlr_backend_get_renderer which will be useful to support multiple renderers.
2018-01-21Merge remote-tracking branch 'upstream/master' into output-damageemersion
2018-01-21Add con/crtc null check to move_cursor in drmTimidger
2018-01-21Added crtc null check for other drm funcsTimidger
2018-01-21Fixes #575Timidger
2018-01-21output: add damage tracking via buffer ageemersion
2018-01-20backend/drm: fix hardware cursors not movingemersion
This adds back `wlr_output::needs_swap`. This allows a backend to request buffer swaps even if the output isn't damaged. This is needed by the DRM backend to trigger pageflips when the cursor moves.
2018-01-19backend/drm: do not try a pageflip is another one is in pendingemersion
2018-01-19backend/drm: fix retry pageflipemersion
2018-01-15Merge pull request #549 from emersion/output-enabledDrew DeVault
Add wlr_output::enabled
2018-01-15drm: do not pageflip when enabling outputemersion
2018-01-15Don't crash if crtc->cursor is NULLGuido Günther
Same as what atomic_crtc_set_cursor does Core was generated by `_build/rootston/rootston'. Program terminated with signal SIGSEGV, Segmentation fault. 0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170 170 if (!crtc || !crtc->cursor) { (gdb) bt 0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170 1 0xb6f2a856 in wlr_drm_connector_move_cursor (output=0x2242b28, x=0, y=0) at ../backend/drm/drm.c:634 2 0xb6f3cea0 in wlr_output_cursor_set_image (cursor=0x21a0338, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4) at ../types/wlr_output.c:516 3 0xb6f39da2 in wlr_cursor_set_image (cur=0x22cfc90, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4, scale=1) at ../types/wlr_cursor.c:310 4 0xb6f44d2a in wlr_xcursor_manager_set_cursor_image (manager=0x22cfd10, name=0x434420 "left_ptr", cursor=0x22cfc90) at ../types/wlr_xcursor_manager.c:80 5 0x00431c0a in roots_seat_configure_xcursor (seat=0x22cef08) at ../rootston/seat.c:515 6 0x0043137c in roots_seat_init_cursor (seat=0x22cef08) at ../rootston/seat.c:210 7 0x004315ec in roots_seat_create (input=0x218d220, name=0x434594 "seat0") at ../rootston/seat.c:289 8 0x0042ecba in input_get_seat (input=0x218d220, name=0x434594 "seat0") at ../rootston/input.c:39 9 0x0042ed04 in input_add_notify (listener=0x218d228, data=0x218d3b0) at ../rootston/input.c:54 10 0xb6f2f2e6 in wl_signal_emit (signal=0x1ea548c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387 11 0xb6f2f572 in input_add_reemit (listener=0x1ea9990, data=0x218d3b0) at ../backend/multi/backend.c:101 12 0xb6f2db7e in wl_signal_emit (signal=0x1ea992c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387 13 0xb6f2ddaa in handle_device_added (backend=0x1ea9920, libinput_dev=0x2292598) at ../backend/libinput/events.c:87 14 0xb6f2e164 in wlr_libinput_event (backend=0x1ea9920, event=0x2292b78) at ../backend/libinput/events.c:198 15 0xb6f2d678 in wlr_libinput_readable (fd=23, mask=1, _backend=0x1ea9920) at ../backend/libinput/backend.c:28 16 0xb6f2d7c0 in wlr_libinput_backend_start (_backend=0x1ea9920) at ../backend/libinput/backend.c:74 17 0xb6f27170 in wlr_backend_start (backend=0x1ea9920) at ../backend/backend.c:30 18 0xb6f2f320 in multi_backend_start (wlr_backend=0x1ea5480) at ../backend/multi/backend.c:22 19 0xb6f27170 in wlr_backend_start (backend=0x1ea5480) at ../backend/backend.c:30 20 0x0042fbc6 in main (argc=1, argv=0xbe89dd04) at ../rootston/main.c:60
2018-01-07Fix output enable in DRM backendemersion
2018-01-04Add wlr_output::enabledemersion
2017-12-28style: fix sizeof() calls without parenthesesDominique Martinet
2017-12-26Fix cursor on transformed output with DRM backendemersion
2017-12-19remove session from multibackendTony Crisci
2017-12-19drm backend: add wlr_output_is_drmDominique Martinet
2017-12-17Refactor wlr_egl_init to accept config_attribsemersion
2017-12-17Add full refresh rate support to custom modesemersion
2017-12-14Merge pull request #453 from emersion/surface-transformDrew DeVault
Add surface transforms support
2017-12-14Merge branch 'master' into surface-transformemersion
2017-12-14Merge branch 'master' into display-destroyemersion
2017-12-12Update output layout when scale or transform changesemersion
2017-12-11Merge branch 'master' into display-destroyemersion
2017-12-08Listen to display destroy in xwayland, rename wlr_egl_freeemersion
2017-12-07Listen to display destroy in backendsemersion
2017-12-07Configure outputs with make, model, serial in rootstonemersion
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing. Updates #403
2017-12-05Fix segfault when moving hardware cursoremersion
2017-12-01Make wlr_output_transform_* functions public, refactoringemersion
2017-11-30Use correct include path for glapi.hScott Anderson
2017-11-11Add wlr_output.serialemersion
2017-11-01rootston exit: fix drm destroyDominique Martinet
wlr_drm_connector were being freed without removing them from the drm->outputs list, segfaulting on destroy
2017-11-01Remove mysterious hotspot switch in DRM backendemersion
2017-11-01Fix hidden software cursors, fix cursor transformations on DRM backendemersion
2017-11-01Apply output transformation to pointer events in Wayland backendemersion
2017-10-31Fix cursor hotspot with rotated outputs on DRM backendemersion
2017-10-31Transform cursor hotspotemersion