Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce wlr_drm_lease_v1 #1730

Open
wants to merge 5 commits into
base: master
from

Conversation

@ddevault
Copy link
Member

commented Jun 20, 2019

Still deep in the trenches on this patch, but opening it in case anyone is curious or has early feedback.

  • meson rigging
  • Protocol state management
  • Create & transfer the lease
  • DRM backend updates
  • Example client
  • Rebase
  • Withdraw connector offers when a lease is issued
  • Reissue connector offers when lease terminates
  • Address known issues
  • Rootston support
  • Consensus on protocol

Related ticket: #1723

Test client: https://git.sr.ht/~sircmpwn/kmscube (./kmscube -l)

I don't intend to merge this until this protocol makes it through review on wayland-devel:

https://lists.freedesktop.org/archives/wayland-devel/2019-June/040672.html

@ddevault ddevault force-pushed the drm-lease branch 3 times, most recently from 3030f87 to 77b74a7 Jun 20, 2019

@ddevault ddevault force-pushed the drm-lease branch from c564718 to 3e272bf Jun 26, 2019

@mv0

This comment has been minimized.

Copy link

commented Jun 26, 2019

Hi,

Sorry to barge in, but any reason not posting the protocol on wayland-dev ML? I think there might be others which would like to take a look, and this shouldn't be (a) compositor specific protocol.

@ddevault

This comment has been minimized.

Copy link
Member Author

commented Jun 26, 2019

I prefer to have a working implementation to demonstrate the protocol before I submit it for others to consider. Writing an implementation often turns up defects in the protocol, which I would rather hear about before it's standardized than after.

@ddevault

This comment has been minimized.

Copy link
Member Author

commented Jun 27, 2019

Test client: https://git.sr.ht/~sircmpwn/kmscube

Run ./kmscube -l

@ddevault ddevault force-pushed the drm-lease branch from 296ef8d to 30c6562 Jun 27, 2019

@ddevault

This comment has been minimized.

Copy link
Member Author

commented Jun 27, 2019

This is basically ready for review. Known issues:

  • I hardcoded which output I want to lease for testing purposes, later this will be replaced with automatically offering non-desktop outputs and a lease option in the config
  • Needs to be rebased

The DRM changes and lease manager implementation should be in good shape, though, and if you want to test it you can update the hardcoded output name to some other output for leasing.

@ddevault ddevault requested review from emersion and ascent12 Jun 27, 2019

@@ -649,6 +654,8 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
enum wl_output_transform transform,
int32_t hotspot_x, int32_t hotspot_y, bool update_texture) {
struct wlr_drm_connector *conn = get_drm_connector_from_output(output);
assert((conn->state != WLR_DRM_CONN_LEASED || texture == NULL)
&& "Use of leased connector is a programming error");

This comment has been minimized.

Copy link
@ddevault

ddevault Jun 27, 2019

Author Member

This texture == NULL exception is necessary because when the output is destroyed, its cursors are destroyed as well.

@ddevault ddevault force-pushed the drm-lease branch 5 times, most recently from e6a886c to f49c3a4 Jun 27, 2019

@ddevault ddevault changed the title [WIP] Introduce wlr_drm_lease_v1 Introduce wlr_drm_lease_v1 Jul 2, 2019

@ddevault ddevault force-pushed the drm-lease branch 3 times, most recently from ecab581 to 7bf72b4 Jul 2, 2019

@ddevault ddevault force-pushed the drm-lease branch from 7bf72b4 to 38c8655 Jul 16, 2019

@ddevault ddevault force-pushed the drm-lease branch 3 times, most recently from 9946690 to ad7fd82 Jul 24, 2019

@ddevault ddevault force-pushed the drm-lease branch from ad7fd82 to fc352aa Jul 30, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.