Commit Graph

3258 Commits

Author SHA1 Message Date
emersion b5125ff328
backend/drm: specify minimum config attributes
Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B
and A channel.
2018-11-04 09:00:55 +01:00
emersion 62d646f2b8
render/gles2: remove assumptions about supported formats
We were assuming GL_BGRA_EXT was always supported.

We now check that it's supported for rendering. We fail if it isn't because
this format is specified as "always supported" by the Wayland protocol.

We also check if it's supported for reading pixels. A new preferred_read_format
function returns the preferred format that can be used to read pixels. This is
used by the screencopy protocol.
2018-11-04 09:00:51 +01:00
Drew DeVault 675cf8457e
Merge pull request #1341 from emersion/view-at-unmapped
rootston: fix segfault in view_at
2018-11-01 21:52:48 +01:00
Drew DeVault 70ca7daeb2
Merge pull request #1346 from emersion/fix-schedule-frame-mgpu
backend/drm: fix frame scheduling on secondary GPUs
2018-10-30 01:59:25 +01:00
emersion 11dc1f65d2
Merge pull request #1344 from emersion/no-atomic-gamma
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
2018-10-29 22:22:40 +01:00
emersion 68362b37a8
backend/drm: fix frame scheduling on secondary GPUs
There was a missing copy_drm_surface_mgpu call in drm_connector_schedule_frame
so we asked for a pageflip with an unknown BO, resulting in ENOENT.

Additionally, this commit makes schedule_frame return a bool indicating
failures. This allows schedule_frame_handle_idle_timer to only set
frame_pending to true if a frame has been successfully scheduled. Thus, if a
pageflip fails, rendering won't be blocked forever anymore.

In case a pageflip is already pending, true is returned because a frame has
already been scheduled and will be sent sometime soon.
2018-10-29 20:38:57 +01:00
emersion 443a38bd3f
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
This allows the legacy interface to be used instead of atomic if needed. This
is a workaround to make some Intel GPUs work (if this variable is unset) as
well as to make some AMD GPUs work (if this variable is set).
2018-10-28 23:43:21 +01:00
emersion 0c7371221c
rootston: fix segfault when destroying unmapped fullscreen views 2018-10-28 23:15:36 +01:00
emersion 1454d1c8f8
rootston: fix segfault in view_at
Make sure the view is mapped.
2018-10-28 23:14:39 +01:00
Drew DeVault 659d39baaa
Merge pull request #1332 from emersion/shm-open
util: use shm_open for in-memory files
2018-10-28 23:05:21 +01:00
emersion 54e78e9e26
xwayland: don't fail if XDG_RUNTIME_DIR is not set
We don't require it, Xwayland doesn't require it, and all X11 apps I tried
don't need it.
2018-10-28 22:39:57 +01:00
emersion 346ec21c4c
util: use shm_open for in-memory files
shm_open is a POSIX function creating an in-memory file. Using it simplifies
the code and removes the dependency on XDG_RUNTIME_DIR. The only downside is
that we need to generate a random name for the shm file.
2018-10-28 22:39:54 +01:00
Drew DeVault f668e49fae
Merge pull request #1340 from emersion/fix-input-method-destroy
input-method-v2: initialize destroy signal
2018-10-28 12:56:53 +01:00
Drew DeVault e3ec1be941
Merge pull request #1338 from emersion/wayland-swap-interval
render: on Wayland, make eglSwapBuffers non-blocking
2018-10-28 12:33:59 +01:00
emersion de8d87f5ae
input-method-v2: initialize destroy signal 2018-10-28 12:23:47 +01:00
emersion 2ae2c247a0
Merge pull request #1339 from MrSorcus/master
Fix "variable ‘cursor_default’ set but not used"
2018-10-28 12:19:17 +01:00
Sorcus 7c540aa9fe Fix "variable ‘cursor_default’ set but not used" 2018-10-28 10:58:13 +00:00
emersion fe247e20a3
Merge pull request #1337 from emersion/idle-zero-timeout
idle: allow zero timeout
2018-10-28 11:21:14 +01:00
emersion b42fc4f2b1
render: on Wayland, make eglSwapBuffers non-blocking 2018-10-28 09:58:20 +01:00
emersion 3cb4ff3ff1
idle: allow zero timeout
Prior to this commit, setting up a zero timeout resulted in a timer that never
expires, which isn't particularly useful.

This commit allows setting up timers that expire immediately, which is useful
to immediately enter idle state.
2018-10-28 09:22:12 +01:00
emersion f34b7f8800
Merge pull request #1336 from swaywm/freebsd
Add FreeBSD build
2018-10-27 19:32:44 +02:00
Drew DeVault 320d5ea234 Add FreeBSD build 2018-10-27 10:33:27 -04:00
Ryan Dwyer 266b3df678
Merge pull request #1335 from emersion/fucking-transparency
xwayland: fix typo to enable transparency
2018-10-27 20:20:32 +10:00
emersion f745befc06
xwayland: fix typo to enable transparency
We spent literally hours trying to debug this. Turns out it's a typo.

Kill me.
2018-10-27 11:59:27 +02:00
Drew DeVault c55d1542fe
Merge pull request #1327 from RyanDwyer/xwm-unset-minmax-hints
xwm: Unset min/max size hints if they're not used
2018-10-22 14:51:06 +02:00
Ryan Dwyer bc52de031e xwm: Unset min/max size hints if they're not used 2018-10-22 21:49:17 +10:00
Drew DeVault 6c7e0e48b1
Merge pull request #1289 from ixru/fix-cursor-visibility
Fix cursor visibility on surface commit
2018-10-21 19:19:02 +02:00
Drew DeVault e0cf97da69
Merge pull request #1307 from emersion/static-analysis
Fix a few bugs found by the static analyzer
2018-10-21 19:18:39 +02:00
emersion be6210cf82
Update version to 0.1 2018-10-21 00:17:22 +02:00
emersion 9e060be04b
Merge pull request #1320 from emersion/fix-duplicate-cursors
output-layout, cursor: fix duplicate cursors
2018-10-19 15:27:58 +02:00
emersion d88fffa5c4
Merge pull request #1321 from RyanDwyer/xwm-remove-dangling-parent
xwm: Remove child->parent pointer when parent destroys
2018-10-19 15:27:20 +02:00
Ryan Dwyer 5c5296c912 xwm: Remove child->parent pointer when parent destroys 2018-10-19 23:03:58 +10:00
emersion dfdbc1f870
output-layout, cursor: fix duplicate cursors
wlr_cursor: make sure the output doesn't have a cursor before
creating a new one

wlr_output_layout: don't emit the "add" event when the output is
already in the layout
2018-10-19 14:50:35 +02:00
Drew DeVault ac26d23711
Merge pull request #1287 from emersion/source-seat-client
data-device: remove wlr_data_source.seat_client
2018-10-19 14:18:05 +02:00
emersion 6730f5ba93
Merge pull request #1314 from nyorain/write_pixels_format
Remove fmt parameter from wlr_texture_write_pixels
2018-10-19 14:04:27 +02:00
Drew DeVault 7bb04887a7
Merge pull request #1319 from emersion/x11-configure-mask
xwayland: handle configure event mask
2018-10-18 15:15:16 +02:00
emersion 9a2fb6f568
xwayland: handle configure event mask 2018-10-18 14:31:08 +02:00
Drew DeVault 67a2040cad
Merge pull request #1318 from dcz-purism/text_input_error
text-input: Don't reject enable requests when unfocused
2018-10-17 18:07:46 +02:00
Drew DeVault 5893b197ba
Merge pull request #1316 from agx/fullscreen-vs-layershell
rootston: Don't let the wlr_output handle the fullscreen view in case…
2018-10-17 17:50:51 +02:00
Dorota Czaplejewicz 14c6ee894e text-input: Don't reject enable requests when unfocused
The prevoius implementation would always raise an error in the following sequence:

-> enter
-> leave
<- enable

The text-input type is not equipped to manage the validity of clents' requests, which should be handled in the compositor, as rootston does.
2018-10-17 15:34:41 +00:00
Guido Günther 175ccc2517 rootston: Don't let the wlr_output handle the fullscreen view in case of layer-shell overlays
Otherwise the overlays will no tbe drawn.

Closes: #1300
2018-10-17 16:59:06 +02:00
Drew DeVault affc83ff82
Merge pull request #1317 from sghctoma/freebsd-fixes
FreeBSD fixes
2018-10-17 16:15:54 +02:00
sghctoma 1d7cc1b38b Add epoll-shim dependency on FreeBSD
On FreeBSD, epoll is provided as a 3rd-party library, so it needs to be
added as a dependency.
2018-10-17 10:55:53 +02:00
sghctoma fa587b8ea9 Increase _POSIX_C_SOURCE to 200112L
CLOCK_MONOTONIC appeared in IEEE Std. 1003.1-200x, it was not part of
POSIX.1b (the 1993 version), and FreeBSD treats it accordingly.
2018-10-17 08:33:19 +02:00
nyorain cb03a41a3b Use enum wl_shm_format for gles2 texture formats
Also rephrase the write_pixels comment.
2018-10-16 09:35:28 +02:00
nyorain cd28637187 Remove fmt parameter from wlr_texture_write_pixels
It's not allowed to change the format of a texture so remove
the confusing parameter.
2018-10-15 23:56:56 +02:00
Scott Anderson 8beeb88309
Merge pull request #1313 from colemickens/libdrm
render: fix meson including libdrm
2018-10-15 22:55:27 +02:00
Cole Mickens 7297348736 render: fix meson including libdrm 2018-10-15 13:34:23 -07:00
Drew DeVault 814fc1364c
Merge pull request #1312 from ascent12/drm_include
Fix libdrm includes
2018-10-15 02:31:49 +02:00
Scott Anderson 7ca3bc1d6f Fix libdrm includes
This removes any assumptions about how the libdrm headers are installed,
and uses the pkg-config include directories as we're "supposed to".
This only adds a partial dependency, since we don't actually need to
link against libdrm.
2018-10-15 11:39:35 +13:00