Skip to content

New X server: Xmodesetting - #3695

Open
stefan11111 wants to merge 24 commits into
X11Libre:masterfrom
stefan11111:xmodesetting
Open

stefan11111 wants to merge 24 commits into
X11Libre:masterfrom
stefan11111:xmodesetting

Conversation

@stefan11111

Copy link
Copy Markdown
Contributor

Same as #3688 , but with Xmodesetting

As of writing this, Xmodesetting is mostly Xfbdev without dpms, ported from tinycorelinux/tinyx#20

The X server works, and asan seems just as happy as with Xfbdev.

@stefan11111
stefan11111 requested a review from a team September 12, 2026 23:59
@stefan11111
stefan11111 force-pushed the xmodesetting branch 29 times, most recently from bd106b0 to 6aa8bad Compare September 15, 2026 22:24
@stefan11111

Copy link
Copy Markdown
Contributor Author

@cepelinas9000 @X11Libre/dev

If you want to take a look at this, it should be in a usable state.

Gamma support is not yet implemented, but it will be.

Modifier support is also not implemented, will come in a later series, since it needs some glamor modifications.

Current supported depths are 8, 16, 24, and 30.

I couldn't get depth 8 to work, but that could be due to my machine.

Both the RGB and BGR formats are supported, but I don't know how well DRI3 behaves with a BGR front.

Depth 24 with bpp 24 maybe works, but I don't have hw to test it.

I saw some weird things happening with the border on alpha-patched st with dwm with depth 30.
Not sure what's up with that. Maybe there is too little space left for alpha?

Because of this, depth 30 is only used if requested by the user. All other depth/bpp are probed, starting from 24/32 and going down.

I tried to see if I could get depth 48, bpp 64 with GBM_FORMAT_XBGR16161616F, but the kdrive code isn't really designed around >32 bpp, and even after somewhat fixing kdrive, I got segfaults somewhere in mi, and left it for another time.

I set the visual mask to GrayScale for depth 8, and TrueColor for all other depths.
I wasn't too sure what to set them to, but this felt good enough.

Tiny X server for KMS devices

More or less a direct import of tinycorelinux/tinyx#20
with Xfbdev-like glamor acceleration, which we get for cheap

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Make the default FALSE

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Forces glamor to not use libgbm

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Allows kglamor to manage it without ddx involvement

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
This is per-card info, that is shared among screens

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
They are properties of the screen, not the front bo

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Store only the device path in `card->closure`
Store the screen config in `screen->closure`

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
If multiple physical outputs are connected to screens on the
same physical card, we probe the first output and crtc as unusal,
and add them to a list.

For subsequent screens on the same card, we look for different outputs and crtcs

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
…initialized

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Reverts and fixes X11Libre@14912f8

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
even when probed and not explcit

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
…formats

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
The option was parsed, but not implemented

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Fall back to `drmModeAddFB` if that fails

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
@stefan11111 stefan11111 changed the title New X servers: Xmodesetting, Xfake New X servers: Xmodesetting, ~~Xfake~~ Sep 16, 2026
@stefan11111 stefan11111 changed the title New X servers: Xmodesetting, ~~Xfake~~ New X servers: Xmodesetting Sep 16, 2026
@stefan11111 stefan11111 changed the title New X servers: Xmodesetting New X server: Xmodesetting Sep 16, 2026
Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Also some cosmetic changes

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
Move the gamma-related stuff to a different file

Signed-off-by: stefan11111 <stefan11111github@gmail.com>
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

Successfully merging this pull request may close these issues.

2 participants