In mesa 23.3.x zink broke on nvidia, crashing in eglCreateContext.
In the same release, zink was added as a fallback between the
hardware drivers and swrast.
Any application that was previously falling back to swrast
now instead crashes, when using the nvidia vulkan driver.
How exactly do you reach zink or previously swrast when using
nvidia you may ask?
One common path may be EGL applications using EGL_EXT_platform_xcb.
The nvidia driver does not support it, thus GLVND tries the next
driver which is mesa, mesa doesn't find any suitable hardware driver
and thus falls back to zink or swrast.
Until zink is stable again on nvidia, we should disable the zink
fallback to prevent applications crashing instead of falling back
to swrast.
There should be no need to also disable the GLX fallback to zink
as i'm not aware of a call path that would lead to using mesa when
the nvidia drivers are installed.
RHBZ 2255599
RHBZ 2255768
MESA 10340
MESA 10341
An update on the linker will now refuse to create binaries with a
loadable memory segment that has read, write and execute permissions
set.
mesa creates one unless "glx-read-only-text" is enabled.
Revert commit e2acc882a1 ("Disable rwx segment linker error") and set
"glx-read-only-text" instead.
See Nick's comment for more information about the revert:
https://bugzilla.redhat.com/show_bug.cgi?id=2250927#c10
Fix: https://bugzilla.redhat.com/show_bug.cgi?id=2250927
An update on the linker will now refuse to create binaries with a
loadable memory segment that has read, write and execute permissions
set.
mesa creates one unless "glx-read-only-text" is enabled, however, the
documentation for "glx-read-only-text" reads:
"Disable writable .text section on x86 (decreases performance)"
In order to avoid possible performance regressions, disable the linker
error.
Fix: https://bugzilla.redhat.com/show_bug.cgi?id=2250927
Remove patch added by commit d0377e3d3b ("Backport MR #24045 to fix
Iris crashes (#2238711)") as it was fixed by upstream mesa commit
9590bce3e249 ("radeonsi: prefix function with si_ to prevent name
collision"), which is included in 23.3.0-rc1:
$ git tag --contains=9590bce3e249
mesa-23.3.0-rc1
In order to enable hardware acceleration when running x86 applications
on AArch64, the drivers that are typically only enabled on AArch64
need to be built for x86 architectures too.
This allows us to set up x86 containers on AArch64 that can correctly
interface with hardware properly.
This is another attempt to prevent partial updates, where important mesa
subpackages get desynchronized with mesa-dri-drivers, and things crash because
of version mismatch.
According to Michel Dänzer [1], libglapi and libgbm should always match in
version to dri-drivers. So the conditional requirement was added there, and it
will help guard dependants (e.g. libGL, libEGL) versions in the future.
This is the Rawhide-version of PR 24 [2].
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2187726#c4
[2] https://src.fedoraproject.org/rpms/mesa/pull-request/24
Whenever we require a library from one of the mesa subpackages, use
fully qualified requires when doing so to ensure that the packages are
always updated in lock step.
Do not require the exact full version but rather the matching
major.minor of the mesa release in order to allow for alternative
providers from other repos to slightly lag behind.
See https://bugzilla.redhat.com/show_bug.cgi?id=2161338#c12