> ../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>
Previously we leaked stack when invalid enum parameters were
specified and caused __glGet*_size functions to return a 0 size.
Further, we read out-of-bounds (and leaked) when the input data was less
than 8 bytes (__glXDispSwap_GetFramebufferAttachmentParameteriv and
__glXDisp_GetRenderbufferParameteriv).
Now we only write a single element in the reply padding, and only when there
is a single element. This is what the Mesa client-side libGL expects, and
restores original GLX server behaviour, matching both pre-public (1996) SGI GLX
and XFree86 4.
The main risk of this change is if we have any error in element count or size;
previously it may not have mattered but now it does.
There are no piglit result changes from this modification using either mesa
libGLX or NVIDIA libGLX.
For performance considerations, an extra conditional and variable-length
memcpy has no meaningful impact on the indirect rendering pipeline cost.
There is still the possiblity to leak if our size checks allow an enum that
the GL implemention does not. Guarding against that requires zero-initializing
all temp storage, which wants re-evaluation of the blind 200-byte buffers
used for many calls and thus is a much bigger change.
Signed-off-by: Nathan Kidd <nkidd@rocketsoftware.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1647>
The callers of these functions were casting -1 to unsigned and then
using 4GB indexes. By returning 0 we match all the other size functions.
GLX size functions return -1 to indicate error, but GL size functions return 0.
Signed-off-by: Nathan Kidd <nkidd@rocketsoftware.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1647>
Some drivers need to call into damage from within their CloseScreen proc,
so damage teardown needs to be done after that, instead of before.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
In contrast to the already existing ScreenClose hook, this one is
called *after* the driver's CloseScreen() proc. That's required for
some extensions (eg. damage) where drivers still need to call in
inside of their CloseScreen procs.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
In CheckVersion() the errtype variable is used in two separate scopes,
but not globally, so it's cleaner to have it only in the scopes that
are actually using it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
For better readability and robustness against future changes, it's
better to use named struct initializers instead of array-like lists.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
The monitor values (vendor and model) accidentally had been copied
at the start of the payload, instead of being appended after the
previously copied data, and also moving the wrong pointer, thus
corrupting the reply and causing some clients to hang.
Signed-off-by: Tautvis <gtautvis@gmail.com>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
In xnestOpenScreen(), some compilers/analyzers spitting out a false alarm on
`defaultVisual` field potentially used uninitialized. This can't practically
happen, but not all compilers/analyzers really can see that.
Adding a zero initializer doesn't cost us anything, so silencing that false
alarm is trivial.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Listing all patchlevels in the ticket form would quickly explode it.
Users are expected to always run the latest patchlevel (4th digit), because
they're only receiving urgent bug and security fixes, not getting anything new,
that could break other things.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This lets Zink take advantage of DRM modifiers on GPUs letting it properly handle tiled buffers.
Signed-off-by: notbabaisyou <though-went-some-simple@proton.me>
The Linux kernel has long had code preventing Xorg from using atomic
modesetting due to various bugs in it's implementation, some of these
issues have since been fixed but some issues remain namely with DPMS
and other smaller things, we should allow users to opt-in by setting
"Option 'Atomic' 'True'"
This shouldn't cause any issues as the feature remains disabled by default.
Co-authored-by: Daniel Abrecht <public@danielabrecht.ch>
Signed-off-by: notbabaisyou <though-went-some-simple@proton.me>
Skipped headers designed for multiple or non-trivial inclusion:
* miext/shadow/shrotpack.h
* miext/shadow/shrotpackYX.h
Signed-off-by: Mike Gelfand <mikedld@mikedld.com>
Add the following forms for issue creation:
* Bug report
* Feature request
* Code cleanup
* Documentation update
* Organizational task
* add issue type selection page on "New Issue" call
* mention Github Discussions and the mailing list where appropriate
Fixes#257
Signed-off-by: callmetango <callmetango@users.noreply.github.com>
Helpful for CI builds where we could be setting different paths on
different runners (due to OS or something else).
Signed-off-by: Mike Gelfand <mikedld@mikedld.com>
Build directory may sometimes contain directories ending with a period
and a digit, e.g. in my case
* ./meson-private/cmake_xshmfence/CMakeFiles/4.0.3
* ./meson-private/__CMake_compiler_info__/CMakeFiles/4.0.3
Since man pages are files, filter out the rest.
Signed-off-by: Mike Gelfand <mikedld@mikedld.com>