Skip to content

Conversation

@madsmtm
Copy link
Member

@madsmtm madsmtm commented Jan 27, 2026

I don't really know how DRM/KMS works, and I don't have Orbital/Redox in a VM, so for the changes I've been making recently, I haven't tested those platforms.

I'd argue that this is fine, I think those platforms are fine to be less supported than the others, but we should document this somewhere. Additionally, while I try to make Android, Web and iOS work, these are also gonna be less tested in practice.

For this, I propose introducing three "support tiers" in a similar vein as rust-windowing/winit#3887. I went with only listing platforms, and not rustc targets, since there isn't any target- / architecture-specific code to speak of in Softbuffer (apart from endianess checks, which I documented to be less tested on big endian in this PR too).

@madsmtm madsmtm added the documentation Improvements or additions to documentation label Jan 27, 2026
| Wayland | 1 ||
| Win32 | 1 ||
| XCB / Xlib (X11) | 1 ||
| Android NDK | 2 ||
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would commit to 1 on Android too, if it weren't for the remaining issues in android-activity and winit.

Copy link
Member Author

@madsmtm madsmtm Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm kind of of the same mind for iOS / UIKit (and Web to a certain extent), the problems there aren't in Softbuffer but in Winit. But effectively, it does mean that Android and iOS are less supported, hence tier 2.

| WebAssembly | 2 ||
| DRM/KMS | 3 ||
| Orbital | 3 ||
| GBM/KMS | N/A ||
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are users interested in a GBM backend - which uses DRM/KMS?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idk how GBM works, I just kinda filled out the table based on RawWindowHandle

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As long as the gbm_surface uses a linear modifier, we could mmap it and write to it, but I'd assume for pure software rendering using dumb buffers would perform better, or equivalently?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it makes sense to list it here anyhow, regardless of whether we ever intend to support it, since it's part of raw-window-handle.

@madsmtm madsmtm force-pushed the madsmtm/support-tiers branch from cb9a69f to aa04cb3 Compare January 27, 2026 18:43
By adding a pull request template with the tier list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Development

Successfully merging this pull request may close these issues.

5 participants