Commit Graph

20882 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
fdc524ee85 mi: drop using HAVE_DIX_CONFIG_H
This symbol is always defined, and the header is always present,
so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
861eea2965 composite: compositeext.h: drop not needed include of dix-config.h
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
2e2c3c50cd xkb: drop using HAVE_DIX_CONFIG_H
This symbol is always defined, and the header is always present,
so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
3ab402d4e9 test: xi2: drop unused check for HAVE_DIX_CONFIG_H
The symbol is always defined, so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
cec02e71cb mi: mivalidate.h: drop unnecessary check for HAVE_DIX_CONFIG_H
The symbol is always defined, so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
d78669aa1b mi: miscanfill.h: drop unnecessary check for HAVE_DIX_CONFIG_H
The symbol is always defined, so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
a3b5fac786 composite: drop unnecessary check for HAVE_DIX_CONFIG_H
The symbol is always defined, so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-17 15:12:58 +02:00
Enrico Weigelt, metux IT consult
15dfccdada dix: add buffer helper for rpc payload assembly
Since so many request handlers have to assemble complex reply payloads,
we've got a lot complexity on counting the needed space and filling in
the data into the right places.

Thus adding a little dynamic buffer structure, where one just can append
data arbitrarily. The buffer will automatically allocate memory as-needed
and finally leave everything in a big memory block for later write-out.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-16 18:02:38 +02:00
Enrico Weigelt, metux IT consult
bbd9f6cdaf os: osdep.h: drop using HAVE_DIX_CONFIG_H
This symbol is always defined, and the header is always present,
so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:32 +02:00
Dudemanguy
1ef3a89575 randr: set initial DPI property to a default value for all outputs
X has various ways to deal with DPI but all of the current methods have
some drawback (single global value, manually calculating from physical
dimensions, etc.) What is lacking is a simple value per output that
users and applications can use to communicate desired scaling values.
Fortunately, a generic output property mechanism already exists. And
they already send events whenever there is a change. So all we have to
do is make an "official" property for people to agree on and enshrine
it. In that case, all outputs can just always have the DPI property set
to something. In most cases, this will be 96 (the default), but one
could use the -dpi argument when launching or and that value will be
used instead. The intention is that 96 is the base that is equivalent to
1x scaling. i.e. 192 would be 2x, 144 would be 1.5x and so on. xrandr or
any other utility can modify this property at any time and applications
can choose to use the number in a way that makes sense.

Closes #208. Credit to @dec05eba for essentially coming up with the idea
of using output properties.

Signed-off-by: Dudemanguy <random342@airmail.cc>
2025-07-14 20:34:32 +02:00
stefan11111
cb0060d933 glamor: Enable dma-buf on nvidia
Nvidia needs dma-buf for glamor acceleration to work
when using the modesetting ddx driver.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-14 20:34:32 +02:00
stefan11111
fafb337fe9 glamor: Use EGL_LINUX_DMA_BUF_EXT to create GBM bo EGLImages
Port https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/751
to xlibre

Fixes glamor with modesetting on nvidia

This is needed for glamor to work with modesetting
on nvidia, according to the nvidia docs:
https://download.nvidia.com/XFree86/Linux-x86_64/510.39.01/README/gbm.html

From the mr above:

The X server was passing GBM bos directly to
eglCreateImageKHR using the EGL_NATIVE_PIXMAP_KHR
target. Given the EGL GBM platform spec claims it
is invalid to create a EGLSurface from a native
pixmap on the GBM platform, implying there is no
mapping between GBM objects and EGL's concept of
native pixmaps, this seems a bit questionable.

This change modifies the bo import function to
extract all the required data from the bo and then
imports it as a dma-buf instead when the dma-buf +
modifiers path is available.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-14 20:34:32 +02:00
Enrico Weigelt, metux IT consult
900dabcfe6 dix: inpututils_priv.h: clean up guard
Give the guard a more unique name.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:32 +02:00
Enrico Weigelt, metux IT consult
80b89a9a11 dix: inpututils_priv.h: drop unneeded extern
function prototypes are by default always extern, so no need for
that extra qualifier.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:32 +02:00
Enrico Weigelt, metux IT consult
b27d826684 dix: inpututils_priv.h: drop HAVE_DIX_CONFIG_H check
It's always defined, so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:32 +02:00
Enrico Weigelt, metux IT consult
69e07a81ed dix: move inpututils.h and rename it to inpututil_privs.h
it's a private header, thus should not be in public include directory.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
add3247d7f os: move probes.h and rename it to probes_priv.h
Private headers should not be in public include directory.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
a4227c0004 glx: drop including dix-config.h from internal includes
The consumers always need to include <dix-config.h> at the very top
anyways, so no need to also include it (with extra guards) from
internal headers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
9991504c1a config: drop using HAVE_DIX_CONFIG_H
This symbol is always defined, and the header is always present,
so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
f011fd10a5 fb: fbbits.h: no need to include dix-config.h here
All in-tree consumers already need to include dix-config.h on the very
top anyways, and there are no out-of-tree consumers (private to fb subsys)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
1b88024da1 fb: fbpict.h: no need to include dix-config.h here
All in-tree consumers already need to include dix-config.h on the very
top anyways, and out-of-tree consumers don't have that include at all.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
bc207adc26 glamor: glamor.h: don't need to include fbpict.h
This header doesn't need anything from fbpict.h, so no need to
include it here.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
stefan11111
8ed369da67 kdrive: constitfy kdOsFuncs & document KdOsInit()
Not supposed to be written to (once the pointer is assigned),
so should be marked const. Also document KdOsInit()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:34:31 +02:00
stefan11111
7c341a41e6 kdrive: ephyr: initialize OS specific callback vectors
These will be used by subsequent commits for generic Kdrive
functions calling back into the OS specific parts

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-14 20:34:31 +02:00
stefan11111
ff7b82fd50 kdrive: add KdOsInit
Kdrive X servers used to do the OS-speciffic init part using KdOsInit.
This was changed in modern Xorg because Xephyr is the only kdrive
X server there, so there was no need to keep this generic.
Since we want to eventually add Xfbdev, we need to add this back.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-14 20:34:31 +02:00
Enrico Weigelt, metux IT consult
90bfeca905 Xi: drop unused variable and NULL free in ProcXISelectEvents()
The `types` variable is never used, just assigned NULL - and that NULL
value is passed to free(). This code is really doing nothing, never did so
since introduced in 2009.

Fixes: 8b6a370058
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-14 20:26:57 +02:00
Enrico Weigelt, metux IT consult
c54d8b1b34 minor release 25.0.0.5
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
xlibre-xserver-25.0.0.5
2025-07-11 17:52:07 +02:00
Enrico Weigelt, metux IT consult
d6225de192 .gitlab: merge release into xserver-build workflow
Not neccessary to have entirely separate workflow for it - that's
just spamming the workflow list.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-11 17:35:46 +02:00
fish4terrisa-MSDSM
c754162a36 modesetting: ignore the drmmode if p->atoms is null
Some display drivers might cause p->atoms to be null if the display is
disabled. This will cause segfault when checking
if p->atoms[0] != property .
Some display drivers owned by qualcomm is known to cause this bug.

Signed-off-by: fish4terrisa-MSDSM <flyingfish.msdsm@gmail.com>
2025-07-11 17:14:07 +02:00
Enrico Weigelt, metux IT consult
cdd81c2744 meson.build: add -Woverride-init
enable override-init warning to catch some more bugs.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-11 15:51:39 +02:00
Enrico Weigelt, metux IT consult
fdafb087d8 dix: fix SetPointerMapping reply success code on busy
If ApplyPointerMapping() returns `MappingBusy`, this value needs to be
returned in the `success` reply field. On `Success` the returned value
needs to be `MappingSuccess`.

Closes: https://github.com/X11Libre/xserver/issues/353
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-11 15:51:39 +02:00
Enrico Weigelt, metux IT consult
c5d5e8908d .github: drop obsolete xwayland dependencies
Since Xwayland is long gone, we don't need to install it's build-time
dependencies anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-09 14:09:01 +02:00
Enrico Weigelt, metux IT consult
d3c32cdfa8 Xi: fix wrong assertion in RetrieveTouchDeliveryData()
The assert(iclients) was in a place where the iclients variable could
not have been initialized ever - the first assignment is done *after* that.
Since we already have a BUG_RETURN_VAL() right be before it's actually
dereferenced, there's no need for that assert() at all - so drop it.

See https://github.com/X11Libre/xserver/issues/330

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-09 13:58:31 +02:00
Enrico Weigelt, metux IT consult
939ba0803c .github: add workflow for github releases
when tag xlibre-xserver-* is pushed, automatically create a github release.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-09 13:57:53 +02:00
Enrico Weigelt, metux IT consult
bab9362335 miext: damage: document DamageScreenFuncsRec
This struct (and associated functions) needs to be part of public driver ABI,
so video drivers can get notifications on damage certain operations, but
there hasn't been any documentation on it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-08 17:47:24 +02:00
Enrico Weigelt, metux IT consult
dfcfdd67a6 xquartz: drop using HAVE_DIX_CONFIG_H
This symbol is always defined, and the header is always present,
so no need to check for it.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-08 17:43:07 +02:00
Enrico Weigelt, metux IT consult
2c50fedc2d xfree86: inputtest: use FatalError() instead of abort()
Directly calling abort() doesn't print a stack trace, nor any useful message.
Instead FatalError() should be used in cases, where there's really no other
way than terminating the Xserver. The FatalError function also tries to make
a smooth shutdown (eg. resetting video mode), so console doesn't end up locked.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-08 15:56:06 +02:00
stefan11111
c4df9ecdc5 kdrive: add documenation for mouse arguments
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-08 13:13:20 +02:00
stefan11111
d0c507d9e7 kdrive: const-qualify KdAddConfig{Keyboard,Pointer}'s argument
The passed name buffer isn't changed by those functions ever
(it would be a bug if they did so), therefore it should be const.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-08 13:13:20 +02:00
stefan11111
836013edca kdrive: move a local variable declaration to the top of the scope
Makes the code more consistent with the rest of the codebase

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-08 13:13:20 +02:00
stefan11111
2884ede393 kdrive: fix incorrect NULL-check
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-07-08 13:13:20 +02:00
Enrico Weigelt, metux IT consult
c91ff8308f .github: use last known good revision of piglit
Just using current master is too unstable and currently breaking tests.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-07 13:20:40 +02:00
Enrico Weigelt, metux IT consult
7a56f5513d .github: use last known good revision of XTS
Just using current master is too unstable and currently breaking
MacOS build.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-07 13:20:40 +02:00
Enrico Weigelt, metux IT consult
2aa982b9a8 .github: util.sh: allow explicit commit on clone_source
Add 4th parameter to clone_source() helper for checking out specific commit.
It will clone the given branch (but with full depth) and then checkout
the given commit.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-07 13:20:40 +02:00
Enrico Weigelt, metux IT consult
fc9bd6b175 minor release 25.0.0.4
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
xlibre-xserver-25.0.0.4
2025-07-04 17:26:48 +02:00
Enrico Weigelt, metux IT consult
d338bf6e68 namespace: drop unused winIsRoot()
Not used in this file, so no need to keep it around anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-04 17:11:54 +02:00
Enrico Weigelt, metux IT consult
c6777fe48e xnest: drop unused DarwinHandleGUI()
Obsolete since 17 years now, probably just forgotten to clean up.

Fixes: ef1c520537
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-04 17:10:02 +02:00
Enrico Weigelt, metux IT consult
2f46a02217 vfb: drop unused DarwinHandleGUI()
Obsolete since 17 years now, probably just forgotten to clean up.

Fixes: ef1c520537
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-04 17:10:02 +02:00
Enrico Weigelt, metux IT consult
93013224b4 xquartz: fix incomplete prototype of executable_path()
> ../hw/xquartz/mach-startup/bundle_trampoline.c:53:29: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
> static char *executable_path() {
>                             ^
>                              void
> 1 warning generated.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-04 17:09:33 +02:00
Enrico Weigelt, metux IT consult
74d5b7bb05 xquartz: drop unused field declarations in request handlers
Silence compiler warning on unused fields, eg.:

> ../hw/xquartz/applewm.c:692:5: warning: unused variable 'stuff' [-Wunused-variable]
>     REQUEST(xAppleWMQueryVersionReq);
>     ^
> ../include/dix.h:65:12: note: expanded from macro 'REQUEST'
>     type * stuff = (type *)client->requestBuffer;
>            ^

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-07-04 17:08:46 +02:00