Page 1 of 1

Accelerated video from G550 with DVI output.

PostPosted: Thu Apr 23, 2009 3:33 am
by miszcz
Hello,
My setup is as follows: VDR with softdevice + direct framebuffer as output, powered by a 1.3 GHz Athlon TBird CPU with 384 MB of RAM.
G550 DVI output connected to an HDMI input of a DLP TV set. Standard definition only (no HD for now, hopefully soon), mpeg2 only, no H264.
I am located in USA.
Result: It works, kind of.

The problem: a somewhat jerky video that lags behind audio by a fraction of a second.
CPU use is beween 60 and 70% when VDR is running.

I am a total directfb newbie, but am under an impression that G550 is capable of assisting the main system processor in video processing which should result in a smooth video.
My G550 card has two connectors: one DVI and one VGA.

/etc/fb.modes:
Code: Select all
#
#   DirectFB video modes, should be placed into "/etc"
#

mode "1280x720-60"
    # D: 74.250 MHz, H: 45.000 kHz, V: 60.000 Hz
    geometry 1280 720 1280 720 32
    timings 13468 220 110 20 5 40 5
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,8/24
endmode


mode "800x600-60"
    # D: 40.000 MHz, H: 37.879 kHz, V: 60.317 Hz
    geometry 800 600 800 600 32
    timings 25000 88 40 23 1 128 4
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,8/24
endmode


mode "1280x1024-60"
    # D: 108.003 MHz, H: 63.983 kHz, V: 60.021 Hz
    geometry 1280 1024 1280 1024 32
    timings 9259 248 48 38 1 112 3
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,8/24
endmode

mode "640x480 75Hz 16bit"
    # D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz
    geometry 640 480 640 480 16
    timings 31747 120 16 16 1 64 3
endmode

mode "720x576 50Hz 16bit"
    geometry 720 576 720 576 16
    timings 31208 144 40 32 10 128 3
endmode

mode "768x576 75Hz 16bit"
    # D: 49.188 MHz, H: 46.580 kHz, V: 75.008 Hz
    geometry 768 576 768 576 16
    timings 20330 128 32 32 8 128 5
endmode


mode "800x600 75Hz 16bit"
    # D: 49.50 MHz, H: 46.875 kHz, V: 75.00 Hz
    geometry 800 600 800 600 16
    timings 20203 160 16 21 1 80 3
    hsync high
    vsync high
endmode


mode "1024x768 72Hz 16bit"
    # D: 75.00 MHz, H: 58.230 kHz, V: 72.245 Hz
    geometry 1024 768 1024 768 16
    timings 13334 104 24 29 3 136 6
endmode


mode "1280x1024-75"
    # D: 134.880 MHz, H: 79.905 kHz, V: 74.958 Hz
    geometry 1280 1024 1280 3264 16
    timings 7414 232 64 38 1 112 3
    hsync high
    vsync high
endmode

mode "1280x1024 60Hz 16bit"
    # D: 108.00 MHz, H: 63.981 kHz, V: 60.02 Hz
    geometry 1280 1024 1280 1024 16
    timings 9260 248 48 38 1 112 3
    hsync high
    vsync high
endmode


mode "1600x1200 60Hz 16bit"
    # D: 156.00 MHz, H: 76.200 kHz, V: 60.00 Hz
    geometry 1600 1200 1600 1200 16
    timings 6411 256 32 52 10 160 8
endmode


mode "640x400 93Hz 16bit"
    geometry 640 400 640 400 16
    timings 28272 48 32 17 22 128 12
endmode

mode "400x300 100Hz 16bit"
    geometry 400 300 400 300 16
    timings 31747 40 16 16 1 40 3
    double true
endmode


mode "320x240 85Hz 16bit"
    geometry 320 240 320 240 16
    timings 51383 32 32 20 4 48 1
    double true
endmode

mode "320x200 85Hz 16bit"
    geometry 320 200 320 200 16
    timings 60440 32 32 20 4 48 1
    double true
endmode


/etc/directfbrc
Code: Select all
mode=1280x720
depth=32
#fbdev=/dev/fb1
primary-layer=1
dma
hardware
agp=4
matrox-sgram
mmx
pixelformat = ARGB
#matrox-crtc1
#matrox-crtc2
#matrox-tv-standard=ntsc
#matrox-cable-type=composite
#disable-module = keyboard
disable-module = joystick
disable-module = mutouch
disable-module = ps2mouse
disable-module = sdlinput
disable-module = serial mouse
disable-module = sonypi



dfbinfo:
Code: Select all
     =======================|  DirectFB 1.0.1  |=======================
          (c) 2001-2007  The DirectFB Organization (directfb.org)
          (c) 2000-2004  Convergence (integrated media) GmbH
        ------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2008-08-18 12:36)
(*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 2534)...
(*) Direct/Modules: suppress module 'ps2mouse'
(*) Direct/Modules: suppress module 'sonypi'
(*) Direct/Modules: suppress module 'joystick'
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2537)...
(*) DirectFB/Input: AT Translated Set 2 keyboard (1) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2538)...
(*) DirectFB/Input: Power Button (FF) (2) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2539)...
(*) DirectFB/Input: Power Button (CM) (3) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2540)...
(*) DirectFB/Input: Sleep Button (CM) (4) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2541)...
(*) DirectFB/Input: PC Speaker (5) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Linux Input' (INPUT, 2542)...
(*) DirectFB/Input: PS/2 Generic Mouse (6) 0.1 (directfb.org)
(*) Direct/Thread: Running 'Keyboard Input' (INPUT, 2543)...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) DirectFB/Genefx: MMX detected and enabled
(*) DirectFB/Graphics: Matrox G550 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)


Screen (00) FBDev Primary Screen            (primary screen)
   Caps: VSYNC POWER_MANAGEMENT

     Layer (01) FBDev Primary Layer
        Type:    GRAPHICS
        Caps:    SURFACE BRIGHTNESS CONTRAST SATURATION

     Layer (00) Matrox Backend Scaler           (primary layer)
        Type:    GRAPHICS VIDEO STILL_PICTURE
        Caps:    SURFACE SCREEN_LOCATION DEINTERLACING DST_COLORKEY BRIGHTNESS CONTRAST SCREEN_POSITION SCREEN_SIZE


Input (00) AT Translated Set 2 keyboard    (primary keyboard)
   Type: KEYBOARD
   Caps: KEYS

Input (01) PS/2 Generic Mouse              (primary mouse)
   Type: MOUSE
   Caps: AXES BUTTONS
   Max. Axis: 1
   Max. Button: 2

Input (14) Keyboard
   Type: KEYBOARD
   Caps: KEYS


fbset -i (with VDR running)
Code: Select all
mode "1280x720-60"
    # D: 74.250 MHz, H: 45.000 kHz, V: 60.000 Hz
    geometry 1280 720 1280 720 32
    timings 13468 220 110 20 5 40 5
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
    Name        : MATROX
    Address     : 0xe4000000
    Size        : 33554432
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 5120
    MMIO Address: 0xe6000000
    MMIO Size   : 16384
    Accelerator : Matrox G400


fbset -i (with VDR not running)
Code: Select all
mode "800x600-60"
    # D: 41.601 MHz, H: 38.519 kHz, V: 59.999 Hz
    geometry 800 600 800 5242 32
    timings 24038 144 24 28 8 112 6
    accel true
    rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
    Name        : MATROX
    Address     : 0xe4000000
    Size        : 33554432
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 3200
    MMIO Address: 0xe6000000
    MMIO Size   : 16384
    Accelerator : Matrox G400


snippet from grub configuration:
Code: Select all
title           Debian GNU/Linux, kernel 2.6.26.1.2009-04-20.1
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26.1.2009-04-20.1 root=/dev/hda1 ro video=matroxfb:vesa:0x115,mtrr,sgram,init
initrd          /boot/initrd.img-2.6.26.1.2009-04-20.1


ls -l /dev/fb*
Code: Select all
crw-rw---- 1 root video 29, 0 2009-04-22 19:31 /dev/fb0
crw-rw---- 1 root video 29, 1 2009-04-22 19:31 /dev/fb1


Anything else I should paste in here?

How do I make the G550 to assist in video acceleration?
Also, could you guys point me to a document which explains, in simple terms, the heads, layers, screens and outputs so that I can learn about them.
I must admit that I am confused by the fb / dfb lingo. :oops: :oops: :oops:

Thanks in advance!

miszcz