Textured video rework

I’ve just pushed a major textured video rework for radeon.  Many thanks to Roland Scheidegger for getting the ball rolling on this and for doing the initial implementation of Xv controls for brightness, hue, contract, etc.  What’s new:

- Native support for planar formats (no more swizzling to packed)
- Xv attributes for brightness, contrast, hue, saturation, gamma, colorspace (BT.601, BT.709)

Note, the new attributes do not work in conjunction with bicubic filtering yet, so you’ll need to disable bicubic filtering to use the attributes.

5 Responses to “Textured video rework”

  1. linkfeedr » Blog Archive » Alex Deucher: Textured video rework - RSS Indexer (beta) Says:

    […] wait…Rating: 0.0/5 (0 votes cast) This article was found on planet.freedesktop.org. Click here to visit the full article on the original website.I’ve just pushed a major textured video rework for radeon.  Many thanks to Roland […]

  2. Zicha Says:

    thank you, man! I really appreciate your hard work!

  3. olo Says:

    Hello!

    Is there some archtectural limitation that binds textured video only to the first X server started on the given machine?

    I’ve recently bought a new PC with an integrated on-board Radeon HD 2100:
    01:05.0 VGA compatible controller: ATI Technologies Inc Radeon 2100

    Installed Kubuntu 9.04 x86_64 on this, and one of the first things noticeable is that if I launch a second X session on display :1, it has no Xv capabilities.

    Display :0 has the following in xvinfo:

    X-Video Extension version 2.2
    screen #0
    Adaptor #0: “Radeon Textured Video”
    number of ports: 16
    port base: 57
    operations supported: PutImage
    supported visuals:
    depth 24, visualID 0×21
    number of attributes: 2
    “XV_BICUBIC” (range 0 to 2)
    client settable attribute
    client gettable attribute (current value is 2)
    “XV_VSYNC” (range 0 to 1)
    client settable attribute
    client gettable attribute (current value is 1)
    maximum XvImage size: 2048 x 2048
    Number of image formats: 4
    id: 0×32595559 (YUY2)
    guid: 59555932-0000-0010-8000-00aa00389b71
    bits per pixel: 16
    number of planes: 1
    type: YUV (packed)
    id: 0×32315659 (YV12)
    guid: 59563132-0000-0010-8000-00aa00389b71
    bits per pixel: 12
    number of planes: 3
    type: YUV (planar)
    id: 0×30323449 (I420)
    guid: 49343230-0000-0010-8000-00aa00389b71
    bits per pixel: 12
    number of planes: 3
    type: YUV (planar)
    id: 0×59565955 (UYVY)
    guid: 55595659-0000-0010-8000-00aa00389b71
    bits per pixel: 16
    number of planes: 1
    type: YUV (packed)

    While display :1 has:

    X-Video Extension version 2.2
    screen #0
    no adaptors present

    My old machine had a Radeon 9000 and no problems with Xv (non textured, though) on multiple displays.

    Is that a configuration issue on Ubuntu side, or an architectural one? Can this be worked around?

  4. olo Says:

    BTW, here are some snippets from my Xorg.0.log if this would clarify anything:

    (–) RADEON(0): Chipset: “ATI RS740″ (ChipID = 0×796e)

    (II) RADEON(0): ATOM BIOS detected
    (II) RADEON(0): ATOM BIOS Rom:
    SubsystemVendorID: 0×1002 SubsystemID: 0×796e
    IOBaseAddress: 0xee00
    Filename: MA74M_S2H_DV
    BIOS Bootup Message:
    ATI Radeon Xpress 1250 for Shiner DVI

    (II) RADEON(0): Set up textured video
    Output CRT1 disable success
    Output DFP3 disable success
    Blank CRTC 0 success
    Disable CRTC 0 success
    Blank CRTC 1 success
    Disable CRTC 1 success
    Output CRT1 disable success
    Blank CRTC 0 success
    Disable CRTC 0 success
    Mode 1680×1050 - 1840 1080 9
    (II) RADEON(0): RADEONRestoreMemMapRegisters() :
    (II) RADEON(0): MC_FB_LOCATION : 0xd7ffd000 0xd7ffd000
    (II) RADEON(0): MC_AGP_LOCATION : 0xd9ffd800
    freq: 119000000
    best_freq: 118999200
    best_feedback_div: 831
    best_ref_div: 10
    best_post_div: 10
    (II) RADEON(0): crtc(0) Clock: mode 119000, PLL 118990
    (II) RADEON(0): crtc(0) PLL : refdiv 10, fbdiv 0×33F(831), pdiv 10
    Set CRTC 0 PLL success
    Set CRTC Timing success
    Set CRTC 0 Overscan success
    Not using RMX
    scaler 0 setup success
    Set CRTC 0 Source success
    crtc 0 YUV disable setup success
    Output DAC1 setup success
    Output CRT1 enable success
    Enable CRTC 0 success
    Unblank CRTC 0 success
    Output DFP3 disable success
    Blank CRTC 1 success
    Disable CRTC 1 success

    Xorg.1.log in place of “Set up textured video” has:

    (II) RADEON(0): Textured video requires CP on R5xx/R6xx/R7xx/IGP
    Output CRT1 disable success
    Output DFP3 disable success
    Blank CRTC 0 success

  5. radeon Says:

    radeon…