Drew DeVault
664d7bfe4e
Merge pull request #618 from VincentVanlaer/atomic-gamma
...
Add atomic gamma control
2018-02-10 09:51:09 -05:00
emersion
bf6d245400
Swap buffers with damage
2018-02-09 22:54:14 +01:00
Vincent Vanlaer
2df97ed16a
Set needs_swap on output when gamma changes
2018-02-09 17:29:14 +01:00
Vincent Vanlaer
f5e5d1983b
Do not allow gamma control without a crtc
2018-02-09 17:29:14 +01:00
Vincent Vanlaer
ab011406ad
Add atomic gamma lut size fetching
...
Legacy gamma lut size now uses the new legacy_crtc member of
wlr_drm_crtc. This was Previously doen using old_crtc in
wlr_drm_connector, but since this refers to the crtc that was connected to
the ouput, this could give the wrong result.
2018-02-09 17:29:14 +01:00
Vincent Vanlaer
cc1229e75e
Add atomic gamma setting
2018-02-09 17:29:04 +01:00
emersion
cdd55b5d19
Merge remote-tracking branch 'upstream/master' into output-damage
2018-02-09 14:50:26 +01:00
Markus Ongyerth
08fda567d2
prevents reuse of outdated wlr_output state
...
On the drm output the wlr_drm_connector structs are reused.
This struct contains the wlr_output struct, which is reused as well.
The old code kept modes/edid and output state persistent over hotplug.
This nulls the relevant strings, reads newer edid data and removes old
modes on unplug.
2018-02-06 22:45:37 +01:00
emersion
3d3ea32137
Merge remote-tracking branch 'upstream/master' into output-damage
2018-02-03 00:15:44 +01:00
emersion
bb39277e97
backend/drm: update output enabled property on modeset
2018-02-02 22:28:08 +01:00
emersion
bb4aeb3b2f
backend/drm: support updating cursor when session is paused
2018-02-02 21:01:59 +01:00
Guido Günther
c5aac77692
Fix some typos
...
Prefer initialize over initialise since used more often in the sources.
2018-01-30 16:10:07 +01:00
emersion
d498855b9d
backend/drm: fix hw cursor position on rotated and scaled outputs
...
output: add wlr_output_transformed_resolution
2018-01-30 10:23:35 +01:00
emersion
b47e8c4a1d
backend/drm: do not retry pageflip when swapping buffers
2018-01-28 23:33:38 +01:00
emersion
20e6861021
Do not flush damage if swapping buffers failed
...
This should solve issues with multiple outputs on DRM backend.
2018-01-28 22:39:24 +01:00
emersion
1ee61dbd0f
Merge remote-tracking branch 'upstream/master' into output-damage
2018-01-28 21:22:50 +01:00
Guido Günther
d7dfbd23fa
drm: Use ptrdiff_t instead of intmax_t in format string
...
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-27 12:29:56 +01:00
emersion
7adf13e284
Fix flickering when switching VT
2018-01-27 11:16:42 +01:00
emersion
8d58ed502b
output: add wlr_output_schedule_frame
2018-01-26 22:39:23 +01:00
emersion
ece2c1e4e2
Damage tracking for transformed outputs
2018-01-26 22:11:09 +01:00
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage
2018-01-21 22:18:06 +01:00
Timidger
f8b9f44ff5
Add con/crtc null check to move_cursor in drm
2018-01-21 15:47:02 -05:00
Timidger
9d4ea146b6
Added crtc null check for other drm funcs
2018-01-21 15:37:23 -05:00
Timidger
4478cf1ddc
Fixes #575
2018-01-21 14:57:24 -05:00
emersion
0365b587f0
output: add damage tracking via buffer age
2018-01-21 00:06:35 +01:00
emersion
4ca38b84ed
backend/drm: fix hardware cursors not moving
...
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-20 16:43:14 +01:00
emersion
584f06ad2f
backend/drm: do not try a pageflip is another one is in pending
2018-01-19 23:46:40 +01:00
emersion
f0f97280a0
backend/drm: fix retry pageflip
2018-01-19 23:35:23 +01:00
emersion
53ba9b4eec
Fix output enable in DRM backend
2018-01-07 00:28:21 +01:00
emersion
771263380c
Add wlr_output::enabled
2018-01-04 12:46:15 +01:00
emersion
e737f65e38
Fix cursor on transformed output with DRM backend
2017-12-26 18:16:37 +01:00
Dominique Martinet
be95147385
drm backend: add wlr_output_is_drm
2017-12-19 20:13:49 +01:00
emersion
0256de0002
Add full refresh rate support to custom modes
2017-12-17 18:02:55 +01:00
emersion
466e86b7b2
Merge branch 'master' into surface-transform
2017-12-14 20:31:18 +01:00
emersion
3b4b8953d9
Update output layout when scale or transform changes
2017-12-12 21:58:00 +01:00
emersion
8af779fae6
Fix segfault when moving hardware cursor
2017-12-05 22:23:01 +01:00
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring
2017-12-01 09:15:33 +01:00
Dominique Martinet
f451ea3639
rootston exit: fix drm destroy
...
wlr_drm_connector were being freed without removing them
from the drm->outputs list, segfaulting on destroy
2017-11-01 19:37:35 +01:00
emersion
a15b35aa10
Remove mysterious hotspot switch in DRM backend
2017-11-01 14:36:58 +01:00
emersion
60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend
2017-11-01 14:25:41 +01:00
emersion
0beae99188
Apply output transformation to pointer events in Wayland backend
2017-11-01 11:00:27 +01:00
emersion
c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend
2017-10-31 12:30:57 +01:00
emersion
6656e25fd4
Transform cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
1b6c729360
Add wlr_output_cursor
2017-10-31 12:30:03 +01:00
Drew DeVault
fa9c6ecc53
Fix segfault in DRM cursor
2017-10-28 15:09:38 -04:00
emersion
9d587d759f
Do not set hw cursor if disabled when switching VT
2017-10-26 18:58:44 +02:00
Scott Anderson
75f0a6c998
Merge pull request #286 from versusvoid/update-connector-crtc-bindings
...
Update Connector-CRTC bindings after resume in DRM backend
2017-10-23 20:25:40 +13:00
Versus Void
549777ca19
Set crtc field when scanning for DRM connectors
...
and always use it when matching CRTCs with connectors.
Fix deactivated monitors check.
2017-10-22 21:38:30 +00:00
Versus Void
3c31209a97
Reinitialize only changed DRM outputs after setting mode on one
2017-10-22 21:34:56 +00:00
Versus Void
ecb2a2b0d3
Emit output resolution event only when resolution changes
2017-10-22 21:34:56 +00:00
emersion
1cc8f21d8e
Cleanup wlr_gamma_control
2017-10-22 23:11:26 +02:00
emersion
e1d213fccd
Create globals only for enabled outputs in DRM backend
2017-10-22 22:21:23 +02:00
Versus Void
2ab080e79a
Fix index computation in DRM output scan and CRTC match
2017-10-22 10:54:09 +00:00
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
2017-10-21 22:03:48 -04:00
Scott Anderson
bdeffad7e5
Remove drm field from wlr_drm_connector
2017-10-22 10:36:07 +13:00
Scott Anderson
822a9f65a4
Add pointer to backend inside wlr_output
2017-10-22 10:36:07 +13:00
Scott Anderson
4ea84c5765
Remove unnecesary wlr_renderers
2017-10-22 10:36:07 +13:00
Heghedus Razvan
1d716241af
Replace list_t with wl_list in wlr_output
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:09 +03:00
Heghedus Razvan
c03e774636
Replace list_t with wl_list in wlr_drm_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:03 +03:00
emersion
92daa790bb
Allow to update the cursor hotspot without its pixels
2017-10-12 09:40:51 +02:00
Versus Void
641d08ce7e
Transform hotspot with cursor
...
Fix #188
2017-10-06 09:07:08 +03:00
Versus Void
c5df6ca900
Fix memory leaks
2017-10-05 20:01:56 +00:00
Scott Anderson
f193623ca1
Change iface prefix to suffix
2017-10-02 21:44:33 +13:00
Scott Anderson
f6f9c40965
Minor fixes
2017-10-01 22:44:24 +13:00
Scott Anderson
009c3747a8
Multi-GPU DRM
2017-10-01 22:29:25 +13:00
Scott Anderson
eaef028976
Add renderer pointer inside drm_surface
2017-10-01 15:55:25 +13:00
Scott Anderson
4101b89700
Rename wlr_drm_output to wlr_drm_connector
2017-09-30 23:31:08 +13:00
Scott Anderson
22e77d9195
Rename backend to drm
2017-09-30 22:22:26 +13:00
Scott Anderson
ec5b95e08f
Add pointer to backend from DRM outputs
2017-09-30 22:01:59 +13:00
Scott Anderson
096249a2a1
Split DRM rendering to its own file
2017-09-30 20:52:58 +13:00
Scott Anderson
d0708b1a3a
Split DRM internal interface to its own header
2017-09-30 19:11:41 +13:00
Scott Anderson
610b0493ac
Rename files to remove pointless drm prefix
2017-09-30 19:03:34 +13:00
Scott Anderson
517ba0bc16
Change egl_get_config to always use visual id
2017-09-29 16:15:09 +13:00
Scott Anderson
a466c86fba
Set state properly
2017-09-24 12:06:00 +13:00
Scott Anderson
db5e9385d4
Simplify retry_pageflip
2017-09-23 18:44:39 +12:00
Scott Anderson
025b3ee515
Add error recovery for failed page flips
2017-09-23 18:27:14 +12:00
Scott Anderson
459d138fa2
Add timeout to DRM cleanup
...
This prevents a potential infinite loop preventing us from closing
properly.
2017-09-23 16:32:25 +12:00
Scott Anderson
4a53aab466
Allow forcing legacy DRM interface
2017-09-23 13:20:17 +12:00
Scott Anderson
0aa00da1f3
Check for disappearing DRM connectors
...
DisplayPort MST connectors will disappear when they're disconnected, so
we need to check for that.
2017-09-09 23:09:51 +12:00
emersion
6f98b5a337
Add set_gamma and get_gamma_size to wlr_output_impl
2017-09-06 18:53:08 +02:00
Tony Crisci
e3d47376dc
add wlr_cursor basic implementation
2017-08-26 08:32:11 -04:00
Dominique Martinet
f24b3df980
wlr renderer/texture: rename init to create when it does alloc
2017-08-19 08:33:31 +02:00
Dominique Martinet
0252c8e072
drm realloc_crtcs: check we found an output
...
This follows-up on #105 that just initialized to 0.
Instead, make sure we actually found an output that matches
2017-08-18 18:27:59 +02:00
Tony Crisci
784cf65635
fix uninitialized warning
...
`index` might be uninitialized. Warning can be produced with gcc and `-01` flag.
2017-08-18 12:08:28 -04:00
Drew DeVault
e7fa4f12e1
Fix DRM problem introduced in 901c14c
2017-08-16 17:36:57 -04:00
Calvin Lee
901c14c409
Prevent alloc errors from crashing in list_t
...
This commit changes the `list_t` api so that alloc errors can be
detected and worked around. Also fixes errors not found in 5cc7342
2017-08-16 09:23:21 +02:00
Drew DeVault
c8c6619146
Refactor out wlr_output_mode_state
2017-08-14 08:03:51 -04:00
Drew DeVault
41e735242d
Remove wlr_output_state, update backends
2017-08-13 11:38:03 -04:00
Drew DeVault
234b2104e4
Refactor wlr_backend_state out of DRM backend
2017-08-12 19:52:22 -04:00
Dominique Martinet
de86965174
Use libinput_event_destroy/xkb_*_unref
...
Also sneak in a missing drmModeFreePlaneResources
2017-08-12 00:11:18 +02:00
Drew DeVault
6569c2b626
Merge pull request #53 from nyorain/drm_buffer
...
Implement drm (egl) buffer attaching
2017-08-10 22:20:21 -04:00
Drew DeVault
c24351681f
Refactor EGL handling
2017-08-10 22:15:37 -04:00
Scott Anderson
fe2fbd0fad
Fix possible use of CRTC after monitor is unplugged
2017-08-11 11:12:41 +12:00
nyorain
67369173aa
Implement drm (egl) buffer attaching
2017-08-10 10:59:58 +02:00
Scott Anderson
af67966d92
Atomic modesetting
2017-08-09 08:07:00 -04:00
nyorain
e167f41fde
Rename wlr_surface -> wlr_texture; attach -> upload
2017-08-08 18:25:16 +02:00
Scott Anderson
d09ca20a4d
Use gbm_bo_map for cursor
2017-08-07 21:07:42 +12:00
Scott Anderson
dbe66d1963
Style changes
2017-08-07 10:15:05 +12:00
Scott Anderson
5f7042a1f2
Moved headers
2017-08-06 21:49:04 +12:00
Scott Anderson
d307c2f2c2
Renamed some variables to be less generic
2017-08-06 21:42:36 +12:00