emersion
e84f01168d
backend/drm: allow disabling outputs in NEEDS_MODESET state
...
This correctly frees CRTCs when disabling outputs without setting
a mode.
6 years ago
Drew DeVault
633663cdde
Use legacy modesetting for gamma control
...
It doesn't look like there's any motion on a fix from the AMDGPU side,
and using the legacy interface for this isn't so bad.
6 years ago
emersion
7a3f7b3c8a
backend/drm: add support for DRM_MODE_CONNECTOR_DPI
6 years ago
Scott Anderson
2d8f53affd
Check for DRM prime
...
This will indicate the user properly when multi-GPU is not supported by
their GPU driver.
6 years ago
Scott Anderson
1a2b3445dc
Remove unused data from gbm_bo userdata
...
These aren't used anymore and crashes when the gbm_bo tries to get
destroyed (e.g. on hotplug).
6 years ago
Scott Anderson
4bee710c30
Fix hardware cursor on secondary GPU
...
Create rendering resources on parent GPU, so that we can sample the
passed in texture properly. The cursor buffer needs to remain on the
same GPU.
6 years ago
Mariusz Bialonczyk
e547e55be0
multi-gpu: do not flip screens on secondary GPU
...
All screens on secondary GPU in multiple GPU configurations
was flipped 180.
The flipped screens was always on secondary card (the primary card
was always correct).
Tested on nouveau with:
WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card2
WLR_DRM_DEVICES=/dev/dri/card2:/dev/dri/card1
The commit is fixing this problem. Now all screens are "normal".
6 years ago
Mariusz Bialonczyk
15dacebc36
multi-backend: do not expose internal renderers
...
backend_get_renderer() is now returning the renderer of the primary GPU, instead
of its own renderer, since that's the thing which actually does all of the "real"
rendering
wlr_multi_backend_add() is now adding all subbackends (otherwise only one GPU
is handled).
credits: @ascent12
6 years ago
emersion
364afced3e
backend/drm: remove unnecessary casts
6 years ago
emersion
2ebecb6727
backend/drm: allow to pass empty gamma ramp to reset it
6 years ago
emersion
a149c2370a
Implement wlr-gamma-control-unstable-v1
6 years ago
emersion
7cbef15206
util: add wlr_ prefix to log symbols
6 years ago
Drew DeVault
be54278207
Merge pull request #1095 from agx/output-add-mode
...
Allow to add additional modes to outputs
6 years ago
Guido Günther
8d72090afe
drm: Allow to add additional modes
...
This allows to add additional modes to the list of available video modes
using VESA Coordinated Video Timing information.
Closes #1080
6 years ago
emersion
2b9cbaddf3
screencopy: add support for frame flags
7 years ago
Dominique Martinet
f0d455f088
drm backend: overflow fixes
...
These operations are done in 32-bit arithmetics before being casted to 64-bit,
thus can overflow before the cast.
Casting early fixes the issue.
Found through static analysis
7 years ago
emersion
21928cbe61
Merge branch 'master' into screencontent
7 years ago
emersion
28020ff577
Only allow one modifier per DMA-BUF, split attributes struct in render/
7 years ago
emersion
bd430b8620
backend/drm: support multi-planar DMA-BUFs when exporting
7 years ago
emersion
9e26808c28
output, backend/drm: add wlr_output_export_dmabuf
7 years ago
emersion
79683ee497
backend/drm: better connector cleanup, add more logs
7 years ago
emersion
6eb4b5b54d
Merge pull request #993 from emersion/bind-wl-drm-in-renderer
...
render: bind wl_drm in renderer
7 years ago
Ilia Bozhinov
24cf70ae96
backends: implement custom EGL and renderer initialization
...
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.
Fixes #987
7 years ago
emersion
41130fe54b
render: bind wl_drm in renderer
7 years ago
Markus Ongyerth
6a46fcc6f2
recalculate cursor projection matrix on set_cursor
...
Updates the projection matrix for the cursor plane in the DRM backend,
when the cursor is set, so new cursor are uploaded with the correct
transformation.
7 years ago
emersion
13098a18ea
Fix hardware cursors scale & transform
7 years ago
emersion
caf9f9022c
Merge pull request #936 from emersion/full-hardware-cursors
...
output: always use hardware cursors if available
7 years ago
morganamilo
6305e6327f
Fix typos in comments and strings
7 years ago
Guido Günther
1637053ef8
drm: only disable atomic modesetting when WLR_DRM_NO_ATOMIC == 1
...
Don't allow any value of the env var to disable atomic mode setting.
7 years ago
emersion
225d182765
output: always use hardware cursors if available
...
This changes the `wlr_output_impl.set_cursor` function to take a
`wlr_texture` instead of a byte buffer. This simplifies the
DRM and Wayland backends since they were creating textures from
the byte buffer anyway.
With this commit, performance should be improved when moving the
cursor since outputs don't need to be re-rendered anymore.
7 years ago
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
7 years ago
emersion
71ca45e2c0
Make sure we don't use others' prefixes
7 years ago
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
7 years ago
emersion
018b82c01e
render/egl: allow passing NULL to surface and image destructors
7 years ago
emersion
eaed6bd03b
render/egl: add wlr_egl_destroy_surface
7 years ago
emersion
94fa6c88f4
output: don't emit the mode event if it hasn't changed
...
This also fixes #535 .
7 years ago
emersion
d2ebbd103c
backend: remove wlr_backend_get_egl
7 years ago
Drew DeVault
b60e31e5c0
Merge pull request #794 from emersion/renderer-untie-backend
...
Untie wlr_backend from wlr_renderer
7 years ago
emersion
a2391a6047
Fix cursor transform on DRM backend
7 years ago
emersion
33a2eb4b77
Untie wlr_backend from wlr_renderer
7 years ago
Drew DeVault
324b9d910d
Remove width_mm from wlr_touch events
7 years ago
emersion
3bda7e2ef8
Use DRM_FORMAT_MOD_LINEAR instead of a hardcoded constant
7 years ago
emersion
c63d94483b
Redesign wlr_texture
...
- Textures are now immutable (apart from those created from raw
pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most of wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given as bytes rather than pixels
- Drop wl_shm functions
Fun fact: this patch has been written 10,000 meters up in the air.
7 years ago
emersion
a854c2f246
Merge branch 'master' into gles2-renderer-redesign
7 years ago
emersion
60bfe0a6aa
backend/drm: remove remaining raw GL call
...
This makes the hardware cursor code a less efficient. Can be
fixed with a GLES3 renderer.
7 years ago
emersion
b1f93bc5cc
render/egl: use EGL_KHR_debug
7 years ago
emersion
3581573bdc
render/gles2: make wlr_renderer_begin take viewport size
...
This allows raw GL calls outside wlr_renderer to be removed.
7 years ago
emersion
c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h
7 years ago
emersion
6227da96b1
backend/drm: don't hardcode matrix
7 years ago
emersion
7894fca224
matrix: rename wlr_matrix_texture to wlr_matrix_projection
7 years ago
emersion
876f07e9f1
renderer: replace wlr_texture_get_matrix by wlr_render_texture
7 years ago
emersion
824a95ad19
matrix: use 2D matrices
7 years ago
emersion
d26b67cb06
matrix: unify API, don't use array pointers
7 years ago
emersion
b6a3f240c7
matrix: move to types/
7 years ago
emersion
d24f868bbe
backend/drm: fix cursor hotspot not updated
7 years ago
emersion
92ca4ad474
backend/drm: refactor wlr_drm_connector_set_cursor
7 years ago
Markus Ongyerth
2cea430488
prevent current_mode null on output_enable(false)
...
The current mode was set to NULL to abuse it as state variable
persisting DRM suspend/resume, this results resulted in a segfault on
normal DPMS cycle.
This reverts that change and uses the wlr_output enabled variable, which
also persists and makes more sense.
7 years ago
Markus Ongyerth
a65ef8ea86
restore dpms state on drm resume
...
If there is no current mode, set outputs to dpms off in drm resume.
Sets current mode to null on disable to ensure this can be checked.
7 years ago
Guido Günther
d08792bfff
Add alpha to wlr_render_with_matrix
...
so we can use the alpha channel to e.g. blend in textures
7 years ago
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
7 years ago
Scott Anderson
86269052eb
Explicitly export EFL symbols
7 years ago
emersion
c2e1474010
Reformat all #include directives
7 years ago
emersion
36ead80cd1
Make wlr_signal_emit_safe private
7 years ago
emersion
10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove}
7 years ago
emersion
5e58d46cc1
Add wlr_signal_emit_safe
7 years ago
Drew DeVault
664d7bfe4e
Merge pull request #618 from VincentVanlaer/atomic-gamma
...
Add atomic gamma control
7 years ago
Vincent Vanlaer
7cb828ac70
Fallback gamma on legacy if properties don't exist
7 years ago
emersion
bf6d245400
Swap buffers with damage
7 years ago
Vincent Vanlaer
dd69d7b764
Use VLA instead of heap alloc
7 years ago
Vincent Vanlaer
0232269a2d
Fix style
7 years ago
Vincent Vanlaer
b2f6941617
Free gamma when property blob creation fails
7 years ago
Vincent Vanlaer
2df97ed16a
Set needs_swap on output when gamma changes
7 years ago
Vincent Vanlaer
f5e5d1983b
Do not allow gamma control without a crtc
7 years ago
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.
7 years ago
Vincent Vanlaer
cc1229e75e
Add atomic gamma setting
7 years ago
emersion
cdd55b5d19
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
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.
7 years ago
emersion
3d3ea32137
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
emersion
bb39277e97
backend/drm: update output enabled property on modeset
7 years ago
emersion
bb4aeb3b2f
backend/drm: support updating cursor when session is paused
7 years ago
emersion
babdd6ccf7
backend: fix use-after-free when destroying backends
...
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.
7 years ago
Guido Günther
c5aac77692
Fix some typos
...
Prefer initialize over initialise since used more often in the sources.
7 years ago
emersion
f152fdb4c5
Merge pull request #594 from Ongy/drm-surface-buffers
...
relases gbm buffers on init
7 years ago
emersion
d498855b9d
backend/drm: fix hw cursor position on rotated and scaled outputs
...
output: add wlr_output_transformed_resolution
7 years ago
emersion
51c22d39a4
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
Tony Crisci
ed5b1fdedd
Merge pull request #580 from emersion/screenshooter-renderer-backport
...
Backport screenshooter fixes from the renderer redesign v1
7 years ago
Markus Ongyerth
cde0f454b3
Clean up the gbm/egl as well
7 years ago
Markus Ongyerth
2cdb646531
relases gbm buffers on init
...
The wlr_drm_surface_init function is called (upon others) when the drm
mode is changed.
When the surface was used previously this replaced the gbm_surface, but
did not replace the gbm buffers (front/back).
With this, wlr_drm_surface_get_from never set up the new buffers with
the new glViewport because surf->front existed.
This frees the buffers to get new buffers on the new surface with the
new viewport.
7 years ago
emersion
b47e8c4a1d
backend/drm: do not retry pageflip when swapping buffers
7 years ago
emersion
20e6861021
Do not flush damage if swapping buffers failed
...
This should solve issues with multiple outputs on DRM backend.
7 years ago
emersion
1ee61dbd0f
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
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
7 years ago
emersion
7adf13e284
Fix flickering when switching VT
7 years ago
emersion
8d58ed502b
output: add wlr_output_schedule_frame
7 years ago
emersion
ece2c1e4e2
Damage tracking for transformed outputs
7 years ago
Vincent Vanlaer
72507f9820
Clean up session signal handler on drm init fail
7 years ago
emersion
4fa90b0511
Backport screenshooter fixes from the renderer redesign v1
...
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.
7 years ago
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
Timidger
f8b9f44ff5
Add con/crtc null check to move_cursor in drm
7 years ago
Timidger
9d4ea146b6
Added crtc null check for other drm funcs
7 years ago
Timidger
4478cf1ddc
Fixes #575
7 years ago
emersion
0365b587f0
output: add damage tracking via buffer age
7 years ago
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.
7 years ago
emersion
584f06ad2f
backend/drm: do not try a pageflip is another one is in pending
7 years ago
emersion
f0f97280a0
backend/drm: fix retry pageflip
7 years ago
Drew DeVault
b331c5c2c5
Merge pull request #549 from emersion/output-enabled
...
Add wlr_output::enabled
7 years ago
emersion
0eebaf98d0
drm: do not pageflip when enabling output
7 years ago
Guido Günther
3101c300b1
Don't crash if crtc->cursor is NULL
...
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
7 years ago
emersion
53ba9b4eec
Fix output enable in DRM backend
7 years ago
emersion
771263380c
Add wlr_output::enabled
7 years ago
Dominique Martinet
8e24aaa3c6
style: fix sizeof() calls without parentheses
7 years ago
emersion
e737f65e38
Fix cursor on transformed output with DRM backend
7 years ago
Tony Crisci
a937016e38
remove session from multibackend
7 years ago
Dominique Martinet
be95147385
drm backend: add wlr_output_is_drm
7 years ago
emersion
b99d1f4fcc
Refactor wlr_egl_init to accept config_attribs
7 years ago
emersion
0256de0002
Add full refresh rate support to custom modes
7 years ago
Drew DeVault
23fb663ea4
Merge pull request #453 from emersion/surface-transform
...
Add surface transforms support
7 years ago
emersion
466e86b7b2
Merge branch 'master' into surface-transform
7 years ago
emersion
75ef7860bb
Merge branch 'master' into display-destroy
7 years ago
emersion
3b4b8953d9
Update output layout when scale or transform changes
7 years ago
emersion
c67a5824b8
Merge branch 'master' into display-destroy
7 years ago
emersion
18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free
7 years ago
emersion
9d43adaafa
Listen to display destroy in backends
7 years ago
emersion
91d72040e5
Configure outputs with make, model, serial in rootston
...
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.
Updates #403
7 years ago
emersion
8af779fae6
Fix segfault when moving hardware cursor
7 years ago
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring
7 years ago
Scott Anderson
bc113c16aa
Use correct include path for glapi.h
7 years ago
emersion
09279b90a6
Add wlr_output.serial
7 years ago
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
7 years ago
emersion
a15b35aa10
Remove mysterious hotspot switch in DRM backend
7 years ago
emersion
60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend
7 years ago
emersion
0beae99188
Apply output transformation to pointer events in Wayland backend
7 years ago
emersion
c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend
7 years ago
emersion
6656e25fd4
Transform cursor hotspot
7 years ago
emersion
1b6c729360
Add wlr_output_cursor
7 years ago
Drew DeVault
fa9c6ecc53
Fix segfault in DRM cursor
7 years ago
emersion
9d587d759f
Do not set hw cursor if disabled when switching VT
7 years ago
Scott Anderson
75f0a6c998
Merge pull request #286 from versusvoid/update-connector-crtc-bindings
...
Update Connector-CRTC bindings after resume in DRM backend
7 years ago
Versus Void
3ed3271b98
Rescan connectors on DRM resume
7 years ago
Versus Void
549777ca19
Set crtc field when scanning for DRM connectors
...
and always use it when matching CRTCs with connectors.
Fix deactivated monitors check.
7 years ago
Versus Void
3c31209a97
Reinitialize only changed DRM outputs after setting mode on one
7 years ago
Versus Void
ecb2a2b0d3
Emit output resolution event only when resolution changes
7 years ago
emersion
1cc8f21d8e
Cleanup wlr_gamma_control
7 years ago
emersion
e1d213fccd
Create globals only for enabled outputs in DRM backend
7 years ago
Versus Void
2ab080e79a
Fix index computation in DRM output scan and CRTC match
7 years ago
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
7 years ago
Drew DeVault
169b68b17c
Rename remaining refs to wlr_list
7 years ago
Scott Anderson
bdeffad7e5
Remove drm field from wlr_drm_connector
7 years ago
Scott Anderson
822a9f65a4
Add pointer to backend inside wlr_output
7 years ago
Scott Anderson
4ea84c5765
Remove unnecesary wlr_renderers
7 years ago
Scott Anderson
9b984253e2
Move egl.h to render/egl.h
7 years ago
Heghedus Razvan
e1f196a3e9
Replace list_t with wl_list for wlr_input_device
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
7 years ago
Heghedus Razvan
1d716241af
Replace list_t with wl_list in wlr_output
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
7 years ago
Heghedus Razvan
c03e774636
Replace list_t with wl_list in wlr_drm_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
7 years ago
emersion
92daa790bb
Allow to update the cursor hotspot without its pixels
7 years ago
Scott Anderson
c0e5feea37
Add GL/EGL extension loader generator
7 years ago
Versus Void
641d08ce7e
Transform hotspot with cursor
...
Fix #188
7 years ago
Versus Void
c5df6ca900
Fix memory leaks
7 years ago
Scott Anderson
f193623ca1
Change iface prefix to suffix
7 years ago
Scott Anderson
f6f9c40965
Minor fixes
7 years ago
Scott Anderson
009c3747a8
Multi-GPU DRM
7 years ago
Scott Anderson
fa3d0ed929
Change wlr_session to open every GPU
7 years ago
Scott Anderson
eaef028976
Add renderer pointer inside drm_surface
7 years ago
Scott Anderson
4101b89700
Rename wlr_drm_output to wlr_drm_connector
7 years ago
Scott Anderson
22e77d9195
Rename backend to drm
7 years ago
Scott Anderson
ec5b95e08f
Add pointer to backend from DRM outputs
7 years ago
Scott Anderson
096249a2a1
Split DRM rendering to its own file
7 years ago
Scott Anderson
d0708b1a3a
Split DRM internal interface to its own header
7 years ago
Scott Anderson
610b0493ac
Rename files to remove pointless drm prefix
7 years ago
Scott Anderson
c8a8ff66f2
Removed unused fields
7 years ago
Scott Anderson
517ba0bc16
Change egl_get_config to always use visual id
7 years ago
Scott Anderson
c8c5aedaa2
Add error checking to DRM legacy
7 years ago
Scott Anderson
419400ae00
Send failure code on partial atomic commit
7 years ago
Scott Anderson
a466c86fba
Set state properly
7 years ago
Scott Anderson
db5e9385d4
Simplify retry_pageflip
7 years ago
Scott Anderson
025b3ee515
Add error recovery for failed page flips
7 years ago
Scott Anderson
459d138fa2
Add timeout to DRM cleanup
...
This prevents a potential infinite loop preventing us from closing
properly.
7 years ago
Scott Anderson
8cbade355f
Print connector name on atomic commit failure
7 years ago
Scott Anderson
4a53aab466
Allow forcing legacy DRM interface
7 years ago
Scott Anderson
1682c0d983
Remove non-blocking flag on modesetting commits
...
This seems to make hotplugging DisplayPort MST connectors more reliable.
7 years ago
Scott Anderson
6717b78bd6
Retry atomic commit on failure
...
So we don't lose any previously "good" properties that were set.
7 years ago
Scott Anderson
0aa00da1f3
Check for disappearing DRM connectors
...
DisplayPort MST connectors will disappear when they're disconnected, so
we need to check for that.
7 years ago
emersion
6f98b5a337
Add set_gamma and get_gamma_size to wlr_output_impl
7 years ago
Drew DeVault
6daf9e9ab2
Merge pull request #120 from acrisci/feature/wlr-cursor
...
wlr_cursor
7 years ago
Tony Crisci
e3d47376dc
add wlr_cursor basic implementation
7 years ago
Scott Anderson
fb93628bda
Merge wlr_udev into wlr_session
7 years ago
Dominique Martinet
f24b3df980
wlr renderer/texture: rename init to create when it does alloc
7 years ago
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
7 years ago
Tony Crisci
784cf65635
fix uninitialized warning
...
`index` might be uninitialized. Warning can be produced with gcc and `-01` flag.
7 years ago
Drew DeVault
e7fa4f12e1
Fix DRM problem introduced in 901c14c
7 years ago
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
7 years ago
Drew DeVault
c8c6619146
Refactor out wlr_output_mode_state
7 years ago
Calvin Lee
de66bdb867
Add backend detection functions
...
Resolves #80
7 years ago
Drew DeVault
41e735242d
Remove wlr_output_state, update backends
7 years ago
Drew DeVault
4386816889
wlr_backend_init -> wlr_backend_start
...
Also renames create to init. We'll use create for anything that
allocates and init for anything that takes a pointer and initializes it.
7 years ago
Drew DeVault
234b2104e4
Refactor wlr_backend_state out of DRM backend
7 years ago
Dominique Martinet
de86965174
Use libinput_event_destroy/xkb_*_unref
...
Also sneak in a missing drmModeFreePlaneResources
7 years ago
Dominique Martinet
0354aaeff2
Complete a few destroy functions
...
This adds missing free calls for:
- drm outputs
- libinput backend in general
- final udev free
- output mode state
7 years ago
Drew DeVault
6569c2b626
Merge pull request #53 from nyorain/drm_buffer
...
Implement drm (egl) buffer attaching
7 years ago
Drew DeVault
c24351681f
Refactor EGL handling
7 years ago
Scott Anderson
fe2fbd0fad
Fix possible use of CRTC after monitor is unplugged
7 years ago
nyorain
67369173aa
Implement drm (egl) buffer attaching
7 years ago
Scott Anderson
a77fac0760
Added null check on crtc
7 years ago
Scott Anderson
af67966d92
Atomic modesetting
7 years ago
nyorain
e167f41fde
Rename wlr_surface -> wlr_texture; attach -> upload
7 years ago
Scott Anderson
d09ca20a4d
Use gbm_bo_map for cursor
7 years ago
Scott Anderson
dbe66d1963
Style changes
7 years ago
Scott Anderson
5f7042a1f2
Moved headers
7 years ago
Scott Anderson
d307c2f2c2
Renamed some variables to be less generic
7 years ago
Scott Anderson
1db97a9af9
Updated DRM cursor rendering
7 years ago
Scott Anderson
aedfa27d3a
Clean up resources when plane is reassigned
7 years ago
Scott Anderson
2f8b5c4448
More cleanups
7 years ago
Scott Anderson
dd7a349295
Various cleanups
7 years ago
Scott Anderson
d1ca1ec16e
Split off some functions into drm-util
7 years ago
Scott Anderson
c46605d605
Use plane for rendering
7 years ago
Scott Anderson
e16c5504cd
Add planes.
7 years ago
Scott Anderson
67b51f0922
Upgraded CRTC and Encoder matching
7 years ago
Scott Anderson
31867a1b2e
Various changes/cleanups
7 years ago
Scott Anderson
7b772e1a4b
DRM resource initalisation
7 years ago
Scott Anderson
601bbad5d8
Added DRM property infrastructure
7 years ago
Scott Anderson
cb4d50e22c
Changed header paths.
7 years ago
Tony Crisci
d822e0768b
Use ARGB8888 pixel format for cursor bo
...
The previous pixel format (RGBA8888) is not supported on all devices for cursors.
Weston uses ARGB8888 exclusively for its cursor buffer object which leads me to
believe this pixel format is better supported.
7 years ago
Tony Crisci
8b6dc48355
bugfix: add null check on output gbm on pageflip
...
The gbm for the output might be null for the pageflip in the case that
the output has been disconnected. The gbm might be set to null by
wlr_drm_output_cleanup() in this case.
If the output is cleaned up before the pageflip, then a double free
will crash the compositor on the call to gbm_surface_release_buffer()
in the pageflip handler. The outputs buffer object bo[1] will point to
invalid memory.
7 years ago
Drew DeVault
038dfdbc85
Log max cursor size on error
8 years ago
Scott Anderson
82322d81a7
Hardware cursor improvements.
8 years ago
Scott Anderson
0cd94f0cf0
Added software cursor fallback
8 years ago
Drew DeVault
168f0955ab
Add wl_output globals for wlr_outputs
8 years ago
Drew DeVault
f4453d104d
Reorganize wlr-common
8 years ago
Drew DeVault
fd91244e83
Update everyone to use new headers
8 years ago
Scott Anderson
55854565dc
Fixed VT switching
8 years ago
Scott Anderson
091de12bf4
Changed session signal to only emit on DRM changes
8 years ago
Drew DeVault
b9d36c8149
Add dynamic output resizing for Wayland backend
...
This allows outputs to:
- Not support modesetting
- Resize themselves
8 years ago
Drew DeVault
e9609e9adf
Allocate framebuffers for hardware cursors
...
Still doesn't fix cursors though
8 years ago
Drew DeVault
7e038a6110
Add (broken) DRM hardware cursors
8 years ago
Drew DeVault
e65f83d7f2
Add more DRM info to wlr_output
...
Yes I know this is the libinput branch, I thought this would be useful
for a libinput feature (but it wasn't)
8 years ago
Drew DeVault
2b06f88f0b
Combine internal DRM headers into one
...
Everything always just included both anyway
8 years ago
Scott Anderson
63c3faa006
Fixed rendering bug: Delay calling gbm_surface_release_buffer until it
...
has been scanned out.
8 years ago
Scott Anderson
382f712792
Merge remote-tracking branch 'upstream/master' into rotation
8 years ago
Scott Anderson
632a7acb03
Filled out more wlr_output fields.
8 years ago
Drew DeVault
6f5c70ac69
Let backend track transform state
...
This will be necessary to provide it to clients via wl_output.
8 years ago
Scott Anderson
c97de93fe1
Added output rotation example
8 years ago
Drew DeVault
7d82476590
Refactor type implementations
8 years ago
Scott Anderson
5df56653ab
Changed invalidate interface.
8 years ago
Scott Anderson
de44994dfc
Udev event device matching
8 years ago
Drew DeVault
40b85d992a
Refactor udev and drm initialization
8 years ago
ascent12
62d612a01e
Merge branch 'master' into session
8 years ago
Drew DeVault
ae77004346
Add more logging around udev
8 years ago
Drew DeVault
e2ee67125e
s/wayland.h/types.h/g
8 years ago
Drew DeVault
c7f6981d9c
Clean up outputs on exit
8 years ago
Drew DeVault
fee409bd0a
Generalize DPMS, remove DRM refs from example
8 years ago
Drew DeVault
03c9b46034
Have backend manage opengl context
8 years ago
Scott Anderson
f9d363fece
Added device matching
8 years ago
Scott Anderson
7efdd3c9fc
Refactored renderer startup to function.
8 years ago
Scott Anderson
ce8786721b
Got it working.
8 years ago
Scott Anderson
058b8bdf27
Working commit
8 years ago
Scott Anderson
409065ba2e
Changed to signed
8 years ago
Scott Anderson
eac603bfdf
Merge branch 'master' into refresh
8 years ago
Scott Anderson
3000b8615f
More accurate refresh rates (mHz)
8 years ago
Scott Anderson
599d1bcbdc
DPMS support
8 years ago
Drew DeVault
42878b45a1
Remove unnecessary TODO
8 years ago
Drew DeVault
00931f2f8f
Generalize output handling
8 years ago
Drew DeVault
15b1ce9e6c
Refactor backend state management
8 years ago
Scott Anderson
7e9feb70a0
Fixed hotplugging + make EGL more chatty.
8 years ago
Scott Anderson
ef9768858e
Changed modesetting interface.
8 years ago
Scott Anderson
d196a79b6c
Changed backend to accept wl_display.
8 years ago
Scott Anderson
18387468bb
Renamed 'wlr_drm_display' to 'wlr_drm_output'
8 years ago
Scott Anderson
15d247bf34
Changed drm to use new EGL interface.
8 years ago
Scott Anderson
81998fdc98
Removed old session code from DRM backend.
8 years ago
Scott Anderson
e446a5300b
Added example.
8 years ago
Scott Anderson
e9d716fc0c
Changed display to use list_t.
8 years ago
Scott Anderson
115d4ae637
Changed events to use wayland functions.
8 years ago
Scott Anderson
562d43a5ec
Changed logging.
8 years ago
Scott Anderson
41a82fd2fc
Renaming.
8 years ago
Scott Anderson
9ac46ec5ed
Got it to build
8 years ago
Scott Anderson
95a553dc51
Moved headers to the correct place.
8 years ago
Scott Anderson
aca13320b3
Inital commit of libotd.
8 years ago