I have seen this lockup too on my home machine. My machine reports the following on lspci -v:
01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
(prog-if 00 [VGA])
Subsystem: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 11
Memory at dfe80000 (32-bit, non-prefetchable) [size=512K]
Memory at d0000000 (32-bit, prefetchable) [size=128M]
Expansion ROM at dfe70000 [disabled] [size=64K] Capabilities: [dc] Power Management version 2 Capabilities: [80] AGP version 2.0
If you have gstreamer-tools installed, this bug can be reproduced (at least in my case) as follows (with BCIforXv enabled):
The following command works correctly:
gst-launch videotestsrc ! video/x-raw-yuv,format=\(fourcc\)YV12,width=320 ! xvimagesink
The following command causes diagonal colored corruption to be displayed in the xv window:
gst-launch videotestsrc ! video/x-raw-yuv,format=\(fourcc\)YV12,width=328 ! xvimagesink
The following command locks up the machine hard:
gst-launch videotestsrc ! video/x-raw-yuv,format=\(fourcc\)YV12,width=321 ! xvimagesink
The following command does not use BCI and runs correctly regardless of the value of width (note: it specifies YUY2 instead of YV12):
gst-launch videotestsrc ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=320 ! xvimagesink
The cause seems to be that the BCI code in the driver is unable to handle pixel widths that are not multiples of 16. With multiples of 8, the corruption manifests itself as diagonal ghost images (a real-world example video where the ghost images appear is the "What is Ubuntu" example video that comes with the Ubuntu 7.04 and 7.10 LiveCDs). With non-multiples of 8, the machine locks up.
Fortunately, I have a patch that fixes the problem, at least in my case (applied on top of current git). It restricts the use of BCI to just the cases where the pixel width is a multiple of 16 pixels. Other widths are handled by software, bypassing the BCI (as is the cas with BCIForXV=off).
I have the patches at home, so I need to get there first.
I have seen this lockup too on my home machine. My machine reports the following on lspci -v:
01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
Capabilities: [dc] Power Management version 2
Capabilities: [80] AGP version 2.0
(prog-if 00 [VGA])
Subsystem: S3 Inc. VT8375 [ProSavage8 KM266/KL266]
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 11
Memory at dfe80000 (32-bit, non-prefetchable) [size=512K]
Memory at d0000000 (32-bit, prefetchable) [size=128M]
Expansion ROM at dfe70000 [disabled] [size=64K]
If you have gstreamer-tools installed, this bug can be reproduced (at least in my case) as follows (with BCIforXv enabled):
The following command works correctly: raw-yuv, format= \(fourcc\ )YV12,width= 320 ! xvimagesink
gst-launch videotestsrc ! video/x-
The following command causes diagonal colored corruption to be displayed in the xv window: raw-yuv, format= \(fourcc\ )YV12,width= 328 ! xvimagesink
gst-launch videotestsrc ! video/x-
The following command locks up the machine hard: raw-yuv, format= \(fourcc\ )YV12,width= 321 ! xvimagesink
gst-launch videotestsrc ! video/x-
The following command does not use BCI and runs correctly regardless of the value of width (note: it specifies YUY2 instead of YV12): raw-yuv, format= \(fourcc\ )YUY2,width= 320 ! xvimagesink
gst-launch videotestsrc ! video/x-
The cause seems to be that the BCI code in the driver is unable to handle pixel widths that are not multiples of 16. With multiples of 8, the corruption manifests itself as diagonal ghost images (a real-world example video where the ghost images appear is the "What is Ubuntu" example video that comes with the Ubuntu 7.04 and 7.10 LiveCDs). With non-multiples of 8, the machine locks up.
Fortunately, I have a patch that fixes the problem, at least in my case (applied on top of current git). It restricts the use of BCI to just the cases where the pixel width is a multiple of 16 pixels. Other widths are handled by software, bypassing the BCI (as is the cas with BCIForXV=off).
I have the patches at home, so I need to get there first.