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

wlroots 0.15.0 #52

Closed
m-col opened this issue Aug 25, 2021 · 3 comments
Closed

wlroots 0.15.0 #52

m-col opened this issue Aug 25, 2021 · 3 comments

Comments

@m-col
Copy link
Collaborator

m-col commented Aug 25, 2021

There are some breaking changes for the next wlroots release, and more may be added between now and when it is released. I'm going through their changes listed here and checking to see if we need to do something about them. This may need updating as they add more changes - current version is from 25th August.

Changes for packagers

  • backend: make DRM and libinput backends optional (#3058): the x11-backend build option has been superseded by the backends option.

Doesn't affect us.

Breaking changes for compositors

These changes can affect most compositors.

  • Nuke wlr_list (#3002): wlr/types/wlr_list.h has been removed. wlr_tablet.paths and wlr_tablet_pad.paths are now wl_array instead of wlr_list.

Doesn't affect us.

  • Stabilize wlr_box API (#3011)
    • wlr_box_from_pixman_box32 and wlr_box_rotated_bounds have been removed.
    • wlr/types/wlr_box.h has been moved to wlr/util/box.h (a redirection with a warning is still in place).
    • Unnecessary wlr_box.h includes have been replaced with forward declarations in public wlroots headers.

Just need to move box.py #50 and remove wlr_box_rotated_bounds #51

  • backend/drm: preserve mode order from kernel (#3078): the order of wlr_output.modes has been reversed for the DRM backend to match the kernel's ordering. Compositors are advised to use wlr_output_preferred_mode instead of relying on mode order.

This doesn't affect pywlroots directly but may affect any compositors that use it.

  • layer-shell: replace close() with destroy() (#3108): replace wlr_layer_surface_v1_close calls with wlr_layer_surface_v1_destroy and ensure the wlr_layer_surface_v1 isn't used after that call.

Needs some changes. #51

Breaking changes for custom backends and renderers

These changes are unlikely to affect compositors that don't have a custom
backend or renderer.

  • render/egl: make most functions private (#2985)

Doesn't affect us.

  • surface: make wlr_subsurface_create private (#2993)

Just need to remove the signature from ffi_build.py #51

  • render: drop wlr_renderer_impl.texture_from_{pixels,dmabuf} (#2997)
  • Remove wlr_resource_get_buffer_size (#3023)
    • wlr_resource_get_buffer_size has been removed.
    • wlr_client_buffer_import has been split into two functions: wlr_buffer_from_resource and wlr_client_buffer_create.
  • buffer: drop wlr_client_buffer.resource (#3039)
  • output: add generic wlr_output_export_dmabuf implementation (#2955): wlr_output_impl.export_dmabuf has been dropped.

None of these affect us.

  • render: drop wlr_renderer_impl.init_wl_display (#3062)

This needs some changes to Renderer and ffi_build.py.

  • Drop legacy output APIs (#3044): wlr_output_impl.{attach,rollback}_render and wlr_output_state.buffer_type have been removed.

Replace pending_buffer_type with pending_attach_render #51

Of course, we'll need to keep this up to date as they add more changes. Once 0.15 upstream is released we can cross reference this with their changelog and then release with our breaking changes from #51.

@flacjacket
Copy link
Owner

Thanks for keeping track of these!

If it would help, we could create a branch to track these changes and then when the release is made we can easily cut a 0.14 branch and merge these in from the dev branch.

@m-col
Copy link
Collaborator Author

m-col commented Aug 25, 2021

Yeah good call. That's essentially what #51 is (#50 can be merged already) but if the branch is in the repo then others can contribute changes if needed.

@flacjacket
Copy link
Owner

This should be good now! Release is out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants