Announcement

Collapse
No announcement yet.

Radeon Driver Gets Tear-Free X-Video

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    To get the tear-prevention code, though, you would need to build the radeon driver (xf86-video-ati) from git, because it's just been added.

    Comment


    • #12
      I believe you will get updates through the update manager but there are three driver components involved (the X driver, ie radeon/radeonhd), the drm (kernel) driver and the mesa (3d) driver) but I don't remember seeing updates for the drm or mesa drivers. Maybe someone who knows Ubuntu better can jump in.

      The open source drivers (assuming you have all three components) currently support 3d on everything up to r5xx and rs690. 3D support for r6xx and r7xx (ie HD2xxx and higher) is being worked on now.

      If you have a 5xx or earlier card then Ubuntu 8.10 comes up with 3d already enabled, so you can just turn on visual effects under "preferences" and enjoy the eye candy.

      Comment


      • #13
        To get the tear-prevention code, though, you would need to build the radeon driver (xf86-video-ati) from git, because it's just been added.
        Yep, that's definitely worth mentioning

        I wouldn't expect Ubuntu packagers to create an update until the next formal release of the driver, so in the meantime you would need to build from source or pick up one of the "edgers" packages -- I don't remember the URL but maybe Tormod or someone else could help.

        Comment


        • #14
          Originally posted by bridgman View Post
          I believe you will get updates through the update manager
          I believe Ubuntu's policy is to generally only commit bug fixes to a given version of Ubuntu after release. Backports will have feature additions, but I doubt any graphics drivers are in there.

          Originally posted by bridgman View Post
          The open source drivers (assuming you have all three components) currently support 3d on everything up to r5xx and rs690. 3D support for r6xx and r7xx (ie HD2xxx and higher) is being worked on now.
          So does that mean that this won't work on (for example) my HD3850? Or just that I just won't be able to get 3d acceleration at the same time?

          Comment


          • #15
            Originally posted by russell_h View Post
            So does that mean that this won't work on (for example) my HD3850? Or just that I just won't be able to get 3d acceleration at the same time?
            Right now there is no HW acceleration (2d, video, or 3d) on r6xx and up, including your HD3850. There is shadowfb support, which makes 2d and video ("X11" output) surprisingly useful, but no HW acceleration.

            We have 2d accel working in house (agd5f got the overlapping src/dst problem fixed yesterday), and textured video "almost working" (it needs some shaders added to do YUV-RGB conversion), along with a demo program that shows how to program the engine for common 3d functions, so I think that's a good start. We are going through what we hope will be the final IP review to get all this released to the public.

            The code and docs cover both 6xx (HD2xxx, HD3xxx) and 7xx (HD4xxx) families.
            Last edited by bridgman; 12-05-2008, 05:29 PM.

            Comment


            • #16
              Originally posted by bridgman View Post
              We have 2d accel working in house, and video "almost working", along with a demo program that shows how to program the engine for common 3d functions, and are going through what we hope will be the final IP review for public release.

              The code and docs cover both 6xx (HD2xxx, HD3xxx) and 7xx (HD4xxx) families.
              Awesome! I got the card specifically for video playback hoping that you would come through with this, so thats great news (I realized I actually have a 4850, but it sounds like the same deal).

              Comment


              • #17
                Ubuntu packages

                If you use plain Ubuntu 8.04 or 8.10, you can get an updated DDX (card driver) from my repository https://launchpad.net/~tormodvolden/+archive The packages are unofficial, but testing is welcome.

                If you want to upgrade libraries, server and dependencies (for instance xserver 1.5 in Hardy or mesa trunk in Jaunty) then the xorg-edgers repository might be of interest to you. All disclaimers apply. Read the small text on https://launchpad.net/~xorg-edgers/+archive

                Comment


                • #18
                  Nope, it paralyses my Xorg server on Fedora 9

                  My machine doesn't lock up, but I still can't login.

                  Code:
                  (II) Module exa: vendor="X.Org Foundation"
                  	compiled for 1.5.2, module version = 2.4.0
                  	ABI class: X.Org Video Driver, version 4.1
                  (==) RADEON(0): Assuming overlay scaler buffer width is 1920
                  (II) RADEON(0): No MM_TABLE found - assuming CARD is not TV-in capable.
                  (!!) RADEON(0): For information on using the multimedia capabilities
                  	of this adapter, please see http://gatos.sf.net.
                  (!!) RADEON(0): MergedFB support has been removed and replaced with xrandr 1.2 support
                  (--) Depth 24 pixmap format is 32 bpp
                  (II) do I need RAC?  No, I don't.
                  (II) resource ranges after preInit:
                  	[0] -1	0	0xffffffff - 0xffffffff (0x1) MX[B]
                  	[1] -1	0	0x000f0000 - 0x000fffff (0x10000) MX[B]
                  	[2] -1	0	0x000c0000 - 0x000effff (0x30000) MX[B]
                  	[3] -1	0	0x00000000 - 0x0009ffff (0xa0000) MX[B]
                  	[4] 0	0	0x000a0000 - 0x000affff (0x10000) MS[B](OprU)
                  	[5] 0	0	0x000b0000 - 0x000b7fff (0x8000) MS[B](OprU)
                  	[6] 0	0	0x000b8000 - 0x000bffff (0x8000) MS[B](OprU)
                  	[7] -1	0	0x0000ffff - 0x0000ffff (0x1) IX[B]
                  	[8] -1	0	0x00000000 - 0x00000000 (0x1) IX[B]
                  	[9] 0	0	0x000003b0 - 0x000003bb (0xc) IS[B](OprU)
                  	[10] 0	0	0x000003c0 - 0x000003df (0x20) IS[B](OprU)
                  (II) RADEON(0): RADEONScreenInit e0000000 0 0
                  Entering TV Save
                  Save TV timing tables
                  saveTimingTables: reading timing tables
                  TV Save done
                  (==) RADEON(0): Using 24 bit depth buffer
                  (II) RADEON(0): RADEONInitMemoryMap() : 
                  (II) RADEON(0):   mem_size         : 0x10000000
                  (II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000
                  (II) RADEON(0):   MC_AGP_LOCATION  : 0xffffffc0
                  (II) RADEON(0): Depth moves disabled by default
                  (**) RADEON(0): Using accelerated EXA DownloadFromScreen hook
                  (II) RADEON(0): Allocating from a screen of 262144 kb
                  (II) RADEON(0): Will use 32 kb for hardware cursor 0 at offset 0x007e9000
                  (II) RADEON(0): Will use 32 kb for hardware cursor 1 at offset 0x007ed000
                  (II) RADEON(0): Will use 8100 kb for front buffer at offset 0x00000000
                  (II) RADEON(0): Will use 8100 kb for back buffer at offset 0x007f1000
                  (II) RADEON(0): Will use 8100 kb for depth buffer at offset 0x00fda000
                  (II) RADEON(0): Will use 118784 kb for textures at offset 0x017c3000
                  (II) RADEON(0): Will use 119028 kb for X Server offscreen at offset 0x08bc3000
                  drmOpenDevice: node name is /dev/dri/card0
                  drmOpenDevice: open result is 13, (OK)
                  drmOpenDevice: node name is /dev/dri/card0
                  drmOpenDevice: open result is 13, (OK)
                  drmOpenByBusid: Searching for BusID pci:0000:01:00.0
                  drmOpenDevice: node name is /dev/dri/card0
                  drmOpenDevice: open result is 13, (OK)
                  drmOpenByBusid: drmOpenMinor returns 13
                  drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
                  (II) [drm] DRM interface version 1.3
                  (II) [drm] DRM open master succeeded.
                  (II) RADEON(0): [drm] Using the DRM lock SAREA also for drawables.
                  (II) RADEON(0): [drm] framebuffer handle = 0xe0000000
                  (II) RADEON(0): [drm] added 1 reserved context for kernel
                  (II) RADEON(0): X context handle = 0x1
                  (II) RADEON(0): [drm] installed DRM signal handler
                  (**) RADEON(0): Using AGP 8x
                  (II) RADEON(0): [agp] Mode 0x1f00420a [AGP 0x8086/0x2550; Card 0x1002/0x4153]
                  (II) RADEON(0): [agp] 131072 kB allocated with handle 0x00000001
                  (II) RADEON(0): [agp] ring handle = 0xc8000000
                  (II) RADEON(0): [agp] Ring mapped at 0xb7e3b000
                  (II) RADEON(0): [agp] ring read ptr handle = 0xc8101000
                  (II) RADEON(0): [agp] Ring read ptr mapped at 0xb7e3a000
                  (II) RADEON(0): [agp] vertex/indirect buffers handle = 0xc8102000
                  (II) RADEON(0): [agp] Vertex/indirect buffers mapped at 0xa7b97000
                  (II) RADEON(0): [agp] GART texture map handle = 0xc8302000
                  (II) RADEON(0): [agp] GART Texture map mapped at 0x9ff97000
                  (II) RADEON(0): [drm] register handle = 0xff8f0000
                  (II) RADEON(0): [dri] Visual configs initialized
                  (II) RADEON(0): RADEONRestoreMemMapRegisters() : 
                  (II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0x1fff0000
                  (II) RADEON(0):   MC_AGP_LOCATION  : 0xffffffc0
                  (==) RADEON(0): Backing store disabled
                  (II) RADEON(0): [DRI] installation complete
                  (II) RADEON(0): [drm] Added 32 65536 byte vertex/indirect buffers
                  (II) RADEON(0): [drm] Mapped 32 vertex/indirect buffers
                  (II) RADEON(0): [drm] dma control initialized, using IRQ 16
                  (II) RADEON(0): [drm] Initialized kernel GART heap manager, 130023424
                  (WW) RADEON(0): DRI init changed memory map, adjusting ...
                  (WW) RADEON(0):   MC_FB_LOCATION  was: 0xefffe000 is: 0xefffe000
                  (WW) RADEON(0):   MC_AGP_LOCATION was: 0xffffffc0 is: 0xcfffc800
                  (II) RADEON(0): RADEONRestoreMemMapRegisters() : 
                  (II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0xefffe000
                  (II) RADEON(0):   MC_AGP_LOCATION  : 0xcfffc800
                  (II) RADEON(0): Direct rendering enabled
                  (II) RADEON(0): Render acceleration enabled for R300/R400/R500 type cards.
                  (II) RADEON(0): Setting EXA maxPitchBytes
                  (II) RADEON(0): EXA VSync enabled
                  (II) RADEON(0): num quad-pipes is 1
                  (**) RADEON(0): Option "MigrationHeuristic" "greedy"
                  (II) EXA(0): Offscreen pixmap area of 121884672 bytes
                  (II) EXA(0): Driver registered support for the following operations:
                  (II)         Solid
                  (II)         Copy
                  (II)         Composite (RENDER acceleration)
                  (II)         UploadToScreen
                  (II)         DownloadFromScreen
                  (II) RADEON(0): Acceleration enabled
                  (**) Option "dpms"
                  (**) RADEON(0): DPMS enabled
                  (==) RADEON(0): Silken mouse enabled
                  (II) RADEON(0): No video input capabilities detected and no information is provided - disabling multimedia i2c
                  (II) Loading sub module "theatre_detect"
                  (II) LoadModule: "theatre_detect"
                  
                  (II) Loading /usr/lib/xorg/modules/multimedia//theatre_detect_drv.so
                  (II) Module theatre_detect: vendor="X.Org Foundation"
                  	compiled for 1.4.99.905, module version = 1.0.0
                  	ABI class: X.Org Video Driver, version 4.1
                  (II) RADEON(0): no multimedia table present, disabling Rage Theatre.
                  (II) RADEON(0): Set up overlay video
                  (II) RADEON(0): Set up textured video
                  init memmap
                  init common
                  init crtc1
                  init pll1
                  freq: 119000000
                  best_freq: 119000000
                  best_feedback_div: 238
                  best_ref_div: 27
                  best_post_div: 2
                  restore memmap
                  (II) RADEON(0): RADEONRestoreMemMapRegisters() : 
                  (II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0xefffe000
                  (II) RADEON(0):   MC_AGP_LOCATION  : 0xcfffc800
                  restore common
                  restore crtc1
                  restore pll1
                  finished PLL1
                  restore FP
                  (II) RADEON(0): RandR 1.2 enabled, ignore the following RandR disabled message.
                  init memmap
                  init common
                  init crtc1
                  init pll1
                  freq: 119000000
                  best_freq: 119000000
                  best_feedback_div: 238
                  best_ref_div: 27
                  best_post_div: 2
                  restore memmap
                  (II) RADEON(0): RADEONRestoreMemMapRegisters() : 
                  (II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0xefffe000
                  (II) RADEON(0):   MC_AGP_LOCATION  : 0xcfffc800
                  restore common
                  restore crtc1
                  restore pll1
                  finished PLL1
                  restore FP
                  (--) RandR disabled
                  (II) Initializing built-in extension MIT-SHM
                  (II) Initializing built-in extension XInputExtension
                  (II) Initializing built-in extension XTEST
                  (II) Initializing built-in extension XKEYBOARD
                  (II) Initializing built-in extension XINERAMA
                  (II) Initializing built-in extension XFIXES
                  (II) Initializing built-in extension RENDER
                  (II) Initializing built-in extension RANDR
                  (II) Initializing built-in extension COMPOSITE
                  (II) Initializing built-in extension DAMAGE
                  (II) Initializing built-in extension XEVIE
                  drmOpenDevice: node name is /dev/dri/card0
                  drmOpenDevice: open result is 14, (OK)
                  drmOpenByBusid: Searching for BusID pci:0000:01:00.0
                  drmOpenDevice: node name is /dev/dri/card0
                  drmOpenDevice: open result is 14, (OK)
                  drmOpenByBusid: drmOpenMinor returns 14
                  drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
                  (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
                  (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control
                  (II) AIGLX: enabled GLX_texture_from_pixmap with driver support
                  (II) AIGLX: Loaded and initialized /usr/lib/dri/r300_dri.so
                  (II) GLX: Initialized DRI GL provider for screen 0
                  (II) RADEON(0): Setting screen physical size to 434 x 270
                  (**) Option "Protocol" "auto"
                  (**) Option "Device" "/dev/input/mice"
                  (II) Mouse0: Setting mouse protocol to "ExplorerPS/2"
                  (**) Mouse0: Device: "/dev/input/mice"
                  (**) Mouse0: Protocol: "auto"
                  (**) Option "CorePointer"
                  (**) Mouse0: always reports core events
                  (**) Option "Device" "/dev/input/mice"
                  (**) Option "Emulate3Buttons" "no"
                  (**) Option "ZAxisMapping" "4 5"
                  (**) Mouse0: ZAxisMapping: buttons 4 and 5
                  (**) Mouse0: Buttons: 9
                  (**) Mouse0: Sensitivity: 1
                  (**) Option "CoreKeyboard"
                  (**) Keyboard0: always reports core events
                  (**) Option "Protocol" "standard"
                  (**) Keyboard0: Protocol: standard
                  (**) Option "AutoRepeat" "500 30"
                  (**) Option "XkbRules" "xorg"
                  (**) Keyboard0: XkbRules: "xorg"
                  (**) Option "XkbModel" "pc105"
                  (**) Keyboard0: XkbModel: "pc105"
                  (**) Option "XkbLayout" "gb"
                  (**) Keyboard0: XkbLayout: "gb"
                  (**) Option "CustomKeycodes" "off"
                  (**) Keyboard0: CustomKeycodes disabled
                  (II) evaluating device (Mouse0)
                  (II) XINPUT: Adding extended input device "Mouse0" (type: MOUSE)
                  (II) evaluating device (Keyboard0)
                  (II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
                  (II) Mouse0: Setting mouse protocol to "ExplorerPS/2"
                  (II) Mouse0: ps2EnableDataReporting: succeeded
                  (II) RADEON(0): Damage tracking initialized for page flipping
                  (II) config/hal: Adding input device ImPS/2 Generic Wheel Mouse
                  (II) LoadModule: "evdev"
                  
                  (II) Loading /usr/lib/xorg/modules/input//evdev_drv.so
                  (II) Module evdev: vendor="X.Org Foundation"
                  	compiled for 1.5.0, module version = 2.0.7
                  	Module class: X.Org XInput Driver
                  	ABI class: X.Org XInput driver, version 2.1
                  (**) ImPS/2 Generic Wheel Mouse: always reports core events
                  (**) ImPS/2 Generic Wheel Mouse: Device: "/dev/input/event3"
                  (II) ImPS/2 Generic Wheel Mouse: Found x and y relative axes
                  (II) ImPS/2 Generic Wheel Mouse: Found mouse buttons
                  (II) ImPS/2 Generic Wheel Mouse: Configuring as mouse
                  (II) XINPUT: Adding extended input device "ImPS/2 Generic Wheel Mouse" (type: MOUSE)
                  and then it all stops.

                  Comment


                  • #19
                    Originally posted by Zhick View Post
                    My experience so far: On r500 cards you will get corruption in windowed video with the current git-version when you're using compositing. Even without there will be some corruption, though less notable (see the bugreport oibaf linked). But Alex Deucher already created a patch which fix this issue (attached to the same bugreport), but it seems not to be in git yet.
                    With the patch there's no tearing on videos without compositing, but still with compositing enabled.
                    The corruption with compositing has been fixed properly now. The Xv anti-tear stuff won't help with composite since the video is rendered offscreen and then composited onto the desktop later. In that case, you can enable EXA and the EXAVsync option to apply the same techniques to EXA (for metacity or other compositers that use render). Since Compiz uses GL, you'll have to use the compiz vsync options.
                    Last edited by agd5f; 12-05-2008, 06:28 PM.

                    Comment


                    • #20
                      Works brilliantly on ATI X1400/r500

                      Wow, textured video with the latest xf86-video-ati GIT snapshot is just perfectly in sync. No tearing at all, here. Tested with a 60fps video, and it was smooth. Great ! So I don't need to use VSYNC-ed OpenGL output, anymore. Note that I don't use Compiz, nor EXA acceleration (because of corruption issues).

                      Ubuntu/8.10 x86, ATI X1400 radeon mobile.

                      Comment

                      Working...
                      X