[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#170690: xlibmesa3: DRI drivers may run 3dnow instructions on Pentium 4



Package: xlibmesa3
Version: 4.2.1-3
Severity: normal
Tags: upstream

My laptop has a Mobile Pentium 4 processor and Radeon 7500c gfx.  I found
that with xlibmesa3 installed and DRI enabled any program that uses OpenGL
would die with a SIGILL in the radeon_dri.so library.

Investigation revealed that the problem occurred in code containing 3dnow
instructions -- setting MESA_NO_3DNOW prevented the crashes.  This in turn
is due to the way the library obtains the capability information for cpus:
it uses CPUID to get the capability bitvectors and passes those around
unchanged.  This worked while the bits AMD uses to signal the availability
of 3DNOW were not used by intel as well.  In the pentium 4 family, this
assumption no longer holds.

The code that does the probe is found in
	xc/extras/Mesa/src/X86/common_x86_asm.S

The obvious quick fix would be to mask the problematic bits in the intel
branch of the code before returning the bitvector.  A more complete fix
would be to not use the CPU's capability vector directly, but instead use
it to construct a cability vector for the library.


-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux infovore 2.4.18 #3 Wed Nov 20 00:59:38 CET 2002 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages xlibmesa3 depends on:
ii  debconf                      1.2.16      Debian configuration management sy
ii  libc6                        2.3.1-5     GNU C Library: Shared libraries an
ii  libstdc++2.10-glibc2.2       1:2.95.4-15 The GNU stdc++ library
ii  xlibs                        4.2.1-3     X Window System client libraries

-- no debconf information





Reply to: