From 0e113551f82bcd231bb11028f7b09cff3a44137cf5945ea5a1469c4c2be25a5d Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Mon, 15 Jul 2013 13:37:01 +0000 Subject: [PATCH] Accepting request 183076 from home:sumski:branches:X11:XOrg Update to 9.2 snapshot OBS-URL: https://build.opensuse.org/request/show/183076 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=293 --- Mesa.changes | 32 +++++ Mesa.spec | 137 +++++++++++++-------- MesaLib-9.1.4.tar.bz2 | 3 - U_gallium-egl-gbm-use-wayland-cflags.patch | 10 ++ mesa-9.1.98.01.tar.bz2 | 3 + u_mesa-8.0-llvmpipe-shmget.patch | 36 +++--- u_mesa-8.0.1-fix-16bpp.patch | 16 +-- 7 files changed, 159 insertions(+), 78 deletions(-) delete mode 100644 MesaLib-9.1.4.tar.bz2 create mode 100644 U_gallium-egl-gbm-use-wayland-cflags.patch create mode 100644 mesa-9.1.98.01.tar.bz2 diff --git a/Mesa.changes b/Mesa.changes index c3fa58c..4bf2a3f 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,35 @@ +------------------------------------------------------------------- +Fri Jul 5 12:07:10 UTC 2013 - hrvoje.senjan@gmail.com + +- Update to 9.2 snapshot: +* New features: + * Mesa 9.2 implements the OpenGL 3.1 API - OpenGL 3.1 is only + available if requested at context creation because + GL_ARB_compatibility is not supported + * GL_ARB_texture_buffer_range + * GL_ARB_texture_multisample + * GL_ARB_texture_storage_multisample + * GL_ARB_texture_query_lod + * Enable GL_ARB_texture_storage on radeon, r200, and nouveau + * Added new freedreno gallium driver + * OSMesa interface for gallium llvmpipe/softpipe drivers + * Gallium Heads-Up Display (HUD) feature for performance monitoring +* Changes: + * Removed d3d1x state tracker (unused, unmaintained and broken) + * Removed GL_EXT_clip_volume_hint because no driver had enabled + it since 2007. + * Removed GL_MESA_resize_buffers because it was only really + implemented by the (unsupported) GDI driver. + * GL_EXT_separate_shader_objects has been removed from all Gallium + drivers, because it disallows a critical GLSL shader optimization. + GL_ARB_separate_shader_objects doesn't have this issue. +- Unlock radeonsi libvdpau +- Enable gallium egl +- added U_gallium-egl-gbm-use-wayland-cflags.patch, needed so gbm + uses pkgconfig flags, instead of relying on "common" wayland dir +- Added llvm_r600 define, for enableing llvm shared-libs and + r600-llvm-compiler. Off for now, until we have fixed llvm + ------------------------------------------------------------------- Tue Jul 2 13:00:05 UTC 2013 - hrvoje.senjan@gmail.com diff --git a/Mesa.spec b/Mesa.spec index d7a5e8a..165a55a 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -17,11 +17,14 @@ %define glamor 1 -%define _version 9.1.4 -%define _name_archive MesaLib +%define egl_gallium 1 +%define llvm_r600 0 + +%define _version 9.1.98.01 +%define _name_archive mesa Name: Mesa -Version: 9.1.4 +Version: 9.1.98.01 Release: 0 BuildRequires: autoconf >= 2.60 BuildRequires: automake @@ -29,6 +32,9 @@ BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc-c++ +%if %llvm_r600 +BuildRequires: libelf-devel +%endif BuildRequires: libexpat-devel BuildRequires: libtalloc-devel BuildRequires: libtool @@ -38,10 +44,10 @@ BuildRequires: python-base BuildRequires: xorg-x11-util-devel BuildRequires: pkgconfig(libdrm) >= 2.4.24 %ifarch x86_64 %ix86 -BuildRequires: pkgconfig(libdrm_intel) >= 2.4.34 +BuildRequires: pkgconfig(libdrm_intel) >= 2.4.38 %endif -BuildRequires: pkgconfig(libdrm_nouveau) >= 2.4.33 -BuildRequires: pkgconfig(libdrm_radeon) >= 2.4.40 +BuildRequires: pkgconfig(libdrm_nouveau) >= 2.4.41 +BuildRequires: pkgconfig(libdrm_radeon) >= 2.4.45 BuildRequires: pkgconfig(libkms) >= 1.0.0 BuildRequires: pkgconfig(libudev) > 150 %if 0%{?suse_version} >= 1230 @@ -56,12 +62,12 @@ BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xxf86vm) +BuildRequires: pkgconfig(zlib) %ifarch %arm %ix86 x86_64 BuildRequires: llvm-devel %endif BuildRequires: libXvMC-devel BuildRequires: libvdpau-devel -BuildRequires: zlib-devel Url: http://www.mesa3d.org Provides: Mesa7 = %{version} @@ -82,7 +88,8 @@ Provides: XFree86-Mesa-64bit = %{version} Summary: System for rendering interactive 3-D graphics License: MIT Group: System/Libraries -Source: ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{_name_archive}-%{version}.tar.bz2 +#Source: ftp://ftp.freedesktop.org/pub/mesa/%{version}/%{_name_archive}-%{version}.tar.bz2 +Source: %{_name_archive}-%{version}.tar.bz2 Source2: baselibs.conf Source3: README.updates Source4: manual-pages.tar.bz2 @@ -92,10 +99,12 @@ Source6: %name-rpmlintrc Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch # Patch from Fedora, fix 16bpp in llvmpipe Patch13: u_mesa-8.0.1-fix-16bpp.patch -# Patch to fix glapi_dispatch include +# Patch to fix glapi_dispatch include Patch14: u_mesa-glapi_dispatch.patch # Patch from Fedora, use shmget when available, under llvmpipe Patch15: u_mesa-8.0-llvmpipe-shmget.patch +# PATCH-FIX-UPSTREAM gallium-egl-gbm-use-wayland-cflags.patch -- use pkgconfig for finding wayland +Patch16: U_gallium-egl-gbm-use-wayland-cflags.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -346,7 +355,7 @@ Group: Development/Libraries/C and C++ Requires: Mesa-libglapi0 = %version %description -n Mesa-libglapi-devel -Development files for the Mesa GL API module which is responsible for +Development files for the Mesa GL API module which is responsible for dispatching all the gl* functions. It is intended to be mainly used by the Mesa-libGLES* packages. @@ -417,7 +426,7 @@ Release: 0 %description -n libxatracker1 This package contains the XA state tracker for gallium3D driver. It superseeds the Xorg state tracker and provides an infrastructure -to accelerate Xorg 2D operations. It is currently used by vmwgfx +to accelerate Xorg 2D operations. It is currently used by vmwgfx video driver. %package -n libxatracker-devel @@ -430,7 +439,7 @@ Requires: libxatracker1 = %version %description -n libxatracker-devel This package contains the XA state tracker for gallium3D driver. It superseeds the Xorg state tracker and provides an infrastructure -to accelerate Xorg 2D operations. It is currently used by vmwgfx +to accelerate Xorg 2D operations. It is currently used by vmwgfx video driver. This package provides the development environment for compiling @@ -450,7 +459,7 @@ Summary: XVMC state tracker for R300 Group: System/Libraries %description -n libXvMC_r300 -This package contains the XvMC state tracker for R300. This is +This package contains the XvMC state tracker for R300. This is still "work in progress", i.e. expect poor video quality, choppy videos and artefacts all over. @@ -459,7 +468,7 @@ Summary: XVMC state tracker for R600 Group: System/Libraries %description -n libXvMC_r600 -This package contains the XvMC state tracker for R600. This is +This package contains the XvMC state tracker for R600. This is still "work in progress", i.e. expect poor video quality, choppy videos and artefacts all over. @@ -486,7 +495,7 @@ Summary: XVMC state tracker for R300 Group: System/Libraries %description -n libvdpau_r300 -This package contains the VDPAU state tracker for R300. This is +This package contains the VDPAU state tracker for R300. This is still "work in progress", i.e. expect poor video quality, choppy videos and artefacts all over. @@ -495,18 +504,20 @@ Summary: XVMC state tracker for R600 Group: System/Libraries %description -n libvdpau_r600 -This package contains the VDPAU state tracker for R600. This is +This package contains the VDPAU state tracker for R600. This is still "work in progress", i.e. expect poor video quality, choppy videos and artefacts all over. -#%package -n libvdpau_radeonsi -#Summary: XVMC state tracker for radeonsi -#Group: System/Libraries +%if %llvm_r600 +%package -n libvdpau_radeonsi +Summary: XVMC state tracker for radeonsi +Group: System/Libraries -#%description -n libvdpau_radeonsi -#This package contains the VDPAU state tracker for radeonsi. This is -#still "work in progress", i.e. expect poor video quality, choppy -#videos and artefacts all over. +%description -n libvdpau_radeonsi +This package contains the VDPAU state tracker for radeonsi. This is +still "work in progress", i.e. expect poor video quality, choppy +videos and artefacts all over. +%endif %package -n libvdpau_softpipe Summary: Software implementation of XVMC state tracker @@ -518,13 +529,16 @@ state tracker. This is still "work in progress", i.e. expect poor video quality, choppy videos and artefacts all over. %prep -%setup -n %{name}-%{_version} -b4 -q +%setup -n %{_name_archive}-%{_version} -b4 -q # remove some docs rm -rf docs/README.{VMS,WIN32,OS2} #%patch11 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 +%if %egl_gallium +%patch16 -p1 +%endif %build @@ -550,13 +564,22 @@ autoreconf -fi %if %glamor --enable-gbm \ --enable-glx-tls \ +%endif +%if %egl_gallium + --enable-gallium-egl \ %endif --with-dri-searchpath=/usr/%{_lib}/dri/updates:/usr/%{_lib}/dri \ %ifarch %ix86 x86_64 --enable-xa \ --enable-gallium-llvm \ --with-dri-drivers=i915,i965,nouveau,r200,radeon \ +%if %llvm_r600 + --with-llvm-shared-libs \ + --enable-r600-llvm-compiler \ + --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,svga \ +%else --with-gallium-drivers=r300,r600,nouveau,swrast,svga \ +%endif --enable-vdpau \ --enable-xvmc \ %endif @@ -584,29 +607,29 @@ find $RPM_BUILD_ROOT -name "*.la" -exec rm {} \; #### make distclean-generic %configure --enable-xlib-glx \ - --disable-dri \ - --enable-osmesa \ - --with-egl-platforms=x11 \ - --with-gallium-drivers="" \ - --with-gl-lib-name=IndirectGL \ - CFLAGS="$RPM_OPT_FLAGS -DNDEBUG" + --disable-dri \ + --enable-osmesa \ + --with-egl-platforms=x11 \ + --with-gallium-drivers="" \ + --with-gl-lib-name=IndirectGL \ + CFLAGS="$RPM_OPT_FLAGS -DNDEBUG" make %{?_smp_mflags} cp -a \ - src/mesa/drivers/x11/.libs/libIndirectGL.so* \ - src/mesa/drivers/osmesa/.libs/libOSMesa.so* \ - $RPM_BUILD_ROOT/usr/%{_lib} + src/mesa/drivers/x11/.libs/libIndirectGL.so* \ + src/mesa/drivers/osmesa/.libs/libOSMesa.so* \ + $RPM_BUILD_ROOT/usr/%{_lib} install -m 644 src/mesa/drivers/osmesa/osmesa.pc \ - $RPM_BUILD_ROOT/usr/%{_lib}/pkgconfig + $RPM_BUILD_ROOT/usr/%{_lib}/pkgconfig for dir in ../xc/doc/man/{GL/gl,GL/glx}; do -pushd $dir - xmkmf -a - make %{?_smp_mflags} - make install.man DESTDIR=$RPM_BUILD_ROOT MANPATH=%{_mandir} LIBMANSUFFIX=3gl -popd + pushd $dir + xmkmf -a + make %{?_smp_mflags} + make install.man DESTDIR=$RPM_BUILD_ROOT MANPATH=%{_mandir} LIBMANSUFFIX=3gl + popd done -# DRI driver update mechanism +#DRI driver update mechanism mkdir -p $RPM_BUILD_ROOT/usr/%{_lib}/dri/updates install -m 644 $RPM_SOURCE_DIR/README.updates \ $RPM_BUILD_ROOT/usr/%{_lib}/dri/updates @@ -673,8 +696,10 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %post -n libvdpau_r600 %postun -n libvdpau_r600 -#%post -n libvdpau_radeonsi -#%postun -n libvdpau_radeonsi +%if %llvm_r600 +%post -n libvdpau_radeonsi +%postun -n libvdpau_radeonsi +%endif %post -n libvdpau_softpipe %postun -n libvdpau_softpipe @@ -700,6 +725,12 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %doc docs/README* docs/COPYING %config /etc/drirc %{_libdir}/dri/ +%if %egl_gallium +%dir %_libdir/egl/ +%_libdir/egl/egl_gallium.so +%dir %_libdir/gallium-pipe/ +%_libdir/gallium-pipe/pipe_*.so +%endif %_libdir/libdricore9*.so.* %files -n Mesa-libEGL1 @@ -786,6 +817,10 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %files -n libgbm1 %defattr(-,root,root) %_libdir/libgbm.so.1* +%if %egl_gallium +%dir %_libdir/gbm/ +%_libdir/gbm/gbm_gallium_drm.so +%endif %files -n libgbm-devel %defattr(-,root,root) @@ -812,13 +847,13 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %_libdir/libXvMCnouveau.so.1.0.0 %ifarch %ix86 x86_64 -%files -n libXvMC_r300 +%files -n libXvMC_r300 %defattr(-,root,root) %_libdir/libXvMCr300.so %_libdir/libXvMCr300.so.1 %_libdir/libXvMCr300.so.1.0.0 -%files -n libXvMC_r600 +%files -n libXvMC_r600 %defattr(-,root,root) %_libdir/libXvMCr600.so %_libdir/libXvMCr600.so.1 @@ -849,11 +884,13 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %_libdir/vdpau/libvdpau_nouveau.so.1 %_libdir/vdpau/libvdpau_nouveau.so.1.0.0 -#%files -n libvdpau_radeonsi -#%defattr(-,root,root) -#%_libdir/vdpau/libvdpau_radeonsi.so -#%_libdir/vdpau/libvdpau_radeonsi.so.1 -#%_libdir/vdpau/libvdpau_radeonsi.so.1.0 +%if %llvm_r600 +%files -n libvdpau_radeonsi +%defattr(-,root,root) +%_libdir/vdpau/libvdpau_radeonsi.so +%_libdir/vdpau/libvdpau_radeonsi.so.1 +%_libdir/vdpau/libvdpau_radeonsi.so.1.0.0 +%endif %files -n libvdpau_softpipe %defattr(-,root,root) @@ -872,7 +909,7 @@ install -m 644 $RPM_SOURCE_DIR/drirc $RPM_BUILD_ROOT/etc %files devel %defattr(-,root,root) -%doc docs/*.html docs/*.spec +%doc docs/*.html %_includedir/GL/internal %_libdir/libdricore9*.so %_libdir/pkgconfig/dri.pc diff --git a/MesaLib-9.1.4.tar.bz2 b/MesaLib-9.1.4.tar.bz2 deleted file mode 100644 index e292817..0000000 --- a/MesaLib-9.1.4.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e858786e9e68e79aa245037d351a664f3a5c05ccdbdc2519307bc06f8ee68da -size 6124177 diff --git a/U_gallium-egl-gbm-use-wayland-cflags.patch b/U_gallium-egl-gbm-use-wayland-cflags.patch new file mode 100644 index 0000000..c27905c --- /dev/null +++ b/U_gallium-egl-gbm-use-wayland-cflags.patch @@ -0,0 +1,10 @@ +--- Mesa-9.1/src/gallium/state_trackers/gbm/Makefile.am.orig ++++ Mesa-9.1/src/gallium/state_trackers/gbm/Makefile.am +@@ -27,6 +27,7 @@ AM_CPPFLAGS = \ + -I$(top_srcdir)/src/gbm/main \ + -I$(top_srcdir)/include + if HAVE_EGL_PLATFORM_WAYLAND ++AM_CPPFLAGS += `pkg-config --cflags wayland-server` + AM_CPPFLAGS += -DHAVE_WAYLAND_PLATFORM + endif + diff --git a/mesa-9.1.98.01.tar.bz2 b/mesa-9.1.98.01.tar.bz2 new file mode 100644 index 0000000..7645208 --- /dev/null +++ b/mesa-9.1.98.01.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac721fb3baf407465f63a9bd38df780ffcb0a37044e239133b3c13d84df41eb1 +size 6154306 diff --git a/u_mesa-8.0-llvmpipe-shmget.patch b/u_mesa-8.0-llvmpipe-shmget.patch index 1565c7a..72910a2 100644 --- a/u_mesa-8.0-llvmpipe-shmget.patch +++ b/u_mesa-8.0-llvmpipe-shmget.patch @@ -1,5 +1,5 @@ diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c -index 5247126..3cdb6eb 100644 +index 41f66d5..28beb80 100644 --- a/src/gallium/state_trackers/dri/sw/drisw.c +++ b/src/gallium/state_trackers/dri/sw/drisw.c @@ -252,8 +252,6 @@ drisw_update_tex_buffer(struct dri_drawable *drawable, @@ -8,15 +8,16 @@ index 5247126..3cdb6eb 100644 int x, y, w, h; - int ximage_stride, line; - int cpp = util_format_get_blocksize(res->format); - + get_drawable_info(dPriv, &x, &y, &w, &h); - -@@ -265,14 +263,6 @@ drisw_update_tex_buffer(struct dri_drawable *drawable, + +@@ -265,15 +263,6 @@ drisw_update_tex_buffer(struct dri_drawable *drawable, /* Copy the Drawable content to the mapped texture buffer */ get_image(dPriv, x, y, w, h, map); - -- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. */ -- ximage_stride = w * cpp; + +- /* The pipe transfer has a pitch rounded up to the nearest 64 pixels. +- get_image() has a pitch rounded up to 4 bytes. */ +- ximage_stride = ((w * cpp) + 3) & -4; - for (line = h-1; line; --line) { - memmove(&map[line * transfer->stride], - &map[line * ximage_stride], @@ -25,13 +26,14 @@ index 5247126..3cdb6eb 100644 - pipe_transfer_unmap(pipe, transfer); } - -diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c ---- mesa-20120424/src/glx/drisw_glx.c.jx 2012-04-24 07:37:03.000000000 -0400 -+++ mesa-20120424/src/glx/drisw_glx.c 2012-05-16 13:29:25.087965268 -0400 + +diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c +index 832e964..feac747 100644 +--- a/src/glx/drisw_glx.c ++++ b/src/glx/drisw_glx.c @@ -24,6 +24,9 @@ #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) - + #include +#include +#include @@ -39,10 +41,10 @@ diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c #include "glxclient.h" #include #include "dri_common.h" -@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int +@@ -206,6 +209,96 @@ swrastPutImage(__DRIdrawable * draw, int op, ximage->data = NULL; } - + +static int shm_error; + +static int @@ -138,13 +140,13 @@ diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c int x, int y, int w, int h, @@ -220,11 +313,17 @@ swrastGetImage(__DRIdrawable * read, readable = pread->xDrawable; - + ximage = prp->ximage; - ximage->data = data; ximage->width = w; ximage->height = h; ximage->bytes_per_line = bytes_per_line(w * ximage->bits_per_pixel, 32); - + + /* XXX check dimensions, if any caller ever sub-images */ + if (swrastShmGetImage(read, data, prp)) + return; @@ -153,5 +155,5 @@ diff -up mesa-20120424/src/glx/drisw_glx.c.jx mesa-20120424/src/glx/drisw_glx.c + ximage->data = data; + XGetSubImage(dpy, readable, x, y, w, h, ~0L, ZPixmap, ximage, 0, 0); - + ximage->data = NULL; diff --git a/u_mesa-8.0.1-fix-16bpp.patch b/u_mesa-8.0.1-fix-16bpp.patch index 4ca5313..e033d6c 100644 --- a/u_mesa-8.0.1-fix-16bpp.patch +++ b/u_mesa-8.0.1-fix-16bpp.patch @@ -1,13 +1,13 @@ -diff -up Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx Mesa-8.0.1/src/mesa/state_tracker/st_manager.c ---- Mesa-8.0.1/src/mesa/state_tracker/st_manager.c.jx 2012-02-14 18:44:00.000000000 -0500 -+++ Mesa-8.0.1/src/mesa/state_tracker/st_manager.c 2012-04-02 12:02:14.613964417 -0400 -@@ -528,6 +528,9 @@ st_context_teximage(struct st_context_if - if (util_format_get_component_bits(internal_format, - UTIL_FORMAT_COLORSPACE_RGB, 3) > 0) +diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c +index 9c2b4d2..660ab16 100644 +--- a/src/mesa/state_tracker/st_manager.c ++++ b/src/mesa/state_tracker/st_manager.c +@@ -512,6 +512,9 @@ st_context_teximage(struct st_context_iface *stctxi, + + if (util_format_has_alpha(tex->format)) internalFormat = GL_RGBA; -+ else if (util_format_get_component_bits(internal_format, ++ else if (util_format_get_component_bits(pipe_format, + UTIL_FORMAT_COLORSPACE_RGB, 0) == 5) + internalFormat = GL_RGB5; else internalFormat = GL_RGB; -