Accepting request 740902 from X11:XOrg
- let Mesa-libEGL-devel require libX11 devel via "pkgconfig(x11)" since EGL/eglplatform.h includes X11/Xlib.h - Update to version 19.2.1 * fixes all over the tree: intel, amd, nine, nir, egl, gallium, scons, meson, glsl, haiku, android, and nouveau all got fixes. - pickup gl, egl, glesv1_cm and glesv2 pkgconfig files from libglvnd build and add them to the appropriate devel subpackages - reintroduce GL, EGL, GLES* devel subpackages since corresponding header and pkgconfig files from libglvnd didn't work out ... - Rebase n_opencl_dep_libclang.patch after update. - Update to version 19.2.0 including changes to * release-infastructure * the build * drivers: turnip, radv, android, intel and amd common code * new features: check Phoronix https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released - supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch - adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch - supersedes n_glesv1_cm-glesv2.patch - no longer build * Mesa-libGL-devel * Mesa-libEGL-devel * Mesa-libGLESv1_CM-devel * Mesa-libGLESv2-devel * Mesa-libGLESv3-devel Instead of requiring these let Mesa-devel package require libglvnd-devel >= 1.2.0, which provides the contents of these packages now (header files for OpenGL, GLES, EGL, and GLX). Adjusted baselibs.conf accordingly. - modified check for llvm version in a way so it works also with older llvm packages (by making use of "llvm-config -version"), where there is %{_llvm_sonum} macro defined yet - moved manual pages to Mesa-devel package - n_opencl_dep_libclang.patch * Link OpenCL library with libclang-cpp.so instead of the component libraries for LLVM >= 9. OBS-URL: https://build.opensuse.org/request/show/740902 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=357
This commit is contained in:
commit
11471ab8f1
@ -1,3 +1,71 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 14 10:23:51 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- let Mesa-libEGL-devel require libX11 devel via "pkgconfig(x11)"
|
||||||
|
since EGL/eglplatform.h includes X11/Xlib.h
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 9 22:16:18 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- Update to version 19.2.1
|
||||||
|
* fixes all over the tree: intel, amd, nine, nir, egl, gallium,
|
||||||
|
scons, meson, glsl, haiku, android, and nouveau all got fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 7 21:50:32 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- pickup gl, egl, glesv1_cm and glesv2 pkgconfig files from
|
||||||
|
libglvnd build and add them to the appropriate devel subpackages
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 7 16:20:49 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- reintroduce GL, EGL, GLES* devel subpackages since corresponding
|
||||||
|
header and pkgconfig files from libglvnd didn't work out ...
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 30 11:42:12 UTC 2019 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
- Rebase n_opencl_dep_libclang.patch after update.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 30 09:02:03 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- Update to version 19.2.0 including changes to
|
||||||
|
* release-infastructure
|
||||||
|
* the build
|
||||||
|
* drivers: turnip, radv, android, intel and amd common code
|
||||||
|
* new features: check Phoronix
|
||||||
|
https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released
|
||||||
|
- supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch
|
||||||
|
- adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
|
- supersedes n_glesv1_cm-glesv2.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 28 13:42:30 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- no longer build
|
||||||
|
* Mesa-libGL-devel
|
||||||
|
* Mesa-libEGL-devel
|
||||||
|
* Mesa-libGLESv1_CM-devel
|
||||||
|
* Mesa-libGLESv2-devel
|
||||||
|
* Mesa-libGLESv3-devel
|
||||||
|
Instead of requiring these let Mesa-devel package require
|
||||||
|
libglvnd-devel >= 1.2.0, which provides the contents of these
|
||||||
|
packages now (header files for OpenGL, GLES, EGL, and GLX).
|
||||||
|
Adjusted baselibs.conf accordingly.
|
||||||
|
- modified check for llvm version in a way so it works also with
|
||||||
|
older llvm packages (by making use of "llvm-config -version"),
|
||||||
|
where there is %{_llvm_sonum} macro defined yet
|
||||||
|
- moved manual pages to Mesa-devel package
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 25 18:34:34 UTC 2019 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
- n_opencl_dep_libclang.patch
|
||||||
|
* Link OpenCL library with libclang-cpp.so instead of the
|
||||||
|
component libraries for LLVM >= 9.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Sep 18 06:59:29 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
Wed Sep 18 06:59:29 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
%define glamor 1
|
%define glamor 1
|
||||||
%define _name_archive mesa
|
%define _name_archive mesa
|
||||||
%define _version 19.1.7
|
%define _version 19.2.1
|
||||||
%define with_opencl 0
|
%define with_opencl 0
|
||||||
%define with_vulkan 0
|
%define with_vulkan 0
|
||||||
%define with_llvm 0
|
%define with_llvm 0
|
||||||
@ -110,7 +110,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: Mesa-drivers
|
Name: Mesa-drivers
|
||||||
Version: 19.1.7
|
Version: 19.2.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: System for rendering 3-D graphics
|
Summary: System for rendering 3-D graphics
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -124,11 +124,10 @@ Source3: README.updates
|
|||||||
Source4: manual-pages.tar.bz2
|
Source4: manual-pages.tar.bz2
|
||||||
Source6: %{name}-rpmlintrc
|
Source6: %{name}-rpmlintrc
|
||||||
Source7: Mesa.keyring
|
Source7: Mesa.keyring
|
||||||
Patch0: U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch
|
Patch1: n_opencl_dep_libclang.patch
|
||||||
# never to be upstreamed
|
# never to be upstreamed
|
||||||
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
Patch58: u_dep_xcb.patch
|
Patch58: u_dep_xcb.patch
|
||||||
Patch60: n_glesv1_cm-glesv2.patch
|
|
||||||
|
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -261,6 +260,7 @@ Requires: libOSMesa-devel = %{version}
|
|||||||
Requires: libgbm-devel
|
Requires: libgbm-devel
|
||||||
Provides: Mesa-devel-static = %{version}
|
Provides: Mesa-devel-static = %{version}
|
||||||
Provides: xorg-x11-Mesa-devel = %{version}
|
Provides: xorg-x11-Mesa-devel = %{version}
|
||||||
|
Requires: libglvnd-devel >= 1.2.0
|
||||||
Obsoletes: Mesa-devel-static < %{version}
|
Obsoletes: Mesa-devel-static < %{version}
|
||||||
Obsoletes: xorg-x11-Mesa-devel < %{version}
|
Obsoletes: xorg-x11-Mesa-devel < %{version}
|
||||||
Provides: Mesa-libIndirectGL-devel = %{version}
|
Provides: Mesa-libIndirectGL-devel = %{version}
|
||||||
@ -309,6 +309,7 @@ Summary: Development files for the EGL API
|
|||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: Mesa-KHR-devel = %{version}
|
Requires: Mesa-KHR-devel = %{version}
|
||||||
Requires: Mesa-libEGL1 = %{version}
|
Requires: Mesa-libEGL1 = %{version}
|
||||||
|
Requires: pkgconfig(x11)
|
||||||
%if 0%{?libglvnd}
|
%if 0%{?libglvnd}
|
||||||
Requires: libglvnd-devel >= 0.1.0
|
Requires: libglvnd-devel >= 0.1.0
|
||||||
%endif
|
%endif
|
||||||
@ -726,10 +727,13 @@ programs against the XA state tracker.
|
|||||||
# remove some docs
|
# remove some docs
|
||||||
rm -rf docs/README.{VMS,WIN32,OS2}
|
rm -rf docs/README.{VMS,WIN32,OS2}
|
||||||
|
|
||||||
%patch0 -p1
|
%if 0%{with_llvm}
|
||||||
|
if test $(llvm-config --version | cut -d "." -f1) -ge 9; then
|
||||||
|
%patch1 -p1
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
%patch54 -p1
|
%patch54 -p1
|
||||||
%patch58 -p1
|
%patch58 -p1
|
||||||
%patch60 -p1
|
|
||||||
|
|
||||||
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
||||||
# disabling libglvnd build; ugly ...
|
# disabling libglvnd build; ugly ...
|
||||||
@ -890,6 +894,11 @@ rm -f %{buildroot}%{_libdir}/libGLES*
|
|||||||
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
|
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# pickup pkgconfig files from libglvnd build
|
||||||
|
rm -f %{buildroot}/%{_libdir}/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc
|
||||||
|
install -m 0644 /usr/share/doc/packages/libglvnd/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc \
|
||||||
|
%{buildroot}/%{_libdir}/pkgconfig/
|
||||||
|
|
||||||
for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
|
for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
|
||||||
pushd $dir
|
pushd $dir
|
||||||
xmkmf -a
|
xmkmf -a
|
||||||
@ -1135,6 +1144,9 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
|
|||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%doc docs/*.html
|
%doc docs/*.html
|
||||||
|
%if 0%{?libglvnd} >= 120
|
||||||
|
/usr/share/man/man3/*
|
||||||
|
%endif
|
||||||
|
|
||||||
# !drivers
|
# !drivers
|
||||||
%endif
|
%endif
|
||||||
|
68
Mesa.changes
68
Mesa.changes
@ -1,3 +1,71 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 14 10:23:51 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- let Mesa-libEGL-devel require libX11 devel via "pkgconfig(x11)"
|
||||||
|
since EGL/eglplatform.h includes X11/Xlib.h
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 9 22:16:18 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- Update to version 19.2.1
|
||||||
|
* fixes all over the tree: intel, amd, nine, nir, egl, gallium,
|
||||||
|
scons, meson, glsl, haiku, android, and nouveau all got fixes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 7 21:50:32 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- pickup gl, egl, glesv1_cm and glesv2 pkgconfig files from
|
||||||
|
libglvnd build and add them to the appropriate devel subpackages
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 7 16:20:49 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- reintroduce GL, EGL, GLES* devel subpackages since corresponding
|
||||||
|
header and pkgconfig files from libglvnd didn't work out ...
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 30 11:42:12 UTC 2019 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
- Rebase n_opencl_dep_libclang.patch after update.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 30 09:02:03 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- Update to version 19.2.0 including changes to
|
||||||
|
* release-infastructure
|
||||||
|
* the build
|
||||||
|
* drivers: turnip, radv, android, intel and amd common code
|
||||||
|
* new features: check Phoronix
|
||||||
|
https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released
|
||||||
|
- supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch
|
||||||
|
- adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
|
- supersedes n_glesv1_cm-glesv2.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 28 13:42:30 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- no longer build
|
||||||
|
* Mesa-libGL-devel
|
||||||
|
* Mesa-libEGL-devel
|
||||||
|
* Mesa-libGLESv1_CM-devel
|
||||||
|
* Mesa-libGLESv2-devel
|
||||||
|
* Mesa-libGLESv3-devel
|
||||||
|
Instead of requiring these let Mesa-devel package require
|
||||||
|
libglvnd-devel >= 1.2.0, which provides the contents of these
|
||||||
|
packages now (header files for OpenGL, GLES, EGL, and GLX).
|
||||||
|
Adjusted baselibs.conf accordingly.
|
||||||
|
- modified check for llvm version in a way so it works also with
|
||||||
|
older llvm packages (by making use of "llvm-config -version"),
|
||||||
|
where there is %{_llvm_sonum} macro defined yet
|
||||||
|
- moved manual pages to Mesa-devel package
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 25 18:34:34 UTC 2019 - Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
|
||||||
|
- n_opencl_dep_libclang.patch
|
||||||
|
* Link OpenCL library with libclang-cpp.so instead of the
|
||||||
|
component libraries for LLVM >= 9.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Sep 18 06:59:29 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
Wed Sep 18 06:59:29 UTC 2019 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
24
Mesa.spec
24
Mesa.spec
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
%define glamor 1
|
%define glamor 1
|
||||||
%define _name_archive mesa
|
%define _name_archive mesa
|
||||||
%define _version 19.1.7
|
%define _version 19.2.1
|
||||||
%define with_opencl 0
|
%define with_opencl 0
|
||||||
%define with_vulkan 0
|
%define with_vulkan 0
|
||||||
%define with_llvm 0
|
%define with_llvm 0
|
||||||
@ -109,7 +109,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: Mesa
|
Name: Mesa
|
||||||
Version: 19.1.7
|
Version: 19.2.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: System for rendering 3-D graphics
|
Summary: System for rendering 3-D graphics
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -123,11 +123,10 @@ Source3: README.updates
|
|||||||
Source4: manual-pages.tar.bz2
|
Source4: manual-pages.tar.bz2
|
||||||
Source6: %{name}-rpmlintrc
|
Source6: %{name}-rpmlintrc
|
||||||
Source7: Mesa.keyring
|
Source7: Mesa.keyring
|
||||||
Patch0: U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch
|
Patch1: n_opencl_dep_libclang.patch
|
||||||
# never to be upstreamed
|
# never to be upstreamed
|
||||||
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
|
||||||
Patch58: u_dep_xcb.patch
|
Patch58: u_dep_xcb.patch
|
||||||
Patch60: n_glesv1_cm-glesv2.patch
|
|
||||||
|
|
||||||
BuildRequires: bison
|
BuildRequires: bison
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
@ -260,6 +259,7 @@ Requires: libOSMesa-devel = %{version}
|
|||||||
Requires: libgbm-devel
|
Requires: libgbm-devel
|
||||||
Provides: Mesa-devel-static = %{version}
|
Provides: Mesa-devel-static = %{version}
|
||||||
Provides: xorg-x11-Mesa-devel = %{version}
|
Provides: xorg-x11-Mesa-devel = %{version}
|
||||||
|
Requires: libglvnd-devel >= 1.2.0
|
||||||
Obsoletes: Mesa-devel-static < %{version}
|
Obsoletes: Mesa-devel-static < %{version}
|
||||||
Obsoletes: xorg-x11-Mesa-devel < %{version}
|
Obsoletes: xorg-x11-Mesa-devel < %{version}
|
||||||
Provides: Mesa-libIndirectGL-devel = %{version}
|
Provides: Mesa-libIndirectGL-devel = %{version}
|
||||||
@ -308,6 +308,7 @@ Summary: Development files for the EGL API
|
|||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: Mesa-KHR-devel = %{version}
|
Requires: Mesa-KHR-devel = %{version}
|
||||||
Requires: Mesa-libEGL1 = %{version}
|
Requires: Mesa-libEGL1 = %{version}
|
||||||
|
Requires: pkgconfig(x11)
|
||||||
%if 0%{?libglvnd}
|
%if 0%{?libglvnd}
|
||||||
Requires: libglvnd-devel >= 0.1.0
|
Requires: libglvnd-devel >= 0.1.0
|
||||||
%endif
|
%endif
|
||||||
@ -725,10 +726,13 @@ programs against the XA state tracker.
|
|||||||
# remove some docs
|
# remove some docs
|
||||||
rm -rf docs/README.{VMS,WIN32,OS2}
|
rm -rf docs/README.{VMS,WIN32,OS2}
|
||||||
|
|
||||||
%patch0 -p1
|
%if 0%{with_llvm}
|
||||||
|
if test $(llvm-config --version | cut -d "." -f1) -ge 9; then
|
||||||
|
%patch1 -p1
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
%patch54 -p1
|
%patch54 -p1
|
||||||
%patch58 -p1
|
%patch58 -p1
|
||||||
%patch60 -p1
|
|
||||||
|
|
||||||
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
|
||||||
# disabling libglvnd build; ugly ...
|
# disabling libglvnd build; ugly ...
|
||||||
@ -889,6 +893,11 @@ rm -f %{buildroot}%{_libdir}/libGLES*
|
|||||||
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
|
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_indirect.so.0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# pickup pkgconfig files from libglvnd build
|
||||||
|
rm -f %{buildroot}/%{_libdir}/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc
|
||||||
|
install -m 0644 /usr/share/doc/packages/libglvnd/pkgconfig/{gl,egl,glesv1_cm,glesv2}.pc \
|
||||||
|
%{buildroot}/%{_libdir}/pkgconfig/
|
||||||
|
|
||||||
for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
|
for dir in ../xc/doc/man/{GL/gl,GL/glx}; do
|
||||||
pushd $dir
|
pushd $dir
|
||||||
xmkmf -a
|
xmkmf -a
|
||||||
@ -1134,6 +1143,9 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
|
|||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%doc docs/*.html
|
%doc docs/*.html
|
||||||
|
%if 0%{?libglvnd} >= 120
|
||||||
|
/usr/share/man/man3/*
|
||||||
|
%endif
|
||||||
|
|
||||||
# !drivers
|
# !drivers
|
||||||
%endif
|
%endif
|
||||||
|
@ -1,186 +0,0 @@
|
|||||||
From 397d1a18ef78ddf46efda44d6783105f9fd87f7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
|
|
||||||
Date: Wed, 12 Jun 2019 15:32:30 -0700
|
|
||||||
Subject: [PATCH] llvmpipe: Don't use u_ringbuffer for lp_scene_queue
|
|
||||||
|
|
||||||
Inline the ring buffer and signal logic into lp_scene_queue instead of
|
|
||||||
using a u_ringbuffer. The code ends up simpler since there's no need
|
|
||||||
to handle serializing data from / to packets.
|
|
||||||
|
|
||||||
This fixes a crash when compiling Mesa with LTO, that happened because
|
|
||||||
of util_ringbuffer_dequeue() was writing data after the "header
|
|
||||||
packet", as shown below
|
|
||||||
|
|
||||||
struct scene_packet {
|
|
||||||
struct util_packet header;
|
|
||||||
struct lp_scene *scene;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Snippet of old lp_scene_deque(). */
|
|
||||||
packet.scene = NULL;
|
|
||||||
ret = util_ringbuffer_dequeue(queue->ring,
|
|
||||||
&packet.header,
|
|
||||||
sizeof packet / 4,
|
|
||||||
return packet.scene;
|
|
||||||
|
|
||||||
but due to the way aliasing analysis work the compiler didn't
|
|
||||||
considered the "&packet->header" to alias with "packet->scene". With
|
|
||||||
the aggressive inlining done by LTO, this would end up always
|
|
||||||
returning NULL instead of the content read by
|
|
||||||
util_ringbuffer_dequeue().
|
|
||||||
|
|
||||||
Issue found by Marco Simental and iThiago Macieira.
|
|
||||||
|
|
||||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110884
|
|
||||||
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
|
|
||||||
---
|
|
||||||
src/gallium/drivers/llvmpipe/lp_scene_queue.c | 84 +++++++++++++++------------
|
|
||||||
1 file changed, 48 insertions(+), 36 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/gallium/drivers/llvmpipe/lp_scene_queue.c b/src/gallium/drivers/llvmpipe/lp_scene_queue.c
|
|
||||||
index debc7a6fe18..5f267d04ca4 100644
|
|
||||||
--- a/src/gallium/drivers/llvmpipe/lp_scene_queue.c
|
|
||||||
+++ b/src/gallium/drivers/llvmpipe/lp_scene_queue.c
|
|
||||||
@@ -32,25 +32,33 @@
|
|
||||||
* which are produced by the "rast" code when it finishes rendering a scene.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#include "util/u_ringbuffer.h"
|
|
||||||
+#include "os/os_thread.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "lp_scene_queue.h"
|
|
||||||
+#include "util/u_math.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-#define MAX_SCENE_QUEUE 4
|
|
||||||
+#define SCENE_QUEUE_SIZE 4
|
|
||||||
+
|
|
||||||
|
|
||||||
-struct scene_packet {
|
|
||||||
- struct util_packet header;
|
|
||||||
- struct lp_scene *scene;
|
|
||||||
-};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A queue of scenes
|
|
||||||
*/
|
|
||||||
struct lp_scene_queue
|
|
||||||
{
|
|
||||||
- struct util_ringbuffer *ring;
|
|
||||||
+ struct lp_scene *scenes[SCENE_QUEUE_SIZE];
|
|
||||||
+
|
|
||||||
+ mtx_t mutex;
|
|
||||||
+ cnd_t change;
|
|
||||||
+
|
|
||||||
+ /* These values wrap around, so that head == tail means empty. When used
|
|
||||||
+ * to index the array, we use them modulo the queue size. This scheme
|
|
||||||
+ * works because the queue size is a power of two.
|
|
||||||
+ */
|
|
||||||
+ unsigned head;
|
|
||||||
+ unsigned tail;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
@@ -59,20 +67,19 @@ struct lp_scene_queue
|
|
||||||
struct lp_scene_queue *
|
|
||||||
lp_scene_queue_create(void)
|
|
||||||
{
|
|
||||||
+ /* Circular queue behavior depends on size being a power of two. */
|
|
||||||
+ STATIC_ASSERT(SCENE_QUEUE_SIZE > 0);
|
|
||||||
+ STATIC_ASSERT((SCENE_QUEUE_SIZE & (SCENE_QUEUE_SIZE - 1)) == 0);
|
|
||||||
+
|
|
||||||
struct lp_scene_queue *queue = CALLOC_STRUCT(lp_scene_queue);
|
|
||||||
+
|
|
||||||
if (!queue)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- queue->ring = util_ringbuffer_create( MAX_SCENE_QUEUE *
|
|
||||||
- sizeof( struct scene_packet ) / 4);
|
|
||||||
- if (queue->ring == NULL)
|
|
||||||
- goto fail;
|
|
||||||
+ (void) mtx_init(&queue->mutex, mtx_plain);
|
|
||||||
+ cnd_init(&queue->change);
|
|
||||||
|
|
||||||
return queue;
|
|
||||||
-
|
|
||||||
-fail:
|
|
||||||
- FREE(queue);
|
|
||||||
- return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -80,7 +87,8 @@ fail:
|
|
||||||
void
|
|
||||||
lp_scene_queue_destroy(struct lp_scene_queue *queue)
|
|
||||||
{
|
|
||||||
- util_ringbuffer_destroy(queue->ring);
|
|
||||||
+ cnd_destroy(&queue->change);
|
|
||||||
+ mtx_destroy(&queue->mutex);
|
|
||||||
FREE(queue);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -89,19 +97,25 @@ lp_scene_queue_destroy(struct lp_scene_queue *queue)
|
|
||||||
struct lp_scene *
|
|
||||||
lp_scene_dequeue(struct lp_scene_queue *queue, boolean wait)
|
|
||||||
{
|
|
||||||
- struct scene_packet packet;
|
|
||||||
- enum pipe_error ret;
|
|
||||||
+ mtx_lock(&queue->mutex);
|
|
||||||
|
|
||||||
- packet.scene = NULL;
|
|
||||||
+ if (wait) {
|
|
||||||
+ /* Wait for queue to be not empty. */
|
|
||||||
+ while (queue->head == queue->tail)
|
|
||||||
+ cnd_wait(&queue->change, &queue->mutex);
|
|
||||||
+ } else {
|
|
||||||
+ if (queue->head == queue->tail) {
|
|
||||||
+ mtx_unlock(&queue->mutex);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- ret = util_ringbuffer_dequeue(queue->ring,
|
|
||||||
- &packet.header,
|
|
||||||
- sizeof packet / 4,
|
|
||||||
- wait );
|
|
||||||
- if (ret != PIPE_OK)
|
|
||||||
- return NULL;
|
|
||||||
+ struct lp_scene *scene = queue->scenes[queue->head++ % SCENE_QUEUE_SIZE];
|
|
||||||
+
|
|
||||||
+ cnd_signal(&queue->change);
|
|
||||||
+ mtx_unlock(&queue->mutex);
|
|
||||||
|
|
||||||
- return packet.scene;
|
|
||||||
+ return scene;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -109,16 +123,14 @@ lp_scene_dequeue(struct lp_scene_queue *queue, boolean wait)
|
|
||||||
void
|
|
||||||
lp_scene_enqueue(struct lp_scene_queue *queue, struct lp_scene *scene)
|
|
||||||
{
|
|
||||||
- struct scene_packet packet;
|
|
||||||
-
|
|
||||||
- packet.header.dwords = sizeof packet / 4;
|
|
||||||
- packet.header.data24 = 0;
|
|
||||||
- packet.scene = scene;
|
|
||||||
-
|
|
||||||
- util_ringbuffer_enqueue(queue->ring, &packet.header);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
+ mtx_lock(&queue->mutex);
|
|
||||||
|
|
||||||
+ /* Wait for free space. */
|
|
||||||
+ while (queue->tail - queue->head >= SCENE_QUEUE_SIZE)
|
|
||||||
+ cnd_wait(&queue->change, &queue->mutex);
|
|
||||||
|
|
||||||
+ queue->scenes[queue->tail++ % SCENE_QUEUE_SIZE] = scene;
|
|
||||||
|
|
||||||
+ cnd_signal(&queue->change);
|
|
||||||
+ mtx_unlock(&queue->mutex);
|
|
||||||
+}
|
|
||||||
--
|
|
||||||
2.16.4
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e287920fdb38712a9fed448dc90b3ca95048c7face5db52e58361f8b6e0f3cd5
|
|
||||||
size 10941152
|
|
Binary file not shown.
3
mesa-19.2.1.tar.xz
Normal file
3
mesa-19.2.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4cc53ca1a8d12c6ff0e5ea44a5213c05c88447ab50d7e28bb350cd29199f01e9
|
||||||
|
size 11468492
|
BIN
mesa-19.2.1.tar.xz.sig
Normal file
BIN
mesa-19.2.1.tar.xz.sig
Normal file
Binary file not shown.
@ -1,10 +1,10 @@
|
|||||||
Index: mesa-19.1.2/src/util/00-mesa-defaults.conf
|
Index: mesa-19.2.0/src/util/00-mesa-defaults.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-19.1.2.orig/src/util/00-mesa-defaults.conf
|
--- mesa-19.2.0.orig/src/util/00-mesa-defaults.conf
|
||||||
+++ mesa-19.1.2/src/util/00-mesa-defaults.conf
|
+++ mesa-19.2.0/src/util/00-mesa-defaults.conf
|
||||||
@@ -451,6 +451,17 @@ TODO: document the other workarounds.
|
@@ -490,6 +490,17 @@ TODO: document the other workarounds.
|
||||||
<application name="Rayman Legends" executable="Rayman Legends.exe">
|
<option name="glx_disable_ext_buffer_age" value="true" />
|
||||||
<option name="dynamic_texture_workaround" value="true" />
|
<option name="glx_disable_oml_sync_control" value="true" />
|
||||||
</application>
|
</application>
|
||||||
+
|
+
|
||||||
+ <!-- This is workaround to prevent distorted colors on hardware accelerated video in Chromium. https://bugzilla.opensuse.org/show_bug.cgi?id=1113211 -->
|
+ <!-- This is workaround to prevent distorted colors on hardware accelerated video in Chromium. https://bugzilla.opensuse.org/show_bug.cgi?id=1113211 -->
|
||||||
@ -18,5 +18,5 @@ Index: mesa-19.1.2/src/util/00-mesa-defaults.conf
|
|||||||
+ </application>
|
+ </application>
|
||||||
+
|
+
|
||||||
</device>
|
</device>
|
||||||
<!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
|
<device driver="radeonsi">
|
||||||
<device driver="vmwgfx">
|
<application name="ARK: Survival Evolved (and unintentionally the UE4 demo template)" executable="ShooterGame">
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- mesa/src/mapi/meson.build.orig 2019-06-13 11:14:34.705848000 +0200
|
|
||||||
+++ mesa/src/mapi/meson.build 2019-06-13 11:21:00.995161000 +0200
|
|
||||||
@@ -35,7 +35,7 @@ if with_shared_glapi
|
|
||||||
else
|
|
||||||
libglapi = []
|
|
||||||
endif
|
|
||||||
-if not with_glvnd
|
|
||||||
+if with_glvnd
|
|
||||||
if with_gles1
|
|
||||||
subdir('es1api')
|
|
||||||
endif
|
|
41
n_opencl_dep_libclang.patch
Normal file
41
n_opencl_dep_libclang.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From d63e1627c0ead6165f382765ea3b9a4eba6aa8d7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aaron Puchert <aaronpuchert@alice-dsl.net>
|
||||||
|
Date: Wed, 25 Sep 2019 18:34:34 +0000
|
||||||
|
Subject: [PATCH] Link with clang-cpp instead of Clang component libraries
|
||||||
|
|
||||||
|
Since LLVM 9, the Clang C++ API is exposed via the new clang-cpp target,
|
||||||
|
and the component libraries need no longer be packaged [1].
|
||||||
|
|
||||||
|
[1] https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html#build-system-changes
|
||||||
|
---
|
||||||
|
src/gallium/targets/opencl/meson.build | 14 +-------------
|
||||||
|
1 file changed, 1 insertion(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/gallium/targets/opencl/meson.build b/src/gallium/targets/opencl/meson.build
|
||||||
|
index 907cc74337d..031d35b9716 100644
|
||||||
|
--- a/src/gallium/targets/opencl/meson.build
|
||||||
|
+++ b/src/gallium/targets/opencl/meson.build
|
||||||
|
@@ -43,19 +43,7 @@ libopencl = shared_library(
|
||||||
|
dependencies : [
|
||||||
|
idep_mesautil,
|
||||||
|
dep_clock, dep_dl, dep_unwind, dep_elf,
|
||||||
|
- cpp.find_library('clangCodeGen', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangFrontendTool', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangFrontend', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangDriver', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangSerialization', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangParse', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangSema', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangAnalysis', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangAST', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangASTMatchers', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangEdit', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangLex', dirs : llvm_libdir),
|
||||||
|
- cpp.find_library('clangBasic', dirs : llvm_libdir),
|
||||||
|
+ cpp.find_library('clang-cpp', dirs : llvm_libdir),
|
||||||
|
],
|
||||||
|
version : '@0@.0.0'.format(opencl_version),
|
||||||
|
install : true,
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
Index: mesa-19.1.0/meson.build
|
Index: mesa-19.2.1/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-19.1.0.orig/meson.build 2019-06-11 17:12:50.000000000 +0200
|
--- mesa-19.2.1.orig/meson.build
|
||||||
+++ mesa-19.1.0/meson.build 2019-06-11 22:28:12.967838857 +0200
|
+++ mesa-19.2.1/meson.build
|
||||||
@@ -1414,10 +1414,12 @@ if with_platform_x11
|
@@ -1422,10 +1422,12 @@ if with_platform_x11
|
||||||
dep_x11_xcb = dependency('x11-xcb')
|
endif
|
||||||
endif
|
endif
|
||||||
if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm')
|
if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm')
|
||||||
+ dep_x11_xcb = dependency('x11-xcb')
|
+ dep_x11_xcb = dependency('x11-xcb')
|
||||||
@ -15,10 +15,10 @@ Index: mesa-19.1.0/meson.build
|
|||||||
dep_xcb_dri3 = dependency('xcb-dri3')
|
dep_xcb_dri3 = dependency('xcb-dri3')
|
||||||
dep_xcb_present = dependency('xcb-present')
|
dep_xcb_present = dependency('xcb-present')
|
||||||
# until xcb-dri3 has been around long enough to make a hard-dependency:
|
# until xcb-dri3 has been around long enough to make a hard-dependency:
|
||||||
Index: mesa-19.1.0/src/loader/meson.build
|
Index: mesa-19.2.1/src/loader/meson.build
|
||||||
===================================================================
|
===================================================================
|
||||||
--- mesa-19.1.0.orig/src/loader/meson.build 2019-06-11 17:12:51.000000000 +0200
|
--- mesa-19.2.1.orig/src/loader/meson.build
|
||||||
+++ mesa-19.1.0/src/loader/meson.build 2019-06-11 22:28:12.967838857 +0200
|
+++ mesa-19.2.1/src/loader/meson.build
|
||||||
@@ -28,6 +28,7 @@ if with_platform_x11 and with_dri3
|
@@ -28,6 +28,7 @@ if with_platform_x11 and with_dri3
|
||||||
include_directories : [inc_include, inc_src],
|
include_directories : [inc_include, inc_src],
|
||||||
dependencies : [
|
dependencies : [
|
||||||
|
Loading…
Reference in New Issue
Block a user