NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
port-amiga/38099: Xamiga crash with 16-bit screen modes
>Number: 38099
>Category: port-amiga
>Synopsis: Xamiga crash with 16-bit screen modes
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: port-amiga-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Feb 24 19:35:00 +0000 2008
>Originator: Frank Wille
>Release: NetBSD/amiga 4.0 Release
>Organization:
>Environment:
A3000, CSPPC 060/50, 128+16 MB Fast RAM, Cybervision 64
>Description:
Segmentation fault on "startx", when using a 16-bit screen mode on the
Cybervision 64 (probably other graphics boards as well). A simple window
manager like twm is enough to get the crash.
The graphics display opens in the correct resolution and depth, but crashes
before the X-server can paint the initial window background.
The X-server "Xamiga" segfaults and a core dump provides the following
information. Stack frame backtrace:
#0 0x00091be2 in cfb16FillBoxTile32sCopy ()
#1 0x0008a8b0 in cfb16FillBoxTileOdd ()
#2 0x00088222 in cfb16PaintWindow ()
#3 0x0010ed34 in miWindowExposures ()
#4 0x00025fc0 in MapWindow ()
#5 0x00026106 in InitRootWindow ()
#6 0x0000686a in main ()
#7 0x00005de4 in __start ()
The registers:
d0 0x0 0
d1 0x2 2
d2 0x1 1
d3 0x178500 1541376
d4 0x5 5
d5 0xdffecb4 234876084
d6 0x60dec 396780
d7 0x2037c 131964
a0 0x0 0x0
a1 0x178500 0x178500
a2 0x178500 0x178500
a3 0xdffebe0 0xdffebe0
a4 0x0 0x0
a5 0x0 0x0
fp 0xdffeb08 0xdffeb08
sp 0xdffea9c 0xdffea9c
ps 0x4 0x4
pc 0x91be2 0x91be2
fpcontrol 0x0 0x0
fpstatus 0x8 0x8
fpiaddr 0x81b60ce 0x81b60ce
Disassembly of the crash location:
[...]
0x91bd4 <cfb16FillBoxTile32sCopy+56>: moveal %a1@(16),%a0
0x91bd8 <cfb16FillBoxTile32sCopy+60>: movel %a1,%sp@-
0x91bda <cfb16FillBoxTile32sCopy+62>: moveal %a0@(372),%a0
0x91bde <cfb16FillBoxTile32sCopy+66>: jsr %a0@
0x91be0 <cfb16FillBoxTile32sCopy+68>: addql #4,%sp
0x91be2 <cfb16FillBoxTile32sCopy+70>: movel %a0@(32),%fp@(-24) <-- HERE
[...]
Whatever function is called from cfb16FillBoxTile32sCopy() returns a NULL
pointer, which leads to the seg-fault when dereferencing it.
My tests with different Xamiga releases have shown that the Xamiga from the
NetBSD 1.6 release was the last one which worked with 16 bit screen modes. The
segmentation fault occurs with 2.0.2, 3.1.1 and 4.0!
>How-To-Repeat:
frank@phoenix grfconfig /dev/grf5
1: 800x600x8 57.0kHz @ 92Hz flags: +hsync +vsync
2: 800x600x16 57.8kHz @ 90Hz flags: +hsync +vsync
3: 1024x768x8 72.8kHz @ 92Hz flags: default
4: 1024x768x16 67.2kHz @ 83Hz flags: default
5: 1152x900x8 68.9kHz @ 74Hz flags: default
6: 1152x900x16 62.1kHz @ 66Hz flags: default
Console: 640x480 (80x60) 31.2kHz @ 59Hz flags: default
frank@phoenix cat .xserverrc
X -dev /dev/grf5 -mode 2
frank@phoenix startx
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error: Can't find file "amiga" for symbols include
> Exiting
> Abandoning symbols file "usa1"
Errors from xkbcomp are not fatal to the X server
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from
list!
X connection to :0.0 broken (explicit kill or server shutdown).
[1] Segmentation fault X -dev /dev/grf5...
>Fix:
None known.
Home |
Main Index |
Thread Index |
Old Index