Accepting request 106690 from X11:XOrg

- Update to Mesa 8.0.1
  * Removed all DRI drivers that did not support DRI2. 
    Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and
    unichrome were removed.
  * Removed all remnants of paletted texture support. As required
    by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded
    to a color (e.g., RGBA) texture. However, the data cannot be
    stored internally as color-index.
  * Removed support for GL_APPLE_client_storage extension.
  * Removed the classic Mesa r300 and r600 drivers, which are
    superseded by the gallium drivers for this hardware.
  * Removed the dead Gallium i965, cell and failover drivers,
    which were either broken and with nobody in sight to fix
    the situation or deprecated.
- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
  (git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16)
- obsoletes U_Mesa-7.11-llvm3.patch
- obsoletes Mesa-llvm-3.0.patch
- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
  for now (obsolete as well?)
- use --enable-shared-dricore, saves ~33 MB

- readded build of non-gallium nouveau driver ("nouveau_vieux") to
  support again older NVIDIA GPUs

- fix requires of devel package in moving the %package before the
  other packages that have custom versions.
  %version in rpm is tricky - it's the _last_ version before the 
  macro, not the main one.

OBS-URL: https://build.opensuse.org/request/show/106690
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=140
This commit is contained in:
Stephan Kulow 2012-02-24 11:05:52 +00:00 committed by Git OBS Bridge
commit a967367cbf
9 changed files with 455 additions and 416 deletions

View File

@ -1,105 +0,0 @@
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
index 29dfb86..f44749d 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
@@ -27,17 +27,23 @@
#include <llvm-c/Core.h>
#include <llvm/Target/TargetMachine.h>
-#include <llvm/Target/TargetRegistry.h>
-#include <llvm/Target/TargetSelect.h>
#include <llvm/Target/TargetInstrInfo.h>
#include <llvm/Support/raw_ostream.h>
#include <llvm/Support/MemoryObject.h>
+#if HAVE_LLVM >= 0x0300
+#include <llvm/Support/TargetRegistry.h>
+#include <llvm/Support/TargetSelect.h>
+#else /* HAVE_LLVM < 0x0300 */
+#include <llvm/Target/TargetRegistry.h>
+#include <llvm/Target/TargetSelect.h>
+#endif /* HAVE_LLVM < 0x0300 */
+
#if HAVE_LLVM >= 0x0209
#include <llvm/Support/Host.h>
-#else
+#else /* HAVE_LLVM < 0x0209 */
#include <llvm/System/Host.h>
-#endif
+#endif /* HAVE_LLVM < 0x0209 */
#if HAVE_LLVM >= 0x0207
#include <llvm/MC/MCDisassembler.h>
@@ -193,14 +199,23 @@ lp_disassemble(const void* func)
InitializeAllDisassemblers();
+#if HAVE_LLVM >= 0x0300
+ OwningPtr<const MCAsmInfo> AsmInfo(T->createMCAsmInfo(Triple));
+#else
OwningPtr<const MCAsmInfo> AsmInfo(T->createAsmInfo(Triple));
+#endif
if (!AsmInfo) {
debug_printf("error: no assembly info for target %s\n", Triple.c_str());
return;
}
+#if HAVE_LLVM >= 0x0300
+ const MCSubtargetInfo *STI = T->createMCSubtargetInfo(Triple, sys::getHostCPUName(), "");
+ OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler(*STI));
+#else
OwningPtr<const MCDisassembler> DisAsm(T->createMCDisassembler());
+#endif
if (!DisAsm) {
debug_printf("error: no disassembler for target %s\n", Triple.c_str());
return;
@@ -213,7 +228,11 @@ lp_disassemble(const void* func)
#else
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
#endif
-#if HAVE_LLVM >= 0x0208
+
+#if HAVE_LLVM >= 0x0300
+ OwningPtr<MCInstPrinter> Printer(
+ T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo, *STI));
+#elif HAVE_LLVM >= 0x0208
OwningPtr<MCInstPrinter> Printer(
T->createMCInstPrinter(AsmPrinterVariant, *AsmInfo));
#else
@@ -253,7 +272,11 @@ lp_disassemble(const void* func)
if (!DisAsm->getInstruction(Inst, Size, memoryObject,
pc,
- nulls())) {
+#if HAVE_LLVM >= 0x0300
+ nulls(), nulls())) {
+#else
+ nulls())) {
+#endif
debug_printf("invalid\n");
pc += 1;
}
@@ -276,7 +299,9 @@ lp_disassemble(const void* func)
* Print the instruction.
*/
-#if HAVE_LLVM >= 0x208
+#if HAVE_LLVM >= 0x0300
+ Printer->printInst(&Inst, Out, "");
+#elif HAVE_LLVM >= 0x208
Printer->printInst(&Inst, Out);
#else
Printer->printInst(&Inst);
@@ -289,7 +314,11 @@
pc += Size;
+#if HAVE_LLVM >= 0x0300
+ const MCInstrDesc &TID = TII->get(Inst.getOpcode());
+#else
const TargetInstrDesc &TID = TII->get(Inst.getOpcode());
+#endif
/*
* Keep track of forward jumps to a nearby address.

2
Mesa-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# Want to allow for multiple vendors
addFilter("shlib-policy-name-error")

View File

@ -1,3 +1,51 @@
-------------------------------------------------------------------
Thu Feb 23 10:57:09 UTC 2012 - sndirsch@suse.com
- Update to Mesa 8.0.1
* Removed all DRI drivers that did not support DRI2.
Specifically, i810, mach64, mga, r128, savage, sis, tdfx, and
unichrome were removed.
* Removed all remnants of paletted texture support. As required
by desktop OpenGL, GL_COLOR_INDEX data can still be uploaded
to a color (e.g., RGBA) texture. However, the data cannot be
stored internally as color-index.
* Removed support for GL_APPLE_client_storage extension.
* Removed the classic Mesa r300 and r600 drivers, which are
superseded by the gallium drivers for this hardware.
* Removed the dead Gallium i965, cell and failover drivers,
which were either broken and with nobody in sight to fix
the situation or deprecated.
- obsoletes u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
(git commit #63a6fd6603574c1c01324fbeb0863e39d3864c16)
- obsoletes U_Mesa-7.11-llvm3.patch
- obsoletes Mesa-llvm-3.0.patch
- disabled u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
for now (obsolete as well?)
-------------------------------------------------------------------
Wed Feb 22 14:27:44 UTC 2012 - jengelh@medozas.de
- use --enable-shared-dricore, saves ~33 MB
-------------------------------------------------------------------
Wed Feb 22 14:14:56 UTC 2012 - sndirsch@suse.com
- readded build of non-gallium nouveau driver ("nouveau_vieux") to
support again older NVIDIA GPUs
-------------------------------------------------------------------
Tue Feb 21 19:53:03 UTC 2012 - coolo@suse.com
- fix requires of devel package in moving the %package before the
other packages that have custom versions.
%version in rpm is tricky - it's the _last_ version before the
macro, not the main one.
-------------------------------------------------------------------
Tue Feb 21 03:57:14 UTC 2012 - jengelh@medozas.de
- Split shared libraries per shlib pol.
-------------------------------------------------------------------
Sun Feb 12 19:24:03 UTC 2012 - jengelh@medozas.de

413
Mesa.spec
View File

@ -17,12 +17,11 @@
#
%define _version 7.11.1
Version: 7.11.1
Release: 0
%define _version 8.0.1
Name: Mesa
Version: 8.0.1
Release: 0
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: bison
@ -54,14 +53,20 @@ BuildRequires: pkgconfig(xxf86vm)
%ifarch %ix86 x86_64
BuildRequires: llvm-devel
%endif
BuildRequires: vim
Url: http://www.mesa3d.org
Provides: xorg-x11-Mesa = %{version} intel-i810-Mesa = %{version} Mesa7 = %{version}
Obsoletes: xorg-x11-Mesa < %{version} intel-i810-Mesa < %{version} Mesa7 < %{version}
Provides: Mesa7 = %{version}
Obsoletes: Mesa7 < %{version}
Provides: intel-i810-Mesa = %{version}
Obsoletes: intel-i810-Mesa < %{version}
Provides: xorg-x11-Mesa = %{version}
Obsoletes: xorg-x11-Mesa < %{version}
Obsoletes: Mesa-nouveau3d
# bug437293
%ifarch ppc64
Obsoletes: XFree86-Mesa-64bit < %{version} Mesa-64bit < %{version}
Provides: XFree86-Mesa-64bit = %{version} Mesa-64bit < %{version}
Provides: Mesa-64bit < %{version}
Provides: XFree86-Mesa-64bit = %{version}
%endif
#
Summary: System for rendering interactive 3-D graphics
@ -72,12 +77,10 @@ Source2: baselibs.conf
Source3: README.updates
Source4: manual-pages.tar.bz2
Source5: drirc
Source6: %name-rpmlintrc
# to be upstreamed
Patch9: u_GLX-SWrast-Make-GLX-with-SWrast-enabled-work-on-olde.patch
Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
# already upstream
Patch13: U_Mesa-7.11-llvm3.patch
Patch15: Mesa-llvm-3.0.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -95,23 +98,28 @@ just Mesa or The Mesa 3-D graphics library.
* OpenGL is a trademark of Silicon Graphics Incorporated.
Authors:
--------
Brian Paul
%package devel
Requires: Mesa = %version libdrm-devel libudev-devel
Summary: Libraries, includes and more to develop Mesa applications
Group: Development/Libraries/X11
Requires: Mesa = %version
Requires: Mesa-libEGL-devel = %version
Requires: Mesa-libGL-devel = %version
Requires: Mesa-libGLESv1_CM-devel = %version
Requires: Mesa-libGLESv2-devel = %version
Requires: Mesa-libGLU-devel = %version
Requires: Mesa-libIndirectGL1 = %version
Requires: libOSMesa8 = %version
Requires: Mesa-libglapi0 = %version
Requires: libgbm-devel
# bug437293
%ifarch ppc64
Obsoletes: XFree86-Mesa-devel-64bit < %{version} Mesa-devel-64bit < %{version}
Provides: XFree86-Mesa-devel-64bit = %{version} Mesa-devel-64bit = %{version}
Provides: Mesa-devel-64bit = %{version}
Provides: XFree86-Mesa-devel-64bit = %{version}
%endif
#
Provides: xorg-x11-Mesa-devel = %{version} Mesa-devel-static = %{version}
Provides: Mesa-devel-static = %{version}
Provides: xorg-x11-Mesa-devel = %{version}
Obsoletes: xorg-x11-Mesa-devel < %{version} Mesa-devel-static < %{version}
%description devel
@ -129,11 +137,218 @@ just Mesa or The Mesa 3-D graphics library.
* OpenGL is a trademark of Silicon Graphics Incorporated.
%package -n Mesa-libEGL1
# Kudos to Debian for the descriptions
Summary: Free implementation of the EGL API
Group: System/Libraries
%description -n Mesa-libEGL1
This package contains the EGL native platform graphics interface
library. EGL provides a platform-agnostic mechanism for creating
rendering surfaces for use with other graphics libraries, such as
OpenGL|ES and OpenVG.
Authors:
--------
Brian Paul
This package contains modules to interface with the existing system
GLX or DRI2 drivers to provide OpenGL via EGL. The Mesa main package
provides drivers to provide hardware-accelerated OpenGL|ES and OpenVG
support.
%package -n Mesa-libEGL-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libEGL1 = %version
# Other requires taken care of by pkgconfig already
%description -n Mesa-libEGL-devel
This package contains the development environment required for
compiling programs against EGL native platform graphics interface
library. EGL provides a platform-agnostic mechanism for creating
rendering surfaces for use with other graphics libraries, such as
OpenGL|ES and OpenVG.
This package provides the development environment for compiling
programs against the EGL library.
%package -n Mesa-libGL1
Summary: The GL/GLX runtime of the Mesa 3D graphics library
Group: System/Libraries
%description -n Mesa-libGL1
Mesa is a software library for 3D computer graphics that provides a
generic OpenGL implementation for rendering three-dimensional
graphics.
GLX ("OpenGL Extension to the X Window System") provides the
interface connecting OpenGL and the X Window System: it enables
programs wishing to use OpenGL to do so within a window provided by
the X Window System.
%package -n Mesa-libGL-devel
Summary: GL/GLX development files of the OpenGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libGL1 = %version
%description -n Mesa-libGL-devel
Mesa is a software library for 3D computer graphics that provides a
generic OpenGL implementation for rendering three-dimensional
graphics.
This package includes headers and static libraries for compiling
programs with Mesa.
%package -n Mesa-libGLESv1_CM1
Summary: Free implementation of the OpenGL|ES 1.x API
Group: System/Libraries
%description -n Mesa-libGLESv1_CM1
OpenGL|ES is a cross-platform API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems.
OpenGL|ES 1.x provides an API for fixed-function hardware.
%package -n Mesa-libGLESv1_CM-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv1_CM1 = %version
Requires: pkgconfig(egl)
%description -n Mesa-libGLESv1_CM-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems.
OpenGL|ES 1.x provides an API for fixed-function hardware.
This package provides a development environment for building programs
using the OpenGL|ES 1.x APIs.
%package -n Mesa-libGLESv2-2
Summary: Free implementation of the OpenGL|ES 2.x API
Group: System/Libraries
%description -n Mesa-libGLESv2-2
OpenGL|ES is a cross-platform API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems.
OpenGL|ES 2.x provides an API for programmable hardware including
vertex and fragment shaders.
%package -n Mesa-libGLESv2-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libGLESv2-2 = %version
Requires: pkgconfig(egl)
%description -n Mesa-libGLESv2-devel
OpenGL|ES is a cross-platform API for full-function 2D and 3D
graphics on embedded systems - including consoles, phones, appliances
and vehicles. It contains a subset of OpenGL plus a number of
extensions for the special needs of embedded systems.
OpenGL|ES 2.x provides an API for programmable hardware including
vertex and fragment shaders.
This package provides a development environment for building
applications using the OpenGL|ES 2.x APIs.
%package -n Mesa-libGLU1
Summary: Mesa OpenGL utility library
Group: System/Libraries
%description -n Mesa-libGLU1
GLU offers simple interfaces for building mipmaps; checking for the
presence of extensions in the OpenGL (or other libraries which follow
the same conventions for advertising extensions); drawing
piecewise-linear curves, NURBS, quadrics and other primitives
(including, but not limited to, teapots); tesselating surfaces;
setting up projection matrices and unprojecting screen coordinates to
world coordinates.
This package provides the SGI implementation of GLU shipped with the
Mesa package.
%package -n Mesa-libGLU-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Requires: Mesa-libGLU1 = %version
%description -n Mesa-libGLU-devel
GLU offers simple interfaces for building mipmaps; checking for the
presence of extensions in the OpenGL (or other libraries which follow
the same conventions for advertising extensions); drawing
piecewise-linear curves, NURBS, quadrics and other primitives
(including, but not limited to, teapots); tesselating surfaces;
setting up projection matrices and unprojecting screen coordinates to
world coordinates.
This package contains includes headers and static libraries for
compiling programs with GLU.
%package -n Mesa-libIndirectGL1
# This is the equivalent to Debian's libgl1-mesa-swx11
Summary: Free implementation of the OpenGL API
Group: System/Libraries
%description -n Mesa-libIndirectGL1
This library provides a pure software rasterizer; it does not provide
a direct rendering capable library, or one which uses GLX. For that,
please see Mesa-libGL1.
%package -n libOSMesa8
Summary: Mesa Off-screen rendering extension
Group: System/Libraries
%description -n libOSMesa8
OSmesa is a Mesa extension that allows programs to render to an
off-screen buffer using the OpenGL API without having to create a
rendering context on an X Server. It uses a pure software renderer.
%package -n libgbm1
Summary: Generic buffer management API
Group: System/Libraries
# as per gbm.pc
Version: 0.0.0
Release: 0
%description -n libgbm1
This package contains the GBM buffer management library. It provides
a mechanism for allocating buffers for graphics rendering tied to
Mesa.
GBM is intended to be used as a native platform for EGL on drm or
openwfd.
%package -n libgbm-devel
Summary: Development files for the EGL API
Group: Development/Libraries/C and C++
Version: 0.0.0
Release: 0
Requires: libgbm1 = %version
%description -n libgbm-devel
This package contains the GBM buffer management library. It provides
a mechanism for allocating buffers for graphics rendering tied to
Mesa.
GBM is intended to be used as a native platform for EGL on drm or
openwfd.
This package provides the development environment for compiling
programs against the GBM library.
%package -n Mesa-libglapi0
Summary: Free implementation of the GL API
Group: System/Libraries
%description -n Mesa-libglapi0
The Mesa GL API module is responsible for dispatching all the gl*
functions. It is intended to be mainly used by the Mesa-libGLES*
packages.
%prep
%setup -n %{name}-%{_version} -b4 -q
@ -143,10 +358,7 @@ rm -rf src/glut progs/{demos,redbook,samples,xdemos,glsl}
rm -f include/GL/{glut.h,uglglutshapes.h,glutf90.h}
# remove some docs
rm -rf docs/README.{VMS,WIN32,OS2}
%patch9 -p1
%patch11 -p1
%patch13 -p0
%patch15 -p1
#%patch11 -p1
%build
@ -155,16 +367,16 @@ rm -f src/mesa/depend
export TALLOC_LIBS=-ltalloc
export TALLOC_CFLAGS="-I/usr/include"
autoreconf -fi
### libGL (disable savage/mga, bnc #402132/#403071; reenable mga, bnc #466635)
%configure --disable-glw \
--enable-gles1 \
--enable-gles2 \
--with-driver=dri \
--with-egl-platforms=x11,drm \
--enable-shared-glapi \
--enable-shared-dricore \
--with-dri-searchpath=/usr/%{_lib}/dri/updates:/usr/%{_lib}/dri \
%ifarch %ix86 x86_64
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,radeon,sis,tdfx,unichrome,swrast,mga \
--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \
%if 0%{?suse_version} >= 1130
--with-gallium-drivers=r300,r600,nouveau \
%else
@ -172,7 +384,7 @@ autoreconf -fi
%endif
%endif
%ifarch ppc ppc64 %sparc hppa
--with-dri-drivers=i810,i915,i965,mach64,r128,r200,radeon,tdfx,unichrome,swrast \
--with-dri-drivers=i915,i965,nouveau,r200,radeon,swrast \
%if 0%{?suse_version} >= 1130
--with-gallium-drivers=r300,r600,nouveau \
%else
@ -215,42 +427,137 @@ mkdir -p $RPM_BUILD_ROOT/etc
install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc
%fdupes -s $RPM_BUILD_ROOT/%_mandir
%post -p /sbin/ldconfig
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post -n Mesa-libEGL1 -p /sbin/ldconfig
%postun -n Mesa-libEGL1 -p /sbin/ldconfig
%post -n Mesa-libGL1 -p /sbin/ldconfig
%postun -n Mesa-libGL1 -p /sbin/ldconfig
%post -n Mesa-libGLESv1_CM1 -p /sbin/ldconfig
%postun -n Mesa-libGLESv1_CM1 -p /sbin/ldconfig
%post -n Mesa-libGLESv2-2 -p /sbin/ldconfig
%postun -n Mesa-libGLESv2-2 -p /sbin/ldconfig
%post -n Mesa-libGLU1 -p /sbin/ldconfig
%postun -n Mesa-libGLU1 -p /sbin/ldconfig
%post -n Mesa-libIndirectGL1 -p /sbin/ldconfig
%postun -n Mesa-libIndirectGL1 -p /sbin/ldconfig
%post -n libOSMesa8 -p /sbin/ldconfig
%postun -n libOSMesa8 -p /sbin/ldconfig
%post -n libgbm1 -p /sbin/ldconfig
%postun -n libgbm1 -p /sbin/ldconfig
%post -n Mesa-libglapi0 -p /sbin/ldconfig
%postun -n Mesa-libglapi0 -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc docs/README* docs/COPYING
%config /etc/drirc
%{_libdir}/lib*.so.*
%{_libdir}/dri/
#%{_libdir}/egl/
%files -n Mesa-libEGL1
%defattr(-,root,root)
%_libdir/libEGL.so.1*
%files -n Mesa-libEGL-devel
%defattr(-,root,root)
%_includedir/EGL
%_includedir/KHR
%_libdir/libEGL.so
%_libdir/pkgconfig/egl.pc
%files -n Mesa-libGL1
%defattr(-,root,root)
%_libdir/libGL.so.1*
%files -n Mesa-libGL-devel
%defattr(-,root,root)
%dir %_includedir/GL
%_includedir/GL/*.h
%exclude %_includedir/GL/glu*.h
%_libdir/libGL.so
%_libdir/pkgconfig/gl.pc
%_mandir/man3/gl[A-Z]*
%files -n Mesa-libGLESv1_CM1
%defattr(-,root,root)
%_libdir/libGLESv1_CM.so.1*
%files -n Mesa-libGLESv1_CM-devel
%defattr(-,root,root)
%_includedir/GLES
%_libdir/libGLESv1_CM.so
%_libdir/pkgconfig/glesv1_cm.pc
%files -n Mesa-libGLESv2-2
%defattr(-,root,root)
%_libdir/libGLESv2.so.2*
%files -n Mesa-libGLESv2-devel
%defattr(-,root,root)
%_includedir/GLES2
%_libdir/libGLESv2.so
%_libdir/pkgconfig/glesv2.pc
%files -n Mesa-libGLU1
%defattr(-,root,root)
%_libdir/libGLU.so.1*
%files -n Mesa-libGLU-devel
%defattr(-,root,root)
%dir %_includedir/GL
%_includedir/GL/glu*.h
%_libdir/libGLU.so
%_libdir/pkgconfig/glu.pc
%_mandir/man3/glu*
%files -n Mesa-libIndirectGL1
%defattr(-,root,root)
%_libdir/libIndirectGL.so.1*
%files -n libOSMesa8
%defattr(-,root,root)
%_libdir/libOSMesa.so.8*
%files -n libgbm1
%defattr(-,root,root)
%_libdir/libgbm.so.1*
%files -n libgbm-devel
%defattr(-,root,root)
%_includedir/gbm.h
%_libdir/libgbm.so
%_libdir/pkgconfig/gbm.pc
%files -n Mesa-libglapi0
%defattr(-,root,root)
%_libdir/libglapi.so.0*
%files devel
%defattr(-,root,root)
%doc docs/*.html docs/*.spec
%{_includedir}/GL
%{_includedir}/GLES
%{_includedir}/GLES2
%{_includedir}/EGL
%{_includedir}/KHR
%{_includedir}/gbm.h
%{_libdir}/libGL.so
%{_libdir}/libGLU.so
%{_libdir}/libOSMesa.so
%{_libdir}/libEGL.so
%{_libdir}/libGLESv1_CM.so
%{_libdir}/libGLESv2.so
%{_libdir}/libglapi.so
%{_libdir}/libgbm.so
%{_libdir}/pkgconfig/dri.pc
%{_libdir}/pkgconfig/egl.pc
%{_libdir}/pkgconfig/gl.pc
%{_libdir}/pkgconfig/glu.pc
%{_libdir}/pkgconfig/glesv1_cm.pc
%{_libdir}/pkgconfig/glesv2.pc
%{_libdir}/pkgconfig/gbm.pc
%{_mandir}/man3/*
%_includedir/GL/internal
%_libdir/libOSMesa.so
%_libdir/libglapi.so
%_libdir/pkgconfig/dri.pc
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0dbc1c12434caa25f52e398053a97515aa67a81b9e7fe621572835fb61b08fc4
size 6662652

3
MesaLib-8.0.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:593af02ea2b5b7afb057a12c550f2c03b1d1cf59a716972d601c1499545ea0a7
size 5694019

View File

@ -1,218 +0,0 @@
Makes Mesa work with LLVM3 (also pre-releases).
Included in Mesa in post-11.7
Index: src/gallium/auxiliary/gallivm/lp_bld_type.c
===================================================================
--- src/gallium/auxiliary/gallivm/lp_bld_type.c.orig
+++ src/gallium/auxiliary/gallivm/lp_bld_type.c
@@ -325,8 +325,10 @@ lp_typekind_name(LLVMTypeKind t)
return "LLVMArrayTypeKind";
case LLVMPointerTypeKind:
return "LLVMPointerTypeKind";
+#if HAVE_LLVM < 0x0300
case LLVMOpaqueTypeKind:
return "LLVMOpaqueTypeKind";
+#endif
case LLVMVectorTypeKind:
return "LLVMVectorTypeKind";
case LLVMMetadataTypeKind:
Index: src/gallium/auxiliary/draw/draw_llvm.c
===================================================================
--- src/gallium/auxiliary/draw/draw_llvm.c.orig
+++ src/gallium/auxiliary/draw/draw_llvm.c
@@ -96,7 +96,7 @@ draw_llvm_generate_elts(struct draw_llvm
* Create LLVM type for struct draw_jit_texture
*/
static LLVMTypeRef
-create_jit_texture_type(struct gallivm_state *gallivm)
+create_jit_texture_type(struct gallivm_state *gallivm, const char *struct_name)
{
LLVMTargetDataRef target = gallivm->target;
LLVMTypeRef texture_type;
@@ -120,13 +120,21 @@ create_jit_texture_type(struct gallivm_s
elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] =
LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
+#if HAVE_LLVM >= 0x0300
+ texture_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+ LLVMStructSetBody(texture_type, elem_types,
+ Elements(elem_types), 0);
+#else
texture_type = LLVMStructTypeInContext(gallivm->context, elem_types,
Elements(elem_types), 0);
+ LLVMAddTypeName(gallivm->module, struct_name, texture_type);
+
/* Make sure the target's struct layout cache doesn't return
* stale/invalid data.
*/
LLVMInvalidateStructLayout(gallivm->target, texture_type);
+#endif
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, width,
target, texture_type,
@@ -176,7 +184,7 @@ create_jit_texture_type(struct gallivm_s
*/
static LLVMTypeRef
create_jit_context_type(struct gallivm_state *gallivm,
- LLVMTypeRef texture_type)
+ LLVMTypeRef texture_type, const char *struct_name)
{
LLVMTargetDataRef target = gallivm->target;
LLVMTypeRef float_type = LLVMFloatTypeInContext(gallivm->context);
@@ -189,11 +197,17 @@ create_jit_context_type(struct gallivm_s
elem_types[3] = LLVMPointerType(float_type, 0); /* viewport */
elem_types[4] = LLVMArrayType(texture_type,
PIPE_MAX_VERTEX_SAMPLERS); /* textures */
-
+#if HAVE_LLVM >= 0x0300
+ context_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+ LLVMStructSetBody(context_type, elem_types,
+ Elements(elem_types), 0);
+#else
context_type = LLVMStructTypeInContext(gallivm->context, elem_types,
Elements(elem_types), 0);
+ LLVMAddTypeName(gallivm->module, struct_name, context_type);
LLVMInvalidateStructLayout(gallivm->target, context_type);
+#endif
LP_CHECK_MEMBER_OFFSET(struct draw_jit_context, vs_constants,
target, context_type, 0);
@@ -215,7 +229,7 @@ create_jit_context_type(struct gallivm_s
* Create LLVM type for struct pipe_vertex_buffer
*/
static LLVMTypeRef
-create_jit_vertex_buffer_type(struct gallivm_state *gallivm)
+create_jit_vertex_buffer_type(struct gallivm_state *gallivm, const char *struct_name)
{
LLVMTargetDataRef target = gallivm->target;
LLVMTypeRef elem_types[3];
@@ -225,10 +239,17 @@ create_jit_vertex_buffer_type(struct gal
elem_types[1] = LLVMInt32TypeInContext(gallivm->context);
elem_types[2] = LLVMPointerType(LLVMInt8TypeInContext(gallivm->context), 0); /* vs_constants */
+#if HAVE_LLVM >= 0x0300
+ vb_type = LLVMStructCreateNamed(gallivm->context, struct_name);
+ LLVMStructSetBody(vb_type, elem_types,
+ Elements(elem_types), 0);
+#else
vb_type = LLVMStructTypeInContext(gallivm->context, elem_types,
Elements(elem_types), 0);
+ LLVMAddTypeName(gallivm->module, struct_name, vb_type);
LLVMInvalidateStructLayout(gallivm->target, vb_type);
+#endif
LP_CHECK_MEMBER_OFFSET(struct pipe_vertex_buffer, stride,
target, vb_type, 0);
@@ -258,10 +279,17 @@ create_jit_vertex_header(struct gallivm_
elem_types[1] = LLVMArrayType(LLVMFloatTypeInContext(gallivm->context), 4);
elem_types[2] = LLVMArrayType(elem_types[1], data_elems);
+#if HAVE_LLVM >= 0x0300
+ vertex_header = LLVMStructCreateNamed(gallivm->context, struct_name);
+ LLVMStructSetBody(vertex_header, elem_types,
+ Elements(elem_types), 0);
+#else
vertex_header = LLVMStructTypeInContext(gallivm->context, elem_types,
Elements(elem_types), 0);
+ LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
LLVMInvalidateStructLayout(gallivm->target, vertex_header);
+#endif
/* these are bit-fields and we can't take address of them
LP_CHECK_MEMBER_OFFSET(struct vertex_header, clipmask,
@@ -284,8 +312,6 @@ create_jit_vertex_header(struct gallivm_
target, vertex_header,
DRAW_JIT_VERTEX_DATA);
- LLVMAddTypeName(gallivm->module, struct_name, vertex_header);
-
return vertex_header;
}
@@ -299,19 +325,15 @@ create_jit_types(struct draw_llvm *llvm)
struct gallivm_state *gallivm = llvm->gallivm;
LLVMTypeRef texture_type, context_type, buffer_type, vb_type;
- texture_type = create_jit_texture_type(gallivm);
- LLVMAddTypeName(gallivm->module, "texture", texture_type);
+ texture_type = create_jit_texture_type(gallivm, "texture");
- context_type = create_jit_context_type(gallivm, texture_type);
- LLVMAddTypeName(gallivm->module, "draw_jit_context", context_type);
+ context_type = create_jit_context_type(gallivm, texture_type, "draw_jit_context");
llvm->context_ptr_type = LLVMPointerType(context_type, 0);
buffer_type = LLVMPointerType(LLVMIntTypeInContext(gallivm->context, 8), 0);
- LLVMAddTypeName(gallivm->module, "buffer", buffer_type);
llvm->buffer_ptr_type = LLVMPointerType(buffer_type, 0);
- vb_type = create_jit_vertex_buffer_type(gallivm);
- LLVMAddTypeName(gallivm->module, "pipe_vertex_buffer", vb_type);
+ vb_type = create_jit_vertex_buffer_type(gallivm, "pipe_vertex_buffer");
llvm->vb_ptr_type = LLVMPointerType(vb_type, 0);
}
Index: src/gallium/drivers/llvmpipe/lp_jit.c
===================================================================
--- src/gallium/drivers/llvmpipe/lp_jit.c.orig
+++ src/gallium/drivers/llvmpipe/lp_jit.c
@@ -68,10 +68,17 @@ lp_jit_create_types(struct llvmpipe_cont
elem_types[LP_JIT_TEXTURE_BORDER_COLOR] =
LLVMArrayType(LLVMFloatTypeInContext(lc), 4);
+#if HAVE_LLVM >= 0x0300
+ texture_type = LLVMStructCreateNamed(gallivm->context, "texture");
+ LLVMStructSetBody(texture_type, elem_types,
+ Elements(elem_types), 0);
+#else
texture_type = LLVMStructTypeInContext(lc, elem_types,
Elements(elem_types), 0);
+ LLVMAddTypeName(gallivm->module, "texture", texture_type);
LLVMInvalidateStructLayout(gallivm->target, texture_type);
+#endif
LP_CHECK_MEMBER_OFFSET(struct lp_jit_texture, width,
gallivm->target, texture_type,
@@ -112,8 +119,6 @@ lp_jit_create_types(struct llvmpipe_cont
LP_CHECK_STRUCT_SIZE(struct lp_jit_texture,
gallivm->target, texture_type);
-
- LLVMAddTypeName(gallivm->module, "texture", texture_type);
}
/* struct lp_jit_context */
@@ -129,11 +134,19 @@ lp_jit_create_types(struct llvmpipe_cont
elem_types[LP_JIT_CTX_TEXTURES] = LLVMArrayType(texture_type,
PIPE_MAX_SAMPLERS);
+#if HAVE_LLVM >= 0x0300
+ context_type = LLVMStructCreateNamed(gallivm->context, "context");
+ LLVMStructSetBody(context_type, elem_types,
+ Elements(elem_types), 0);
+#else
context_type = LLVMStructTypeInContext(lc, elem_types,
Elements(elem_types), 0);
LLVMInvalidateStructLayout(gallivm->target, context_type);
+ LLVMAddTypeName(gallivm->module, "context", context_type);
+#endif
+
LP_CHECK_MEMBER_OFFSET(struct lp_jit_context, constants,
gallivm->target, context_type,
LP_JIT_CTX_CONSTANTS);
@@ -155,8 +168,6 @@ lp_jit_create_types(struct llvmpipe_cont
LP_CHECK_STRUCT_SIZE(struct lp_jit_context,
gallivm->target, context_type);
- LLVMAddTypeName(gallivm->module, "context", context_type);
-
lp->jit_context_ptr_type = LLVMPointerType(context_type, 0);
}

View File

@ -1,7 +1,44 @@
Mesa
+/usr/X11R6/lib(64)?/modules/dri/updates/README.updates
obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
provides "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
+/usr/X11R6/lib(64)?/modules/dri/updates/README.updates
obsoletes "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
provides "XFree86-Mesa-<targettype> xorg-x11-Mesa-<targettype>"
Mesa-devel
obsoletes "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
provides "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
#We need Mesa-<targettype>!, do not put requires -Mesa-<targettype>.
requires "Mesa-libEGL-devel-<targettype> = <version>"
requires "Mesa-libGL-devel-<targettype> = <version>"
requires "Mesa-libGLESv1_CM-devel-<targettype> = <version>"
requires "Mesa-libGLESv2-devel-<targettype> = <version>"
requires "Mesa-libGLU-devel-<targettype> = <version>"
requires "Mesa-libIndirectGL1-<targettype> = <version>"
requires "libOSMesa7-<targettype> = <version>"
requires "libgbm-devel-<targettype>"
requires "Mesa-libglapi0-<targettype> = <version>"
obsoletes "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
provides "XFree86-Mesa-devel-<targettype> xorg-x11-Mesa-devel-<targettype>"
Mesa-libEGL1
Mesa-libEGL-devel
requires -Mesa-libEGL-<targettype>
requires "Mesa-libEGL1-<targettype> = <version>"
Mesa-libGL1
Mesa-libGL-devel
requires -Mesa-libGL-<targettype>
requires "Mesa-libGL1-<targettype> = <version>"
Mesa-libGLESv1_CM1
Mesa-libGLESv1_CM-devel
requires -Mesa-libGLESv1_CM-<targettype>
requires "Mesa-libGLESv1_CM1-<targettype> = <version>"
Mesa-libGLESv2-2
Mesa-libGLESv2-devel
requires -Mesa-libGLESv2-<targettype>
requires "Mesa-libGLESv2-2-<targettype> = <version>"
Mesa-libGLU1
Mesa-libGLU-devel
requires -Mesa-libGLU-<targettype>
requires "Mesa-libGLU1-<targettype> = <version>"
Mesa-libIndirectGL1
libOSMesa7
libgbm1
libgbm-devel
requires -libgbm-<targettype>
requires "libgbm1-<targettype> = <version>"
Mesa-libglapi0

View File

@ -1,32 +0,0 @@
From bb5ac44693cc6a50de068c729a089b7bdd6db4cd Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@freedesktop.org>
Date: Thu, 9 Jun 2011 12:42:59 +0200
Subject: [PATCH] [GLX/SWrast] Make GLX with SWrast enabled work on older Xservers.
Patch-mainline: To be upstreamed
Older Xservers don't offer a set of configs/visuals that is compatible
with DRI. If no visuals or configs are found let driswCreateScreen()
fail so that the next fallback path is take.
Signed-off-by: Egbert Eich <eich@freedesktop.org>
---
src/glx/drisw_glx.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 2eaa3c5..7bf29af 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -490,6 +490,9 @@ driswCreateScreen(int screen, struct glx_display *priv)
psc->base.visuals =
driConvertConfigs(psc->core, psc->base.visuals, driver_configs);
+ if (psc->base.configs == NULL || psc->base.visuals == NULL)
+ goto handle_error;
+
psc->driver_configs = driver_configs;
psc->base.vtable = &drisw_screen_vtable;
--
1.7.3.4