According to a site I googled, XWindow in Ubuntu Jaunty 9.04 has some issue in accessing videocard's memory region. My video card is NVidia GeForce 8500 GT with native driver from Nvidia. Kernel is 22.214.171.124 (compiled from source).
I fix this by doing the following:
1) do lspci -v, find "VGA compatible controller" section.
Mine shows as:
04:00.0 VGA compatible controller: nVidia Corporation GeForce 8500 GT (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device 034f
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at fa000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at ec00 [size=128]
[virtual] Expansion ROM at febe0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: nvidia
Kernel modules: nvidia, nvidiafb
2) Calculate the accessable memory region (in KB, not MB) by substracting non-prefetchable part from prefetchable (pick the lower region one). For example, as above we should compute 256M - 16M, or use Google. For example, 256 MB = 2^18 KB and 16 MB = 2^14 KB, so (2^18) - (2^14) = 245760 KB
2) as root, edit /etc/X11/xorg.conf. Find `Section "Device"`
3) Add `VideoRam #`, where # = the result from point 2
For example, mine should now show like below:
VendorName "NVIDIA Corporation"
4) Restart XWindow
5) Test with mplayer. Now the screen changes smoothly with no flicks.
According to some sources, this issue will be fixed in next Ubuntu Jaunty updates.