Drew DeVault
040d62de00
Merge pull request #1366 from emersion/render-software-cursors
...
Render software cursors in compositor
6 years ago
emersion
1b9ebcf645
output: make wlr_egl flip the damage
6 years ago
emersion
ca770995cc
output: add wlr_output_render_software_cursors
...
Rendering in wlr_output_swap_buffers has unfortunate side-effects.
6 years ago
emersion
57307b7aa7
output: remove wlr_output_set_fullscreen_surface
...
This wasn't using direct scan-out. Direct scan-out will probably
work differently with @ascent12's work anyway.
6 years ago
emersion
df7d4a71fb
Merge pull request #1368 from ascent12/x11_backend
...
X11 backend improvements
6 years ago
Scott Anderson
d3ee69f76b
backend/x11: Hide cursor with Xfixes
6 years ago
Scott Anderson
70ae76304e
backend/x11: Remove old input functions
...
This also allows us to remove xcb-xkb, since Xinput will now give us the
appropriate XKB modifiers with each event.
6 years ago
Scott Anderson
d89e868cc9
backend/x11: Add new Xinput events
6 years ago
Scott Anderson
88b2d6fe25
backend/x11: Check for xinput extension
6 years ago
Scott Anderson
9c1b87f210
backend/x11: Move atom initilisation earlier
...
There isn't any real reason to delay this until the backend is started.
6 years ago
Scott Anderson
ab2c57984b
backend/x11: Make header order consistent
6 years ago
Scott Anderson
51a283cbe4
backend/x11: Rename xcb_conn to xcb
...
When the Xlib connection is removed, this _conn suffix is going to be
pointless. I'm removing this preemtively for that.
6 years ago
Drew DeVault
4aff85cc8e
Merge pull request #1373 from emersion/fix-teardown-segfaults
...
xdg-shell: don't destroy xdg role state on role destroy
6 years ago
Drew DeVault
77dfac4fa4
Merge pull request #1372 from emersion/config10
...
Use #if instead of #ifdef for wlroots config data
6 years ago
Drew DeVault
d2d8372cdc
Merge pull request #1369 from ascent12/wayland_backend
...
Wayland backend improvements
6 years ago
emersion
89ec624f81
tablet-v2: fix segfault on display destroy
6 years ago
emersion
95dfbe2962
xdg-shell: don't destroy xdg role state on role destroy
...
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.
6 years ago
emersion
51bfdd620e
Use #if instead of #ifdef for wlroots config data
...
This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name.
6 years ago
emersion
180151ed09
backend/wayland: handle WL_EVENT_WRITABLE for Wayland socket
...
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
6 years ago
Scott Anderson
aaff4b8c00
backend/wayland: Make header order consistent
6 years ago
Scott Anderson
bbce92a923
backend/wayland: Move initilisation code earlier
...
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.
6 years ago
Scott Anderson
47545cf550
backend/wayland: Use specific wl_global versions
...
Explicitly use the version we support instead of accepting the
compositor's version.
6 years ago
Scott Anderson
4e03802057
backend/wayland: Move registry into backend
...
Registry was a very small file, and is heavily related to the backend,
so there is not point in keeping them separate.
6 years ago
Drew DeVault
3181c4bec0
Merge pull request #1356 from emersion/egl-renderable-type
...
render: correctly set EGL_RENDERABLE_TYPE
6 years ago
emersion
09550032b7
render: correctly set EGL_RENDERABLE_TYPE
...
This should be set to EGL_OPENGL_ES2_BIT.
Also fixes EGL config attributes in the headless and X11 backends.
6 years ago
Drew DeVault
ca570fa63c
Merge pull request #1364 from ManDay/master
...
Tell Mesa not to attempt X11 headers
6 years ago
Cedric Sodhi
beefec3326
Tell Mesa not to attempt X11 headers
...
If no X11 related things are being built, tell Mesa's eglplatform.h not to attempt inclusion of associated X11 header.
6 years ago
emersion
e70a552203
Merge pull request #1361 from sghctoma/fix-shm
...
Force ftruncate for shared memory objects on FreeBSD
6 years ago
sghctoma
753540335b
Remove WLR_HAS_POSIX_FALLOCATE from build system
6 years ago
sghctoma
bc5e84225c
Use ftruncate to set shared memory object's size
...
The posix_fallocate function should only be used with regular files.
6 years ago
emersion
0b5485cf83
Merge pull request #1362 from julio641742/patch-1
...
Fix compilation error on musl
6 years ago
Julio Galvan
a31fa678e5
Fix compilation error on musl
...
_XOPEN_SOURCE is needed for the strings.h ffs function on the musl libc implementation
6 years ago
sghctoma
b25e230df8
Force ftruncate for shared mem. objects on FreeBSD
...
FreeBSD does not allow to use posix_fallocate on shared memory objects.
6 years ago
Drew DeVault
bcd19a8824
Merge pull request #1358 from emersion/xcursor-heap
...
xcursor: Fix heap overflows when parsing malicious files
6 years ago
Tobias Stoeckmann
de0a032d8e
xcursor: Fix heap overflows when parsing malicious files
...
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
5d201df72f
6 years ago
Drew DeVault
2bf482e90f
Merge pull request #1357 from emersion/xopen-source
...
Use _POSIX_C_SOURCE, use shm_open
6 years ago
emersion
a8bc8c65ce
examples: only link clients to wlroots if necessary
6 years ago
emersion
2d0c5ec78e
Use _POSIX_C_SOURCE, use shm_open
6 years ago
Drew DeVault
d7b010024a
Merge pull request #1261 from arandomhuman/damage-control
...
Fix damage tracking for surfaces with transforms
6 years ago
Drew DeVault
cb503973ce
Merge pull request #1350 from emersion/check-gles2-bgra-ext
...
render/gles2: remove assumptions about supported formats
6 years ago
emersion
dec303bea6
surface: fix wlr_surface_get_effective_damage to give surface coords
...
Transforms were applied, but scale wasn't.
6 years ago
emersion
d592dcdedd
render/gles2: check for GL_OES_EGL_image_external
6 years ago
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.
6 years ago
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.
6 years ago
Drew DeVault
675cf8457e
Merge pull request #1341 from emersion/view-at-unmapped
...
rootston: fix segfault in view_at
6 years ago
Drew DeVault
70ca7daeb2
Merge pull request #1346 from emersion/fix-schedule-frame-mgpu
...
backend/drm: fix frame scheduling on secondary GPUs
6 years ago
emersion
11dc1f65d2
Merge pull request #1344 from emersion/no-atomic-gamma
...
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
6 years ago
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.
6 years ago
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).
6 years ago
emersion
0c7371221c
rootston: fix segfault when destroying unmapped fullscreen views
6 years ago