Bug 6461 - XVIDEO performance regression with radeon
Summary: XVIDEO performance regression with radeon
Status: RESOLVED DUPLICATE of bug 5801
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.0.0
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Xorg Project Team
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-02 05:02 UTC by Bruce Cole
Modified: 2006-04-02 11:33 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
X server log (138.48 KB, text/plain)
2006-04-02 05:03 UTC, Bruce Cole
no flags Details

Description Bruce Cole 2006-04-02 05:02:14 UTC
I just upgraded my system from Xorg 6.8.2 to 7.0 (fedora core 4 to fedora core
5), and I've noticed a drastic decrease in the performance of my X server when I
playback mpeg2 video.  With 6.8.2, a 1920x1080i mpeg2 video would play back fine
on my system (3.4ghz hyperthread p4 with smp kernel).  Top would report CPU
utilization of roughly 54% for the X process, and 48% for xine.  With 7.0, both
processes are pegged at roughly 100% cpu utilization and the player complains of
dropped frames.  

Problem occurs with both mplayer and xine.  mplayer binary is identical to
binary used before upgrade.  Performance is restored when I run the old 6.8.2 X
server under the new OS.  In both cases, the X video extension is reported to be
loaded, and the players claim to be using it.  

With 7.0, xvinfo reports:

X-Video Extension version 2.2
screen #0
  Adaptor #0: "ATI Radeon Video Overlay"
    number of ports: 1
    port base: 65
    operations supported: PutImage 
    supported visuals:
      depth 24, visualID 0x23
      depth 24, visualID 0x24
      depth 24, visualID 0x25
      depth 24, visualID 0x26
      depth 24, visualID 0x27
      depth 24, visualID 0x28
      depth 24, visualID 0x29
      depth 24, visualID 0x2a
    number of attributes: 22
      "XV_DEVICE_ID" (range 0 to -1)
              client gettable attribute (current value is 108)
      "XV_LOCATION_ID" (range 0 to -1)
              client gettable attribute (current value is 109)
      "XV_INSTANCE_ID" (range 0 to -1)
              client gettable attribute (current value is 110)
      "XV_DUMP_STATUS" (range 0 to 1)
              client settable attribute
      "XV_SET_DEFAULTS" (range 0 to 1)
              client settable attribute
      "XV_AUTOPAINT_COLORKEY" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      "XV_COLORKEY" (range 0 to -1)
              client settable attribute
              client gettable attribute (current value is 30)
      "XV_DOUBLE_BUFFER" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      "XV_OVERLAY_ALPHA" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 255)
      "XV_GRAPHICS_ALPHA" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 255)
      "XV_ALPHA_MODE" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_BRIGHTNESS" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_SATURATION" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_COLOR" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_HUE" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_RED_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_GREEN_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_BLUE_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_SWITCHCRT" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_GAMMA" (range 100 to 10000)
              client settable attribute
              client gettable attribute (current value is 1000)
      "XV_COLORSPACE" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 2048 x 2048
    Number of image formats: 8
      id: 0x41424752 (RGBA)
        guid: 52474241-0000-0010-8000-00aa00389b71
        bits per pixel: 32
        number of planes: 1
        type: RGB (packed)
        depth: 32
        red, green, blue masks: 0xff0000, 0xff00, 0xff
      id: 0x0
        guid: 52474200-0000-0010-8000-00aa00389b71
        bits per pixel: 24
        number of planes: 1
        type: RGB (packed)
        depth: 24
        red, green, blue masks: 0xff0000, 0xff00, 0xff
      id: 0x54424752 (RGBT)
        guid: 52474254-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 16
        red, green, blue masks: 0x7c00, 0x3e0, 0x1f
      id: 0x32424752 (RGB2)
        guid: 52474200-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 16
        red, green, blue masks: 0xf800, 0x7e0, 0x1f
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
Comment 1 Bruce Cole 2006-04-02 05:03:51 UTC
Created attachment 5157 [details]
X server log
Comment 2 Michel Dänzer 2006-04-02 05:32:03 UTC
This is probably due to bug 5801. Enabling the DRI might also improve performance.
Comment 3 Bruce Cole 2006-04-02 07:03:37 UTC
"Enabling the DRI might also improve performance"

My X log reported DRI issues under 6.8.2 as well:
    (WW) RADEON(0): Direct rendering not yet supported on Radeon 9500 and newer
cards
and
    (II) RADEON(0): Direct rendering disabled
yet xvideo performance was fine.

I'm not interested in 3D, but this sounds just like the problem reported here:
http://lists.debian.org/debian-amd64/2006/02/msg00330.html

Is there a workaround?

Note also xine-check reports:

  [ good ] found xvinfo: X-Video Extension version 2.2
  [ good ] your Xv extension supports YV12 overlays (improves MPEG performance)
  [ good ] your Xv extension supports YUY2 overlays
  [ good ] Xv ports:  YUY2 UYVY YV12 I420
Comment 4 Michel Dänzer 2006-04-02 07:21:56 UTC
I didn't say that the DRI not being enabled is the problem, just that enabling
it might improve performance enough to mitigate the missing MTRR support.

Bug 5801 has a patch, please try that.
Comment 5 Bruce Cole 2006-04-02 08:21:00 UTC
(In reply to comment #4)
> I didn't say that the DRI not being enabled is the problem, just that enabling
> it might improve performance enough to mitigate the missing MTRR support.
> 
> Bug 5801 has a patch, please try that.

Alright, thanks.  Any build snapshot?  It's been a few years since I've compiled
X and I don't have all the requisite packages installed on my desktop at the moment.
Comment 6 Michel Dänzer 2006-04-03 00:56:36 UTC
MTRR support should be fixed in xserver HEAD, so you could try a DRI snapshot
from http://dri.freedesktop.org/snapshots/ . A common snapshot may be enough,
but if that doesn't run, try an r300 snapshot as well.
Comment 7 Bruce Cole 2006-04-03 04:33:57 UTC
(In reply to comment #6)
> MTRR support should be fixed in xserver HEAD, so you could try a DRI snapshot
> from http://dri.freedesktop.org/snapshots/ . A common snapshot may be enough,
> but if that doesn't run, try an r300 snapshot as well.
(In reply to comment #6)
> MTRR support should be fixed in xserver HEAD, so you could try a DRI snapshot
> from http://dri.freedesktop.org/snapshots/ . A common snapshot may be enough,
> but if that doesn't run, try an r300 snapshot as well.

Thanks; looks like the snapshots haven't built in a couple days.
I actually built from cvs and found that the mainline code does in fact
restore xvideo performance to X 6.8.2 levels.  Thank you.  Assuming this
is because of bug 5801, I've marked this a dup.
Now if I could only figure out autoconf switches to match fedora's
distribution (for install paths and such) , I could probably
drop-replace the X server binary to patch my distro...


*** This bug has been marked as a duplicate of 5801 ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.