DragonFly users List (threaded) for 2006-12
Xorg 6.9.0 breakage
I've figured out a quick fix to get the i810 Xorg server running on my machine.
Originally I tried to trace the problem in the i810 driver because I was
getting a fatal server lockup with hardware acceleration, plus the screen was
garbled(vertical lines from top to bottom). I could switch to different
consoles, but nothing was showing on my screen. I couldn't even kill the
server with ctrl+backspace. I turned on almost all the debug bits in
I810_DEBUG for the driver, except for an always sync bit, and compiled so I
could see some messages in the log files. I was able to trace the flow of
execution a little bit. It was waiting for the ring buffer to flush when
synching, whatever that means. I had to reboot to be able to do anything
further. I was able to ctrl+alt+del which properly rebooted the machine and
fsck didn't have to run. I disabled acceleration and there was no more lockup,
but the screen was still garbled(vertical lines from top to bottom). I was
able to switch to different consoles and see the login prompts. I could even
kill the server.
Anyway, I noticed a difference between my 6.8.2 and 6.9.0 Xorg.0.log files.
The first important difference was in what was reported as "OS-reported
resource ranges after removing overlaps with PCI:". The block end address of
the first resource in the list was different. I found out where these overlaps
were removed(RemoveOverlaps in xf86Bus.c) and noticed new code in 6.9.0 that
replaced old code in 6.8.2. The old 6.8.2 code is still in the 6.9.0 code, but
is conditionally compiled. Out of curiosity I made the 6.8.2 RemoveOverlaps
compile instead of the 6.9.0 code. I ran X with acceleration enabled and it
worked! The screen was not garbled either. The block end address of the first
resource after removing overlaps is the same as shown in 6.8.2. I haven't
studied the code to figure out why the 6.9.0 RemoveOverlaps code causes the
breakage on this machine. Another thing I noticed was that there was an
"INVALID MEM ALLOCATION" warning in the log before I enabled the 6.8.2
RemoveOverlaps code. This warning didn't appear after enabling the 6.8.2 code.
Who should I report this problem to? I can provide my logs and xorg.conf