Gavin Hamill wrote:
Over the last days, Thomas and I have been trying to sort out why my nearly-identical machine couldn't run his VGA sync patches properly.
The key difference is my Radeon 7000VE is PCI, whilst his is AGP. I tried the PCI Radeon in two old Pentium-3 era machines, and on my modern Pentium D930 desktop, all with the same behaviour - fullscreen video over PCI causes huge CPU usage in the Xorg process, even when using xv 'acceleration'.
When I switch the PCI Radeon for a PCI Express X300 (the very lowest 'X' series you can get), everything is glorious: Xorg CPU use is barely 1%.
Unfortunately I don't have any machines with both AGP and PCI on which I can try the same OS image but we both think it's safe to conclude that PCI is just unsuitable for this task.
PCI in general should be perfectly fine, for SDTV at least. While displaying SDTV (vdrsxfe) I see ~20% cpu use for X on AGP, ~44% on PCI (same machine, different heads, AGP is MGA450, PCI is MGA200).
The huge difference is likely due to something else, like - display (X) driver (but even drivers which just memcpy the video data to the (xv) framebuffer should work on a modern machine) - PCI chipset (eg I had a VIA-based mobo, and it couldn't even keep up with SDTV on a PCI head, swapping the mobo for one w/ a real chipset made all problems suddenly disappear...)
You could probably do some setpci tweaks to improve PCI throughput, but I doubt the gain would be enough (I'd expect 10% improvement or so).
artur