emersion
ef88df2142
backend/drm: emit new_output after scanning connectors
...
This prevents receiving modesetting requests from the compositor
while we don't have the whole picture (ie. while we haven't yet
scanned all connectors).
This also makes connectors without CRTCs disabled (they can't be
enabled yet even if some CRTCs are free'd -- this is future work).
2018-09-02 01:03:20 +02:00
emersion
e84f01168d
backend/drm: allow disabling outputs in NEEDS_MODESET state
...
This correctly frees CRTCs when disabling outputs without setting
a mode.
2018-09-01 23:43:16 +02:00
Scott Anderson
2d8f53affd
Check for DRM prime
...
This will indicate the user properly when multi-GPU is not supported by
their GPU driver.
2018-08-05 18:25:25 +12:00
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.
2018-08-04 15:08:28 +12:00
emersion
364afced3e
backend/drm: remove unnecessary casts
2018-08-02 23:33:59 +01:00
emersion
2ebecb6727
backend/drm: allow to pass empty gamma ramp to reset it
2018-08-02 23:33:59 +01:00
emersion
a149c2370a
Implement wlr-gamma-control-unstable-v1
2018-08-02 23:33:04 +01:00
emersion
7cbef15206
util: add wlr_ prefix to log symbols
2018-07-09 22:49:54 +01:00
Drew DeVault
be54278207
Merge pull request #1095 from agx/output-add-mode
...
Allow to add additional modes to outputs
2018-07-07 08:58:17 -07:00
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
2018-07-07 14:51:39 +02:00
emersion
2b9cbaddf3
screencopy: add support for frame flags
2018-06-30 22:18:03 +01:00
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
2018-06-30 11:21:22 +09:00
emersion
21928cbe61
Merge branch 'master' into screencontent
2018-05-31 12:33:27 +01:00
emersion
bd430b8620
backend/drm: support multi-planar DMA-BUFs when exporting
2018-05-29 18:47:17 +01:00
emersion
9e26808c28
output, backend/drm: add wlr_output_export_dmabuf
2018-05-29 18:45:45 +01:00
emersion
79683ee497
backend/drm: better connector cleanup, add more logs
2018-05-27 13:21:41 +01:00
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.
2018-05-16 15:44:41 +02:00
emersion
13098a18ea
Fix hardware cursors scale & transform
2018-05-09 19:58:18 +01:00
emersion
caf9f9022c
Merge pull request #936 from emersion/full-hardware-cursors
...
output: always use hardware cursors if available
2018-05-04 19:00:45 +01:00
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.
2018-05-03 15:37:37 +02:00
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.
2018-05-01 21:38:04 +01:00
emersion
71ca45e2c0
Make sure we don't use others' prefixes
2018-04-25 23:24:58 +01:00
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
2018-04-25 23:00:46 +01:00
emersion
94fa6c88f4
output: don't emit the mode event if it hasn't changed
...
This also fixes #535 .
2018-04-18 00:15:25 +01:00
emersion
a2391a6047
Fix cursor transform on DRM backend
2018-03-31 20:55:31 -04:00
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.
2018-03-24 23:48:32 -04:00
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.
2018-03-21 11:34:08 +01:00
emersion
3581573bdc
render/gles2: make wlr_renderer_begin take viewport size
...
This allows raw GL calls outside wlr_renderer to be removed.
2018-03-21 07:37:09 +01:00
emersion
c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h
2018-03-19 23:16:29 +01:00
emersion
7894fca224
matrix: rename wlr_matrix_texture to wlr_matrix_projection
2018-03-15 21:26:45 +01:00
emersion
876f07e9f1
renderer: replace wlr_texture_get_matrix by wlr_render_texture
2018-03-15 19:31:02 +01:00
emersion
824a95ad19
matrix: use 2D matrices
2018-03-15 15:33:58 +01:00
emersion
d26b67cb06
matrix: unify API, don't use array pointers
2018-03-15 11:10:56 +01:00
emersion
b6a3f240c7
matrix: move to types/
2018-03-15 09:11:27 +01:00
emersion
d24f868bbe
backend/drm: fix cursor hotspot not updated
2018-03-12 19:34:43 +01:00
emersion
92ca4ad474
backend/drm: refactor wlr_drm_connector_set_cursor
2018-03-11 11:40:03 +01:00
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.
2018-03-01 15:48:25 +01:00
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.
2018-02-26 18:12:51 +01:00
Guido Günther
d08792bfff
Add alpha to wlr_render_with_matrix
...
so we can use the alpha channel to e.g. blend in textures
2018-02-25 13:47:48 +01:00
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
2018-02-19 18:01:27 -05:00
Scott Anderson
86269052eb
Explicitly export EFL symbols
2018-02-19 14:26:40 +13:00
emersion
c2e1474010
Reformat all #include directives
2018-02-12 21:29:23 +01:00
emersion
36ead80cd1
Make wlr_signal_emit_safe private
2018-02-12 19:52:47 +01:00
emersion
10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove}
2018-02-12 10:36:43 +01:00
emersion
5e58d46cc1
Add wlr_signal_emit_safe
2018-02-12 09:12:31 +01:00
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