aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-13backend/x11: Move atom initilisation earlierScott Anderson
There isn't any real reason to delay this until the backend is started.
2018-11-13backend/x11: Make header order consistentScott Anderson
2018-11-13backend/x11: Rename xcb_conn to xcbScott Anderson
When the Xlib connection is removed, this _conn suffix is going to be pointless. I'm removing this preemtively for that.
2018-11-12Merge pull request #1373 from emersion/fix-teardown-segfaultsDrew DeVault
xdg-shell: don't destroy xdg role state on role destroy
2018-11-12Merge pull request #1372 from emersion/config10Drew DeVault
Use #if instead of #ifdef for wlroots config data
2018-11-12Merge pull request #1369 from ascent12/wayland_backendDrew DeVault
Wayland backend improvements
2018-11-12xdg-shell: don't destroy xdg role state on role destroyemersion
ie. don't destroy surface->toplevel on xdg_toplevel destroy. Instead do this on xdg_surface destroy. This allows compositors to add toplevel listeners when the surface appears and remove them when the surface is destroyed.
2018-11-12Use #if instead of #ifdef for wlroots config dataemersion
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
2018-11-11backend/wayland: handle WL_EVENT_WRITABLE for Wayland socketemersion
We need to flush when the connection is writable again. This is important in case the write buffer becomes full. This is also what Weston does [1]. [1]: https://gitlab.freedesktop.org/wayland/weston/blob/master/libweston/compositor-wayland.c#L2593
2018-11-11backend/wayland: Make header order consistentScott Anderson
2018-11-11backend/wayland: Move initilisation code earlierScott Anderson
The renderer redesign is going to need the render fd before the backend is fully started, so we have to move the wl registry code to when the backend is created instead of when it is started. We also need to stash the wl_keyboard and emit it to library users later, once they've added their listeners and started the backend.
2018-11-11backend/wayland: Use specific wl_global versionsScott Anderson
Explicitly use the version we support instead of accepting the compositor's version.
2018-11-11backend/wayland: Move registry into backendScott Anderson
Registry was a very small file, and is heavily related to the backend, so there is not point in keeping them separate.
2018-11-10Merge pull request #1356 from emersion/egl-renderable-typeDrew DeVault
render: correctly set EGL_RENDERABLE_TYPE
2018-11-10render: correctly set EGL_RENDERABLE_TYPEemersion
This should be set to EGL_OPENGL_ES2_BIT. Also fixes EGL config attributes in the headless and X11 backends.
2018-11-09Merge pull request #1364 from ManDay/masterDrew DeVault
Tell Mesa not to attempt X11 headers
2018-11-09Tell Mesa not to attempt X11 headersCedric Sodhi
If no X11 related things are being built, tell Mesa's eglplatform.h not to attempt inclusion of associated X11 header.
2018-11-09Merge pull request #1361 from sghctoma/fix-shmemersion
Force ftruncate for shared memory objects on FreeBSD
2018-11-09Remove WLR_HAS_POSIX_FALLOCATE from build systemsghctoma
2018-11-09Use ftruncate to set shared memory object's sizesghctoma
The posix_fallocate function should only be used with regular files.
2018-11-09Merge pull request #1362 from julio641742/patch-1emersion
Fix compilation error on musl
2018-11-09Fix compilation error on muslJulio Galvan
_XOPEN_SOURCE is needed for the strings.h ffs function on the musl libc implementation
2018-11-08Force ftruncate for shared mem. objects on FreeBSDsghctoma
FreeBSD does not allow to use posix_fallocate on shared memory objects.
2018-11-06Merge pull request #1358 from emersion/xcursor-heapDrew DeVault
xcursor: Fix heap overflows when parsing malicious files
2018-11-06xcursor: Fix heap overflows when parsing malicious filesTobias Stoeckmann
It is possible to trigger heap overflows due to an integer overflow while parsing images. The integer overflow occurs because the chosen limit 0x10000 for dimensions is too large for 32 bit systems, because each pixel takes 4 bytes. Properly chosen values allow an overflow which in turn will lead to less allocated memory than needed for subsequent reads. See also: https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8 https://gitlab.freedesktop.org/wayland/wayland/commit/5d201df72f3d4f4cb8b8f75f980169b03507da38
2018-11-06Merge pull request #1357 from emersion/xopen-sourceDrew DeVault
Use _POSIX_C_SOURCE, use shm_open
2018-11-06examples: only link clients to wlroots if necessaryemersion
2018-11-06Use _POSIX_C_SOURCE, use shm_openemersion
2018-11-04Merge pull request #1261 from arandomhuman/damage-controlDrew DeVault
Fix damage tracking for surfaces with transforms
2018-11-04Merge pull request #1350 from emersion/check-gles2-bgra-extDrew DeVault
render/gles2: remove assumptions about supported formats
2018-11-04surface: fix wlr_surface_get_effective_damage to give surface coordsemersion
Transforms were applied, but scale wasn't.
2018-11-04render/gles2: check for GL_OES_EGL_image_externalemersion
2018-11-04backend/drm: specify minimum config attributesemersion
Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B and A channel.
2018-11-04render/gles2: remove assumptions about supported formatsemersion
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-01Merge pull request #1341 from emersion/view-at-unmappedDrew DeVault
rootston: fix segfault in view_at
2018-10-30Merge pull request #1346 from emersion/fix-schedule-frame-mgpuDrew DeVault
backend/drm: fix frame scheduling on secondary GPUs
2018-10-29Merge pull request #1344 from emersion/no-atomic-gammaemersion
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
2018-10-29backend/drm: fix frame scheduling on secondary GPUsemersion
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-28backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variableemersion
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-28rootston: fix segfault when destroying unmapped fullscreen viewsemersion
2018-10-28rootston: fix segfault in view_atemersion
Make sure the view is mapped.
2018-10-28Merge pull request #1332 from emersion/shm-openDrew DeVault
util: use shm_open for in-memory files
2018-10-28xwayland: don't fail if XDG_RUNTIME_DIR is not setemersion
We don't require it, Xwayland doesn't require it, and all X11 apps I tried don't need it.
2018-10-28util: use shm_open for in-memory filesemersion
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-28Merge pull request #1340 from emersion/fix-input-method-destroyDrew DeVault
input-method-v2: initialize destroy signal
2018-10-28Merge pull request #1338 from emersion/wayland-swap-intervalDrew DeVault
render: on Wayland, make eglSwapBuffers non-blocking
2018-10-28input-method-v2: initialize destroy signalemersion
2018-10-28Merge pull request #1339 from MrSorcus/masteremersion
Fix "variable ‘cursor_default’ set but not used"
2018-10-28Fix "variable ‘cursor_default’ set but not used"Sorcus
2018-10-28Merge pull request #1337 from emersion/idle-zero-timeoutemersion
idle: allow zero timeout