You are not logged in.

#1 2010-11-03 18:48:21

davenorth
Member
Registered: 2010-10-25
Posts: 16

Problem with mesa?

I have a weird situation. On my desktop (intel board and X4500 graphics) the original Tuxkart works fine, but ExtremeTuxracer and Supertuxkart are jerky. Curiously, on my laptop (dell Mini 9 with intel 950 graphics) the opposite is true: STuxkart and Etracer work great, but the original Tuxkart is very jerky. If I understand correctly, Tuxkart does not require mesa while the other two do; that's why the question title.

Before we get into hardware issues, on either Ubuntu or Gentoo all three games work great on both systems. In all cases, the output of glinfo and xdpyinfo are the same, modulo version. In Ubuntu 10.4, the version is older. In Ubuntu 10.10, the version is newer. In Gentoo, versions are about the same. I have tried running exactly the same kernel (built on arch) to drive the ubuntu/gentoo setups and the games all work fine, so that takes the kernel out of the picture. All use the same kernel driver.

Anybody have any idea where I'm fouled up on this?

Thanks,

Dave North

Offline

#2 2010-11-24 17:42:09

davenorth
Member
Registered: 2010-10-25
Posts: 16

Re: Problem with mesa?

Answering my own post a little, but maybe someone else can add to this. On the desktop, something about mesa is certainly most of the issue. If I pull libGL.so.1.2 from Ubuntu and just plug in in directly, most things behave properly.

Not true on the atom/laptop, so there's a different issue to uncover.

I thought it would be best to build the mesa package from abs and then try messing with the configure options. However, when I try to build it with a pristine PKGBUILD I get a failure:

python util/u_format_table.py util/u_format.csv > util/u_format_table.c
  File "indices/u_indices_gen.py", line 63
    print '''/* File automatically generated by indices.py */'''
                                                               ^
SyntaxError: invalid syntax
python util/u_format_pack.py util/u_format.csv > util/u_format_pack.h
  File "util/u_format_access.py", line 99
    print 'static ubyte srgb_to_linear[256] = {'
                                               ^

Offline

#3 2010-11-24 18:41:25

kfgz
Member
From: Supraśl, Poland
Registered: 2009-03-02
Posts: 114

Re: Problem with mesa?

davenorth wrote:

However, when I try to build it with a pristine PKGBUILD I get a failure

Please post this PKGBUILD. Mesa must be patched against python2.

Offline

#4 2010-11-24 19:07:22

davenorth
Member
Registered: 2010-10-25
Posts: 16

Re: Problem with mesa?

Here's the one I used (straight from ABS):

http://theleewit.com/captain/temp/PKGBUILD

You're probably on the right track, since when I ran makepkg -s it pulled in python (3). Thanks!

Last edited by davenorth (2010-11-24 19:17:59)

Offline

#5 2010-11-24 19:18:54

kfgz
Member
From: Supraśl, Poland
Registered: 2009-03-02
Posts: 114

Re: Problem with mesa?

You can use Mesa 7.9 from testing. It's already patched.

Offline

#6 2010-11-24 19:29:23

davenorth
Member
Registered: 2010-10-25
Posts: 16

Re: Problem with mesa?

I might give that a shot, but I think it would mean replacing a lot of other packages also...? As it is, I found that if I change makedepends to from python to python2 and then make a symlink /usr/bin/python -> /usr/bin/python2.7 it builds.

That being the case, I think I'll try changing some params on the current version rather than jumping ahead -- might give me a better chance to isolate the issue (change as little as you can during incremental testing. My usual technique, anyway).

Thanks again!

Offline

#7 2010-11-24 20:34:18

kfgz
Member
From: Supraśl, Poland
Registered: 2009-03-02
Posts: 114

Re: Problem with mesa?

You can easily apply patch (sed) to 7.8.2

# $Id: PKGBUILD 88903 2010-08-26 07:39:28Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgbase=mesa
pkgname=('mesa' 'libgl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri')
pkgver=7.8.2
pkgrel=3
arch=(i686 x86_64)
makedepends=('glproto>=1.4.12' 'pkgconfig' 'libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1' 'libx11>=1.3.5' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'python2')
url="http://mesa3d.sourceforge.net"
license=('custom')
source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2
        ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaDemos-${pkgver}.tar.bz2
        ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2
        mesa-7.8-git.patch
        fix-glx1.3-crash-xorg19.patch
        nouveau_class.h
        LICENSE)
md5sums=('6be2d343a0089bfd395ce02aaf8adb57'
         '757d9e2e06f48b1a52848be9b0307ced'
         '6ae05158e678f4594343f32c2ca50515'
         '397c1249edcf03227697fef3f7129fe4'
         'c36ad611208c802eebe85144055b4c56'
         '850546127f5185959407a78b55f898d8'
         '5c65a0fe315dd347e09b1f2826a1df5a')

build() {
  # python2 build fixes
  sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
         -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" $(find $srcdir -name '*.py')
  sed -i -e "s|PYTHON2 = python|PYTHON2 = python2|" "${srcdir}/Mesa-${pkgver}"/configs/{default,autoconf.in}
  sed -i -e "s|python|python2|" "${srcdir}/Mesa-${pkgver}"/src/gallium/auxiliary/Makefile

  cd "${srcdir}/Mesa-${pkgver}"
  patch -Np1 -i "${srcdir}/mesa-7.8-git.patch"
  patch -Np1 -i "${srcdir}/fix-glx1.3-crash-xorg19.patch"
  cp "${srcdir}/nouveau_class.h" "src/gallium/drivers/nouveau/"
  ./configure --prefix=/usr \
    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
    --with-dri-drivers=swrast,radeon,r200,r300,r600,i810,i915,i965,unichrome,mach64,mga,r128,savage,sis,tdfx \
    --disable-egl \
    --disable-gallium-intel \
    --enable-glx-tls \
    --with-driver=dri \
    --enable-xcb \
    --with-state-trackers=dri,glx \
    --enable-gallium-nouveau \
    --disable-glut
  make

  cd "${srcdir}/gl-manpages-1.0.1"
  ./configure --prefix=/usr
  make
}

package_libgl() {
  depends=('libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1')
  pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"

  cd "${srcdir}/Mesa-${pkgver}"
  install -m755 -d "${pkgdir}/usr/lib"
  install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"

  bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/"

  cd src/mesa/drivers/dri
  make -C swrast DESTDIR="${pkgdir}" install
  ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"

  install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/"
}

package_mesa() {
  depends=('libgl' 'libx11>=1.3.5' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'libdrm>=2.4.20' 'glproto>=1.4.12')
  pkgdesc="Mesa 3-D graphics libraries and include files"

  cd "${srcdir}/Mesa-${pkgver}"
  make DESTDIR="${pkgdir}" install
  install -m755 -d "${pkgdir}/usr/bin"
  install -m755 progs/xdemos/glx{gears,info} "${pkgdir}/usr/bin/"

  rm -f "${pkgdir}/usr/lib/libGL.so"*
  rm -rf "${pkgdir}/usr/lib/xorg"
  rm -f "${pkgdir}/usr/include/GL/glew.h"
  rm -f "${pkgdir}/usr/include/GL/glxew.h"
  rm -f "${pkgdir}/usr/include/GL/wglew.h"

  cd "${srcdir}/gl-manpages-1.0.1"
  make DESTDIR="${pkgdir}" install

  install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
}

package_ati-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for AMD/ATI Radeon"
  conflicts=('xf86-video-ati<6.9.0-6')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C radeon DESTDIR="${pkgdir}" install
  make -C r200 DESTDIR="${pkgdir}" install
  make -C r300 DESTDIR="${pkgdir}" install
  make -C r600 DESTDIR="${pkgdir}" install
}

package_intel-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for Intel"

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C i810 DESTDIR="${pkgdir}" install
  make -C i915 DESTDIR="${pkgdir}" install
  make -C i965 DESTDIR="${pkgdir}" install
}

package_unichrome-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C unichrome DESTDIR="${pkgdir}" install
}

package_mach64-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for ATI Mach64"
  conflicts=('xf86-video-mach64<6.8.2')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C mach64 DESTDIR="${pkgdir}" install
}

package_mga-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for Matrox"
  conflicts=('xf86-video-mga<1.4.11')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C mga DESTDIR="${pkgdir}" install
}

package_r128-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for ATI Rage128"
  conflicts=('xf86-video-r128<6.8.1')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C r128 DESTDIR="${pkgdir}" install
}

package_savage-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
  conflicts=('xf86-video-savage<2.3.1')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C savage DESTDIR="${pkgdir}" install
}

package_sis-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for SiS"
  conflicts=('xf86-video-sis<0.10.2')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C sis DESTDIR="${pkgdir}" install
}

package_tdfx-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for 3dfx"
  conflicts=('xf86-video-tdfx<1.4.3')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
  make -C tdfx DESTDIR="${pkgdir}" install
}

package_nouveau-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa Gallium3D DRI drivers for Nouveau - highly experimental/unsupported"

  cd "${srcdir}/Mesa-${pkgver}/src/gallium/winsys/drm/nouveau/dri"
  make DESTDIR="${pkgdir}" install
}

Last edited by kfgz (2010-11-24 20:35:11)

Offline

#8 2010-11-27 20:07:34

davenorth
Member
Registered: 2010-10-25
Posts: 16

Re: Problem with mesa?

Patching it got me building, but I didn't find a fix before mesa 7.9 was released from testing. The good news is, 7.9 mostly got things working. The bad news, not entirely. Instead of constant jerking, now I have an occasional flash or jerk. This is an improvement but something is still a bit wonky.

I'll continue fussing with it, but now I'll be working with 7.9 instead.

Thanks again!

ps: in the event anyone has been curious, the problem with tuxkart is a bit more complicated -- I've been able to duplicate it on several systems now. But as far as I can tell, it's not a mesa issue. So the original description is of two pretty much unrelated problems. I'm only going to address the mesa issues here (and have little hope for a resolution on such old software as the original tuxkart. I know I'm on my own there!)

Last edited by davenorth (2010-11-27 20:09:35)

Offline

Board footer

Powered by FluxBB