Update to 24.1.0
Backports the changes from Fedora's spec file but doesn't enable any new drivers. Build meson, libclc, spirv-llvm-translator and wayland-protocols as part of mesa. Resolves: https://issues.redhat.com/browse/RHEL-23849
This commit is contained in:
parent
e2033f3641
commit
c715aba209
4
.gitignore
vendored
4
.gitignore
vendored
@ -6,3 +6,7 @@
|
||||
x86_64/
|
||||
results_mesa/
|
||||
mesa-*/
|
||||
/libclc-*.tar.xz
|
||||
/meson-*.tar.gz
|
||||
/spirv-llvm-translator-*.tar.gz
|
||||
/wayland-protocols-*.tar.xz
|
||||
|
@ -1,40 +0,0 @@
|
||||
From b673271710047acb1976002e4b84d06b7cefd3d7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
|
||||
Date: Wed, 17 Jan 2024 13:20:49 +0100
|
||||
Subject: [PATCH 1/2] Revert "egl: add automatic zink fallback loading between
|
||||
hw and sw drivers"
|
||||
|
||||
This reverts commit 8cd44b8843877a2f7d559d123eb3694841f16fdc.
|
||||
---
|
||||
src/egl/main/eglapi.c | 15 ++++-----------
|
||||
1 file changed, 4 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
|
||||
index d50be23e871..b1a48668b76 100644
|
||||
--- a/src/egl/main/eglapi.c
|
||||
+++ b/src/egl/main/eglapi.c
|
||||
@@ -695,17 +695,10 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
|
||||
if (disp->Options.ForceSoftware)
|
||||
RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
else {
|
||||
- bool success = false;
|
||||
- if (!disp->Options.Zink && !getenv("GALLIUM_DRIVER")) {
|
||||
- disp->Options.Zink = EGL_TRUE;
|
||||
- success = _eglDriver.Initialize(disp);
|
||||
- }
|
||||
- if (!success) {
|
||||
- disp->Options.Zink = EGL_FALSE;
|
||||
- disp->Options.ForceSoftware = EGL_TRUE;
|
||||
- if (!_eglDriver.Initialize(disp))
|
||||
- RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
- }
|
||||
+ disp->Options.Zink = EGL_FALSE;
|
||||
+ disp->Options.ForceSoftware = EGL_TRUE;
|
||||
+ if (!_eglDriver.Initialize(disp))
|
||||
+ RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,103 +0,0 @@
|
||||
From 9b9d225931b69532aa1b43abdaf29c826bc47b26 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
|
||||
Date: Wed, 17 Jan 2024 13:21:08 +0100
|
||||
Subject: [PATCH 2/2] Revert "glx: add automatic zink fallback loading between
|
||||
hw and sw drivers"
|
||||
|
||||
This reverts commit 7d9ea77b4598e23d4415b529924f1cbdca6e33bd.
|
||||
---
|
||||
src/glx/glxext.c | 33 ++++++++-------------------------
|
||||
1 file changed, 8 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/src/glx/glxext.c b/src/glx/glxext.c
|
||||
index 39d5f08bdcf..5036fd137c1 100644
|
||||
--- a/src/glx/glxext.c
|
||||
+++ b/src/glx/glxext.c
|
||||
@@ -763,11 +763,10 @@ glx_screen_cleanup(struct glx_screen *psc)
|
||||
** If that works then fetch the per screen configs data.
|
||||
*/
|
||||
static Bool
|
||||
-AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv, Bool zink)
|
||||
+AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
|
||||
{
|
||||
struct glx_screen *psc;
|
||||
GLint i, screens;
|
||||
- unsigned screen_count = 0;
|
||||
|
||||
/*
|
||||
** First allocate memory for the array of per screen configs.
|
||||
@@ -804,21 +803,17 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv, Bool zink)
|
||||
if (psc == NULL)
|
||||
psc = applegl_create_screen(i, priv);
|
||||
#else
|
||||
- if (psc == NULL && !zink)
|
||||
+ if (psc == NULL)
|
||||
{
|
||||
psc = indirect_create_screen(i, priv);
|
||||
indirect = true;
|
||||
}
|
||||
#endif
|
||||
priv->screens[i] = psc;
|
||||
- if (psc)
|
||||
- screen_count++;
|
||||
|
||||
if(indirect) /* Load extensions required only for indirect glx */
|
||||
glxSendClientInfo(priv, i);
|
||||
}
|
||||
- if (zink && !screen_count)
|
||||
- return GL_FALSE;
|
||||
SyncHandle();
|
||||
return GL_TRUE;
|
||||
}
|
||||
@@ -880,9 +875,9 @@ __glXInitialize(Display * dpy)
|
||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||
Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
|
||||
Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
|
||||
+ Bool zink;
|
||||
const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
|
||||
- Bool zink = env && !strcmp(env, "zink");
|
||||
- Bool try_zink = False;
|
||||
+ zink = env && !strcmp(env, "zink");
|
||||
|
||||
dpyPriv->drawHash = __glxHashCreate();
|
||||
|
||||
@@ -904,13 +899,10 @@ __glXInitialize(Display * dpy)
|
||||
#endif /* HAVE_DRI3 */
|
||||
if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
|
||||
dpyPriv->dri2Display = dri2CreateDisplay(dpy);
|
||||
- if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
|
||||
- try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
|
||||
- !getenv("GALLIUM_DRIVER");
|
||||
}
|
||||
#endif /* GLX_USE_DRM */
|
||||
if (glx_direct)
|
||||
- dpyPriv->driswDisplay = driswCreateDisplay(dpy, zink | try_zink);
|
||||
+ dpyPriv->driswDisplay = driswCreateDisplay(dpy, zink);
|
||||
|
||||
#ifdef GLX_USE_WINDOWSGL
|
||||
if (glx_direct && glx_accel)
|
||||
@@ -925,18 +917,9 @@ __glXInitialize(Display * dpy)
|
||||
}
|
||||
#endif
|
||||
|
||||
- if (!AllocAndFetchScreenConfigs(dpy, dpyPriv, zink | try_zink)) {
|
||||
- Bool fail = True;
|
||||
- if (try_zink) {
|
||||
- free(dpyPriv->screens);
|
||||
- dpyPriv->driswDisplay->destroyDisplay(dpyPriv->driswDisplay);
|
||||
- dpyPriv->driswDisplay = driswCreateDisplay(dpy, false);
|
||||
- fail = !AllocAndFetchScreenConfigs(dpy, dpyPriv, False);
|
||||
- }
|
||||
- if (fail) {
|
||||
- free(dpyPriv);
|
||||
- return NULL;
|
||||
- }
|
||||
+ if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
|
||||
+ free(dpyPriv);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
glxSendClientInfo(dpyPriv, -1);
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,42 +0,0 @@
|
||||
meson: C type error in strtod_l/strtof_l probe
|
||||
|
||||
Future compilers will fail compilation due to the C type error:
|
||||
|
||||
…/testfile.c: In function 'main':
|
||||
…/testfile.c:12:30: error: passing argument 2 of 'strtod_l' from incompatible pointer type
|
||||
12 | double d = strtod_l(s, end, loc);
|
||||
| ^~~
|
||||
| |
|
||||
| char *
|
||||
/usr/include/stdlib.h:416:43: note: expected 'char ** restrict' but argument is of type 'char *'
|
||||
416 | char **__restrict __endptr, locale_t __loc)
|
||||
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
…/testfile.c:13:29: error: passing argument 2 of 'strtof_l' from incompatible pointer type
|
||||
13 | float f = strtof_l(s, end, loc);
|
||||
| ^~~
|
||||
| |
|
||||
| char *
|
||||
/usr/include/stdlib.h:420:42: note: expected 'char ** restrict' but argument is of type 'char *'
|
||||
420 | char **__restrict __endptr, locale_t __loc)
|
||||
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
|
||||
|
||||
This means that the probe no longer tests is objective and always
|
||||
fails.
|
||||
|
||||
Submitted upstream: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26927>
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 35cc5f1cd5fd9079..1a5d2ba492be0b31 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1425,8 +1425,8 @@ if cc.links('''
|
||||
locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL);
|
||||
const char *s = "1.0";
|
||||
char *end;
|
||||
- double d = strtod_l(s, end, loc);
|
||||
- float f = strtof_l(s, end, loc);
|
||||
+ double d = strtod_l(s, &end, loc);
|
||||
+ float f = strtof_l(s, &end, loc);
|
||||
freelocale(loc);
|
||||
return 0;
|
||||
}''',
|
354
mesa.spec
354
mesa.spec
@ -2,21 +2,32 @@
|
||||
%global with_hardware 1
|
||||
%global with_vulkan_hw 1
|
||||
%global with_vdpau 1
|
||||
%global with_vaapi 1
|
||||
%global with_va 1
|
||||
%if !0%{?rhel}
|
||||
%global with_nine 1
|
||||
%global with_nvk %{with vulkan_hw}
|
||||
%global with_omx 1
|
||||
%global with_opencl 1
|
||||
%endif
|
||||
%global base_vulkan ,amd
|
||||
%endif
|
||||
|
||||
%ifnarch %{ix86}
|
||||
%if !0%{?rhel}
|
||||
%global with_teflon 1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
%global with_iris 1
|
||||
%global with_crocus 1
|
||||
%global with_vmware 1
|
||||
%global with_xa 1
|
||||
%global platform_vulkan ,intel,intel_hasvk
|
||||
%global with_intel_clc 1
|
||||
%global intel_platform_vulkan ,intel,intel_hasvk
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%global with_intel_vk_rt 1
|
||||
%endif
|
||||
|
||||
%ifarch %{arm} aarch64
|
||||
@ -31,7 +42,7 @@
|
||||
%global with_panfrost 1
|
||||
%global with_tegra 1
|
||||
%global with_xa 1
|
||||
%global platform_vulkan ,broadcom,freedreno
|
||||
%global extra_platform_vulkan ,broadcom,freedreno
|
||||
%endif
|
||||
|
||||
%ifnarch %{arm} s390x
|
||||
@ -42,39 +53,67 @@
|
||||
%global with_radeonsi 1
|
||||
%endif
|
||||
|
||||
%if !0%{?rhel}
|
||||
%global with_libunwind 1
|
||||
%global with_lmsensors 1
|
||||
%endif
|
||||
|
||||
%ifarch %{valgrind_arches}
|
||||
%bcond_without valgrind
|
||||
%else
|
||||
%bcond_with valgrind
|
||||
%endif
|
||||
|
||||
%global vulkan_drivers swrast%{?base_vulkan}%{?platform_vulkan}
|
||||
%global vulkan_drivers swrast%{?base_vulkan}%{?intel_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau}
|
||||
|
||||
Name: mesa
|
||||
Summary: Mesa graphics libraries
|
||||
%global ver 23.3.3
|
||||
%global ver 24.1.0
|
||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||
Release: 1%{?dist}
|
||||
License: MIT
|
||||
License: MIT AND BSD-3-Clause AND SGI-B-2.0
|
||||
URL: http://www.mesa3d.org
|
||||
|
||||
Source0: https://mesa.freedesktop.org/archive/%{name}-%{ver}.tar.xz
|
||||
Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz
|
||||
# src/gallium/auxiliary/postprocess/pp_mlaa* have an ... interestingly worded license.
|
||||
# Source1 contains email correspondence clarifying the license terms.
|
||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||
|
||||
Patch10: gnome-shell-glthread-disable.patch
|
||||
Patch12: radeonsi-turn-off-glthread.patch
|
||||
Patch13: zink-fix-resizable-bar-detection-logic.patch
|
||||
Patch14: mesa-meson-c99.patch
|
||||
# Temporary disabling Zink as a fallback between HW and SW drivers due to
|
||||
# multiple regression caused by this change during the 23.3.X development cycle.
|
||||
# Remove these 2 patches if updating to 24.X.X:
|
||||
Patch15: 0001-Revert-egl-add-automatic-zink-fallback-loading-betwe.patch
|
||||
Patch16: 0002-Revert-glx-add-automatic-zink-fallback-loading-betwe.patch
|
||||
# meson >= 1.3.0 is required
|
||||
%global meson_ver 1.3.0
|
||||
Source2: https://github.com/mesonbuild/meson/releases/download/%{meson_ver}/meson-%{meson_ver}.tar.gz
|
||||
|
||||
BuildRequires: meson >= 0.45
|
||||
# libclc is not available in RHEL 9 but it is required for Intel drivers since
|
||||
# mesa >= 24.1.0
|
||||
%global libclc_version 17.0.6
|
||||
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libclc_version}/libclc-%{libclc_version}.src.tar.xz
|
||||
BuildRequires: libedit-devel
|
||||
BuildRequires: clang-devel >= %{libclc_version}
|
||||
# Build our own version
|
||||
# BuildRequires: spirv-llvm-translator-tools
|
||||
|
||||
# spirv-llvm-translator is a dependency of libclc
|
||||
%global spirv_llvm_trans_ver 17.0.0
|
||||
%global spirv_llvm_trans_commit 854179a7451d04bd7fcde0ac200271482bfa8cd2
|
||||
%global spirv_llvm_trans_shortcommit %(c=%{spirv_llvm_trans_commit}; echo ${c:0:7})
|
||||
Source4: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/%{spirv_llvm_trans_commit}/spirv-llvm-translator-%{spirv_llvm_trans_shortcommit}.tar.gz
|
||||
BuildRequires: cmake
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: llvm-static
|
||||
BuildRequires: spirv-headers-devel
|
||||
BuildRequires: spirv-tools-devel
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
# wayland-protocols >= 1.34 is required
|
||||
%global wayland_protocols_ver 1.34
|
||||
Source5: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/%{wayland_protocols_ver}/downloads/wayland-protocols-%{wayland_protocols_ver}.tar.xz
|
||||
BuildRequires: wayland-devel
|
||||
|
||||
Patch10: gnome-shell-glthread-disable.patch
|
||||
|
||||
# Build our own version but keep the dependency for the RPM macros
|
||||
BuildRequires: meson
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gettext
|
||||
@ -84,12 +123,17 @@ BuildRequires: kernel-headers
|
||||
# We only check for the minimum version of pkgconfig(libdrm) needed so that the
|
||||
# SRPMs for each arch still have the same build dependencies. See:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1859515
|
||||
BuildRequires: pkgconfig(libdrm) >= 2.4.97
|
||||
BuildRequires: pkgconfig(libdrm) >= 2.4.119
|
||||
%if 0%{?with_libunwind}
|
||||
BuildRequires: pkgconfig(libunwind)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(expat)
|
||||
BuildRequires: pkgconfig(zlib) >= 1.2.3
|
||||
BuildRequires: pkgconfig(libzstd)
|
||||
BuildRequires: pkgconfig(libselinux)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.8
|
||||
# Build our own version
|
||||
# BuildRequires: pkgconfig(wayland-protocols) >= 1.34
|
||||
BuildRequires: pkgconfig(wayland-client) >= 1.11
|
||||
BuildRequires: pkgconfig(wayland-server) >= 1.11
|
||||
BuildRequires: pkgconfig(wayland-egl-backend) >= 3
|
||||
@ -113,10 +157,13 @@ BuildRequires: pkgconfig(xcb-randr)
|
||||
BuildRequires: pkgconfig(xrandr) >= 1.3
|
||||
BuildRequires: bison
|
||||
BuildRequires: flex
|
||||
%if 0%{?with_lmsensors}
|
||||
BuildRequires: lm_sensors-devel
|
||||
%endif
|
||||
%if 0%{?with_vdpau}
|
||||
BuildRequires: pkgconfig(vdpau) >= 1.1
|
||||
%endif
|
||||
%if 0%{?with_vaapi}
|
||||
%if 0%{?with_va}
|
||||
BuildRequires: pkgconfig(libva) >= 0.38.0
|
||||
%endif
|
||||
%if 0%{?with_omx}
|
||||
@ -124,16 +171,40 @@ BuildRequires: pkgconfig(libomxil-bellagio)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libelf)
|
||||
BuildRequires: pkgconfig(libglvnd) >= 1.3.2
|
||||
BuildRequires: llvm-devel >= 7.0.0
|
||||
%if 0%{?with_opencl}
|
||||
BuildRequires: llvm-devel >= %{libclc_version}
|
||||
%if 0%{?with_teflon}
|
||||
BuildRequires: flatbuffers-devel
|
||||
BuildRequires: flatbuffers-compiler
|
||||
BuildRequires: xtensor-devel
|
||||
%endif
|
||||
%if 0%{?with_opencl} || 0%{?with_nvk} || 0%{?with_intel_clc}
|
||||
BuildRequires: clang-devel
|
||||
BuildRequires: pkgconfig(libclc)
|
||||
# Build our own version
|
||||
# BuildRequires: pkgconfig(libclc)
|
||||
# BuildRequires: pkgconfig(LLVMSPIRVLib)
|
||||
BuildRequires: pkgconfig(SPIRV-Tools)
|
||||
%endif
|
||||
%if 0%{?with_opencl} || 0%{?with_nvk}
|
||||
BuildRequires: bindgen
|
||||
BuildRequires: rust-packaging
|
||||
%endif
|
||||
%if 0%{?with_nvk}
|
||||
BuildRequires: cbindgen
|
||||
BuildRequires: (crate(paste) >= 1.0.14 with crate(paste) < 2)
|
||||
BuildRequires: (crate(proc-macro2) >= 1.0.56 with crate(proc-macro2) < 2)
|
||||
BuildRequires: (crate(quote) >= 1.0.25 with crate(quote) < 2)
|
||||
BuildRequires: (crate(syn/clone-impls) >= 2.0.15 with crate(syn/clone-impls) < 3)
|
||||
BuildRequires: (crate(unicode-ident) >= 1.0.6 with crate(unicode-ident) < 2)
|
||||
%endif
|
||||
%if %{with valgrind}
|
||||
BuildRequires: pkgconfig(valgrind)
|
||||
%endif
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-mako
|
||||
%if 0%{?with_intel_clc}
|
||||
BuildRequires: python3-ply
|
||||
%endif
|
||||
BuildRequires: python3-pycparser
|
||||
BuildRequires: vulkan-headers
|
||||
BuildRequires: glslang
|
||||
%if 0%{?with_vulkan_hw}
|
||||
@ -146,7 +217,6 @@ BuildRequires: pkgconfig(vulkan)
|
||||
%package filesystem
|
||||
Summary: Mesa driver filesystem
|
||||
Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mesa-dri-filesystem < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description filesystem
|
||||
%{summary}.
|
||||
@ -155,6 +225,7 @@ Obsoletes: mesa-dri-filesystem < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Summary: Mesa libGL runtime libraries
|
||||
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: libglvnd-glx%{?_isa} >= 1:1.3.2
|
||||
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libGL
|
||||
%{summary}.
|
||||
@ -173,6 +244,9 @@ Recommends: gl-manpages
|
||||
%package libEGL
|
||||
Summary: Mesa libEGL runtime libraries
|
||||
Requires: libglvnd-egl%{?_isa} >= 1:1.3.2
|
||||
Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libEGL
|
||||
%{summary}.
|
||||
@ -191,6 +265,10 @@ Provides: libEGL-devel%{?_isa}
|
||||
%package dri-drivers
|
||||
Summary: Mesa-based DRI drivers
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
%if 0%{?with_va}
|
||||
Recommends: %{name}-va-drivers%{?_isa}
|
||||
%endif
|
||||
|
||||
%description dri-drivers
|
||||
%{summary}.
|
||||
@ -204,6 +282,16 @@ Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{rel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_va}
|
||||
%package va-drivers
|
||||
Summary: Mesa-based VA-API video acceleration drivers
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: %{name}-vaapi-drivers < 22.2.0-5
|
||||
|
||||
%description va-drivers
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_vdpau}
|
||||
%package vdpau-drivers
|
||||
Summary: Mesa-based VDPAU drivers
|
||||
@ -233,6 +321,11 @@ Requires: %{name}-libOSMesa%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{rele
|
||||
Summary: Mesa gbm runtime library
|
||||
Provides: libgbm
|
||||
Provides: libgbm%{?_isa}
|
||||
Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using
|
||||
# older mesa-dri-drivers together with a newer mesa-libgbm and its dependants.
|
||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 .
|
||||
Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa})
|
||||
|
||||
%description libgbm
|
||||
%{summary}.
|
||||
@ -269,6 +362,10 @@ Provides: libxatracker-devel%{?_isa}
|
||||
Summary: Mesa shared glapi
|
||||
Provides: libglapi
|
||||
Provides: libglapi%{?_isa}
|
||||
# If mesa-dri-drivers are installed, they must match in version. This is here to prevent using
|
||||
# older mesa-dri-drivers together with a newer mesa-libglapi or its dependants.
|
||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 .
|
||||
Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa})
|
||||
|
||||
%description libglapi
|
||||
%{summary}.
|
||||
@ -292,6 +389,14 @@ Requires: %{name}-libOpenCL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{rele
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_teflon}
|
||||
%package libTeflon
|
||||
Summary: Mesa TensorFlow Lite delegate
|
||||
|
||||
%description libTeflon
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
%package libd3d
|
||||
Summary: Mesa Direct3D9 state tracker
|
||||
@ -310,6 +415,7 @@ Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release
|
||||
%package vulkan-drivers
|
||||
Summary: Mesa Vulkan drivers
|
||||
Requires: vulkan%{_isa}
|
||||
Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description vulkan-drivers
|
||||
The drivers with support for the Vulkan API.
|
||||
@ -318,7 +424,87 @@ The drivers with support for the Vulkan API.
|
||||
%autosetup -n %{name}-%{ver} -p1
|
||||
cp %{SOURCE1} docs/
|
||||
|
||||
# Extract meson
|
||||
tar -xvf %{SOURCE2}
|
||||
|
||||
# Extract libclc
|
||||
tar -xvf %{SOURCE3}
|
||||
|
||||
# Extract spirv-llvm-translator
|
||||
tar -xvf %{SOURCE4}
|
||||
|
||||
# Extract wayland-protocols
|
||||
tar -xvf %{SOURCE5}
|
||||
|
||||
%build
|
||||
# Build meson
|
||||
cd meson-%{meson_ver}
|
||||
%py3_build
|
||||
%py3_install
|
||||
%global __meson %{buildroot}%{_bindir}/meson
|
||||
export PYTHONPATH=%{buildroot}%{python3_sitelib}:%{python3_sitelib}
|
||||
cd -
|
||||
|
||||
# Build spirv-llvm-translator
|
||||
cd SPIRV-LLVM-Translator-%{spirv_llvm_trans_commit}
|
||||
%cmake -GNinja \
|
||||
-DLLVM_BUILD_TOOLS=ON \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_INSTALL_RPATH:BOOL=";" \
|
||||
-DLLVM_DIR="/usr/lib64/cmake/llvm/" \
|
||||
%if 0%{?__isa_bits} == 64
|
||||
-DLLVM_LIBDIR_SUFFIX=64 \
|
||||
%else
|
||||
-DLLVM_LIBDIR_SUFFIX= \
|
||||
%endif
|
||||
-DLLVM_EXTERNAL_PROJECTS="SPIRV-Headers" \
|
||||
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR="/usr/include/spirv/"
|
||||
%cmake_build
|
||||
%cmake_install
|
||||
cd -
|
||||
|
||||
export LIBRARY_PATH=%{buildroot}%{_libdir}:$LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH
|
||||
export XDG_DATA_DIRS=%{buildroot}%{_datadir}:$XDG_DATA_DIRS
|
||||
export CPATH=%{buildroot}%{_includedir}:$CPATH
|
||||
export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig:%{buildroot}%{_datadir}/pkgconfig:$PKG_CONFIG_PATH
|
||||
export PATH=%{buildroot}%{_bindir}:$PATH
|
||||
|
||||
# Build libclc
|
||||
cd libclc-%{libclc_version}.src
|
||||
export CFLAGS="%{build_cflags} -D__extern_always_inline=inline"
|
||||
%cmake -GNinja \
|
||||
-DCMAKE_INSTALL_DATADIR:PATH=%{_lib} \
|
||||
-DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" \
|
||||
-DLLVM_SPIRV=%{buildroot}%{_bindir}/llvm-spirv
|
||||
%cmake_build
|
||||
%cmake_install
|
||||
cd -
|
||||
sed -e "s!libexecdir=!libexecdir=\/%{buildroot}!" -i %{buildroot}%{_libdir}/pkgconfig/libclc.pc
|
||||
|
||||
# Build wayland-protocols
|
||||
cd wayland-protocols-%{wayland_protocols_ver}
|
||||
%meson --prefix=%{buildroot}
|
||||
%meson_build
|
||||
%meson_install
|
||||
cd -
|
||||
|
||||
# ensure standard Rust compiler flags are set
|
||||
export RUSTFLAGS="%build_rustflags"
|
||||
|
||||
%if 0%{?with_nvk}
|
||||
export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
# So... Meson can't actually find them without tweaks
|
||||
%define inst_crate_nameversion() %(basename %{cargo_registry}/%{1}-*)
|
||||
%define rewrite_wrap_file() sed -e "/source.*/d" -e "s/%{1}-.*/%{inst_crate_nameversion %{1}}/" -i subprojects/%{1}.wrap
|
||||
|
||||
%rewrite_wrap_file proc-macro2
|
||||
%rewrite_wrap_file quote
|
||||
%rewrite_wrap_file syn
|
||||
%rewrite_wrap_file unicode-ident
|
||||
%rewrite_wrap_file paste
|
||||
%endif
|
||||
|
||||
# We've gotten a report that enabling LTO for mesa breaks some games. See
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details.
|
||||
# Disable LTO for now
|
||||
@ -334,12 +520,15 @@ cp %{SOURCE1} docs/
|
||||
-Dgallium-drivers=swrast,virgl \
|
||||
%endif
|
||||
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
|
||||
-Dgallium-xvmc=disabled \
|
||||
-Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
|
||||
-Dgallium-va=%{?with_vaapi:enabled}%{!?with_vaapi:disabled} \
|
||||
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
|
||||
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
|
||||
-Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
|
||||
-Dteflon=%{?with_teflon:true}%{!?with_teflon:false} \
|
||||
-Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \
|
||||
%if 0%{?with_opencl}
|
||||
-Dgallium-rusticl=true \
|
||||
%endif
|
||||
-Dvulkan-drivers=%{?vulkan_drivers} \
|
||||
-Dvulkan-layers=device-select \
|
||||
-Dshared-glapi=enabled \
|
||||
@ -349,15 +538,23 @@ cp %{SOURCE1} docs/
|
||||
-Dgbm=enabled \
|
||||
-Dglx=dri \
|
||||
-Degl=enabled \
|
||||
-Dglvnd=true \
|
||||
-Dglvnd=enabled \
|
||||
%if 0%{?with_intel_clc}
|
||||
-Dintel-clc=enabled \
|
||||
%endif
|
||||
-Dintel-rt=%{?with_intel_vk_rt:enabled}%{!?with_intel_vk_rt:disabled} \
|
||||
-Dmicrosoft-clc=disabled \
|
||||
-Dllvm=enabled \
|
||||
-Dshared-llvm=enabled \
|
||||
-Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \
|
||||
-Dbuild-tests=false \
|
||||
-Dselinux=true \
|
||||
%if !0%{?with_libunwind}
|
||||
-Dlibunwind=disabled \
|
||||
%endif
|
||||
%if !0%{?with_lmsensors}
|
||||
-Dlmsensors=disabled \
|
||||
%endif
|
||||
-Dandroid-libbacktrace=disabled \
|
||||
%ifarch %{ix86}
|
||||
-Dglx-read-only-text=true \
|
||||
@ -366,8 +563,37 @@ cp %{SOURCE1} docs/
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
cd meson-%{meson_ver}
|
||||
%py3_install
|
||||
%global __meson %{buildroot}%{_bindir}/meson
|
||||
export PYTHONPATH=%{buildroot}%{python3_sitelib}:%{python3_sitelib}
|
||||
cd -
|
||||
|
||||
%meson_install
|
||||
|
||||
# Delete files installed by meson
|
||||
rm -f %{buildroot}%{_bindir}/meson
|
||||
rm -rf %{buildroot}%{_mandir}/man1/meson.1*
|
||||
rm -f %{buildroot}%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
||||
rm -f %{buildroot}%{_datadir}/bash-completion/completions/meson
|
||||
rm -f %{buildroot}%{_datadir}/zsh/site-functions/_meson
|
||||
rm -rf %{buildroot}%{python3_sitelib}
|
||||
|
||||
# Delete files installed by libclc
|
||||
rm -fr %{buildroot}%{_libdir}/clc
|
||||
rm -f %{buildroot}%{_libdir}/pkgconfig/libclc.pc
|
||||
|
||||
# Delete files installed by spirv-llvm-translator
|
||||
rm -f %{buildroot}%{_bindir}/llvm-spirv
|
||||
rm -fr %{buildroot}%{_includedir}/LLVMSPIRVLib
|
||||
rm -f %{buildroot}%{_libdir}/libLLVMSPIRVLib.so
|
||||
rm -f %{buildroot}%{_libdir}/libLLVMSPIRVLib.so.*
|
||||
rm -f %{buildroot}%{_libdir}/pkgconfig/LLVMSPIRVLib.pc
|
||||
|
||||
# Delete files installed by wayland-protocols
|
||||
rm -f %{buildroot}%{_datadir}/pkgconfig/wayland-protocols.pc
|
||||
rm -fr %{buildroot}%{_datadir}/wayland-protocols/
|
||||
|
||||
# libvdpau opens the versioned name, don't bother including the unversioned
|
||||
rm -vf %{buildroot}%{_libdir}/vdpau/*.so
|
||||
# likewise glvnd
|
||||
@ -410,15 +636,13 @@ popd
|
||||
%{_libdir}/libEGL_mesa.so.0*
|
||||
%files libEGL-devel
|
||||
%dir %{_includedir}/EGL
|
||||
%{_includedir}/EGL/eglmesaext.h
|
||||
%{_includedir}/EGL/eglext_angle.h
|
||||
%{_includedir}/EGL/eglmesaext.h
|
||||
|
||||
%ldconfig_scriptlets libglapi
|
||||
%files libglapi
|
||||
%{_libdir}/libglapi.so.0
|
||||
%{_libdir}/libglapi.so.0.*
|
||||
|
||||
%ldconfig_scriptlets libOSMesa
|
||||
%files libOSMesa
|
||||
%{_libdir}/libOSMesa.so.8*
|
||||
%files libOSMesa-devel
|
||||
@ -427,7 +651,6 @@ popd
|
||||
%{_libdir}/libOSMesa.so
|
||||
%{_libdir}/pkgconfig/osmesa.pc
|
||||
|
||||
%ldconfig_scriptlets libgbm
|
||||
%files libgbm
|
||||
%{_libdir}/libgbm.so.1
|
||||
%{_libdir}/libgbm.so.1.*
|
||||
@ -437,7 +660,6 @@ popd
|
||||
%{_libdir}/pkgconfig/gbm.pc
|
||||
|
||||
%if 0%{?with_xa}
|
||||
%ldconfig_scriptlets libxatracker
|
||||
%files libxatracker
|
||||
%if 0%{?with_hardware}
|
||||
%{_libdir}/libxatracker.so.2
|
||||
@ -454,13 +676,21 @@ popd
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?with_teflon}
|
||||
%files libTeflon
|
||||
%{_libdir}/libteflon.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_opencl}
|
||||
%ldconfig_scriptlets libOpenCL
|
||||
%files libOpenCL
|
||||
%{_libdir}/libMesaOpenCL.so.*
|
||||
%{_libdir}/libRusticlOpenCL.so.*
|
||||
%{_sysconfdir}/OpenCL/vendors/mesa.icd
|
||||
%{_sysconfdir}/OpenCL/vendors/rusticl.icd
|
||||
|
||||
%files libOpenCL-devel
|
||||
%{_libdir}/libMesaOpenCL.so
|
||||
%{_libdir}/libRusticlOpenCL.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
@ -482,11 +712,6 @@ popd
|
||||
%{_libdir}/dri/virtio_gpu_dri.so
|
||||
|
||||
%if 0%{?with_hardware}
|
||||
%if !0%{?rhel}
|
||||
%{_libdir}/dri/radeon_dri.so
|
||||
%{_libdir}/dri/r200_dri.so
|
||||
%{_libdir}/dri/nouveau_vieux_dri.so
|
||||
%endif
|
||||
%if 0%{?with_r300}
|
||||
%{_libdir}/dri/r300_dri.so
|
||||
%endif
|
||||
@ -504,8 +729,12 @@ popd
|
||||
%{_libdir}/dri/ingenic-drm_dri.so
|
||||
%{_libdir}/dri/imx-drm_dri.so
|
||||
%{_libdir}/dri/imx-lcdif_dri.so
|
||||
%{_libdir}/dri/kirin_dri.so
|
||||
%{_libdir}/dri/komeda_dri.so
|
||||
%{_libdir}/dri/mali-dp_dri.so
|
||||
%{_libdir}/dri/mcde_dri.so
|
||||
%{_libdir}/dri/mxsfb-drm_dri.so
|
||||
%{_libdir}/dri/rcar-du_dri.so
|
||||
%{_libdir}/dri/stm_dri.so
|
||||
%endif
|
||||
%if 0%{?with_vc4}
|
||||
@ -529,19 +758,12 @@ popd
|
||||
%endif
|
||||
%if 0%{?with_panfrost}
|
||||
%{_libdir}/dri/panfrost_dri.so
|
||||
%{_libdir}/dri/panthor_dri.so
|
||||
%endif
|
||||
%{_libdir}/dri/nouveau_dri.so
|
||||
%if 0%{?with_vmware}
|
||||
%{_libdir}/dri/vmwgfx_dri.so
|
||||
%endif
|
||||
%{_libdir}/dri/nouveau_drv_video.so
|
||||
%if 0%{?with_r600}
|
||||
%{_libdir}/dri/r600_drv_video.so
|
||||
%endif
|
||||
%if 0%{?with_radeonsi}
|
||||
%{_libdir}/dri/radeonsi_drv_video.so
|
||||
%endif
|
||||
%{_libdir}/dri/virtio_gpu_drv_video.so
|
||||
%endif
|
||||
%if 0%{?with_opencl}
|
||||
%dir %{_libdir}/gallium-pipe
|
||||
@ -550,24 +772,29 @@ popd
|
||||
%if 0%{?with_kmsro}
|
||||
%{_libdir}/dri/armada-drm_dri.so
|
||||
%{_libdir}/dri/exynos_dri.so
|
||||
%{_libdir}/dri/gm12u320_dri.so
|
||||
%{_libdir}/dri/hdlcd_dri.so
|
||||
%{_libdir}/dri/hx8357d_dri.so
|
||||
%{_libdir}/dri/ili9163_dri.so
|
||||
%{_libdir}/dri/ili9225_dri.so
|
||||
%{_libdir}/dri/ili9341_dri.so
|
||||
%{_libdir}/dri/ili9486_dri.so
|
||||
%{_libdir}/dri/imx-dcss_dri.so
|
||||
%{_libdir}/dri/kirin_dri.so
|
||||
%{_libdir}/dri/komeda_dri.so
|
||||
%{_libdir}/dri/mali-dp_dri.so
|
||||
%{_libdir}/dri/mediatek_dri.so
|
||||
%{_libdir}/dri/meson_dri.so
|
||||
%{_libdir}/dri/mi0283qt_dri.so
|
||||
%{_libdir}/dri/panel-mipi-dbi_dri.so
|
||||
%{_libdir}/dri/pl111_dri.so
|
||||
%{_libdir}/dri/rcar-du_dri.so
|
||||
%{_libdir}/dri/repaper_dri.so
|
||||
%{_libdir}/dri/rockchip_dri.so
|
||||
%{_libdir}/dri/rzg2l-du_dri.so
|
||||
%{_libdir}/dri/ssd130x_dri.so
|
||||
%{_libdir}/dri/st7586_dri.so
|
||||
%{_libdir}/dri/st7735r_dri.so
|
||||
%{_libdir}/dri/sti_dri.so
|
||||
%{_libdir}/dri/sun4i-drm_dri.so
|
||||
%{_libdir}/dri/udl_dri.so
|
||||
%{_libdir}/dri/zynqmp-dpsub_dri.so
|
||||
%endif
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%{_libdir}/dri/zink_dri.so
|
||||
@ -577,19 +804,29 @@ popd
|
||||
%files omx-drivers
|
||||
%{_libdir}/bellagio/libomx_mesa.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_va}
|
||||
%files va-drivers
|
||||
%{_libdir}/dri/nouveau_drv_video.so
|
||||
%if 0%{?with_r600}
|
||||
%{_libdir}/dri/r600_drv_video.so
|
||||
%endif
|
||||
%if 0%{?with_radeonsi}
|
||||
%{_libdir}/dri/radeonsi_drv_video.so
|
||||
%endif
|
||||
%{_libdir}/dri/virtio_gpu_drv_video.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_vdpau}
|
||||
%files vdpau-drivers
|
||||
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
|
||||
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
|
||||
%if 0%{?with_r300}
|
||||
%{_libdir}/vdpau/libvdpau_r300.so.1*
|
||||
%endif
|
||||
%if 0%{?with_r600}
|
||||
%{_libdir}/vdpau/libvdpau_r600.so.1*
|
||||
%endif
|
||||
%if 0%{?with_radeonsi}
|
||||
%{_libdir}/vdpau/libvdpau_radeonsi.so.1*
|
||||
%endif
|
||||
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
|
||||
%endif
|
||||
|
||||
%files vulkan-drivers
|
||||
@ -598,9 +835,13 @@ popd
|
||||
%{_libdir}/libVkLayer_MESA_device_select.so
|
||||
%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%{_datadir}/drirc.d/00-radv-defaults.conf
|
||||
%{_libdir}/libvulkan_radeon.so
|
||||
%{_datadir}/drirc.d/00-radv-defaults.conf
|
||||
%{_datadir}/vulkan/icd.d/radeon_icd.*.json
|
||||
%if 0%{?with_nvk}
|
||||
%{_libdir}/libvulkan_nouveau.so
|
||||
%{_datadir}/vulkan/icd.d/nouveau_icd.*.json
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64
|
||||
%{_libdir}/libvulkan_intel.so
|
||||
%{_datadir}/vulkan/icd.d/intel_icd.*.json
|
||||
@ -616,6 +857,9 @@ popd
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu May 30 2024 José Expósito <jexposit@redhat.com> - 24.1.0-1
|
||||
- Update to mesa 24.1.0
|
||||
|
||||
* Wed Jan 17 2024 José Expósito <jexposit@redhat.com> - 23.3.3-1
|
||||
- Update to mesa 23.3.3
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
diff -up mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h.dma mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h
|
||||
--- mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h.dma 2023-01-25 06:17:54.993167334 +1000
|
||||
+++ mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h 2023-01-25 06:17:57.363203425 +1000
|
||||
@@ -1,7 +1,6 @@
|
||||
// DriConf options specific to radeonsi
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_ADAPTIVE_SYNC(true)
|
||||
-DRI_CONF_MESA_GLTHREAD_DRIVER(true)
|
||||
DRI_CONF_SECTION_END
|
||||
|
||||
DRI_CONF_SECTION_DEBUG
|
6
sources
6
sources
@ -1 +1,5 @@
|
||||
SHA512 (mesa-23.3.3.tar.xz) = bed23e8324b026edd5d2b16a381ec563cf2fa9be9c8fbe8d9fb907cab9d87eef91f493fb9d4e3973d4b679e271d2a85ce48af491585638ab97f087532fc63c30
|
||||
SHA512 (libclc-17.0.6.src.tar.xz) = 6165bfa0112fb42756cd0e83a0d3d4406985b1d6db6eed8abb3bee9a74fcc451cc88928b24231493694035c35d9bcd367aa6a4a67da631cb4ee5e7a98037fee3
|
||||
SHA512 (mesa-24.1.0.tar.xz) = 4b7ed1940fc812ef4efb55978d3ffe3d0e2ae53d5b57a3baca10a52db2ba5852c5ee7e75c3739bd8d384c80bf1cba970a384250050f01f03bba98f255e12cec5
|
||||
SHA512 (meson-1.3.0.tar.gz) = fbcbdd9551ad12b7be84411b96357e01c7c0c38a8e9933093d2e71ed7e12bd4278245798684d389c332eb75dd50c99310affc9acb01cf8bedd45265335083a32
|
||||
SHA512 (spirv-llvm-translator-854179a.tar.gz) = 7b8b1f974e10bfe8b9680b5b769fa60fa438b0070d0aee7795597c79999942e44a0629035b7f5bdd0b86e742fa200f8cb9596b60f0f61c9eea919ea8b21d3d6a
|
||||
SHA512 (wayland-protocols-1.34.tar.xz) = d180eaaf87281dc7adade19070ee8308a5cb3dc2f60cff077960436ad647d3d207eb63fa0b079b7b315109654ad6e6b5e2588bfe859900e67edf8c67b1c3ad20
|
||||
|
@ -1,39 +0,0 @@
|
||||
From a077c14f150f1c4f670dce381ac2eb548f1a4ac2 Mon Sep 17 00:00:00 2001
|
||||
From: Alessandro Astone <ales.astone@gmail.com>
|
||||
Date: Wed, 10 Jan 2024 17:24:30 +0100
|
||||
Subject: [PATCH] zink: Fix resizable BAR detection logic
|
||||
|
||||
This was broken in two ways:
|
||||
* When looking for the MAX biggest_ram it was actually comparing
|
||||
a candidate against biggest_vis_ram
|
||||
|
||||
* mem_props.memoryTypes[] should be accessed with the memory type
|
||||
index as found in heap_map
|
||||
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10341
|
||||
Cc: 23.3 <mesa-stable>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26979>
|
||||
---
|
||||
src/gallium/drivers/zink/zink_screen.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
|
||||
index 5a6d17cb4fa3..6697d7ab938c 100644
|
||||
--- a/src/gallium/drivers/zink/zink_screen.c
|
||||
+++ b/src/gallium/drivers/zink/zink_screen.c
|
||||
@@ -3258,10 +3258,10 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev
|
||||
{
|
||||
uint64_t biggest_vis_vram = 0;
|
||||
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL_VISIBLE]; i++)
|
||||
- biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
|
||||
+ biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL_VISIBLE][i]].heapIndex].size);
|
||||
uint64_t biggest_vram = 0;
|
||||
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL]; i++)
|
||||
- biggest_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
|
||||
+ biggest_vram = MAX2(biggest_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL][i]].heapIndex].size);
|
||||
/* determine if vis vram is roughly equal to total vram */
|
||||
if (biggest_vis_vram > biggest_vram * 0.9)
|
||||
screen->resizable_bar = true;
|
||||
--
|
||||
GitLab
|
||||
|
Loading…
Reference in New Issue
Block a user