[Openchrome-users] HW acceleration for CX700 (VT3157)?

Michael Wang mwang
Sat Nov 24 09:00:59 PST 2007


01.

I have CX700 (VT3157, in VM-7700V box,

Processor :     Onboard VIA C7 1 GHz, VIA Eden ULV 1.5 GHz
Memory :        1 x DDR2 533 MHz SO-DIMM supporting up to 1GB
Graphics :      VIA UniChrome Pro II AGP graphics with MPEG-2 / 4,
                WMV9 decoding accelerator

My goal is to get HW acceleration to work, so that it can play video
smoothly. I tried openchrome driver (experimental brach), it works
but I got this message:

  (WW) VIA(0): [XvMC] Not supported on this chipset.

Does this mean XvMC support for CX700 is available in the driver?
Is there a plan to add XvMC support for CX700 in openchrome driver
so that I can use HW acceleration?

02.

What are the options to get HW accelaration for CX700 (VT3157)?

I have tried both VeXP and VeMP with via driver and VIA Technologies
recommended kernel and module patces (details are listed below), but I
could not get none of them to use HW acceleration, although VeXP release
note does say it support HW acceleration for MPEG2/MPEG4 by UniChrome
Graphics on CX700(M/M2).

The only HW acceleration I can get to work is by VeXP produced binary
"viaexpfb" which uses the frame buffer driver "viafb", but the HW
acceleration works only for MPEG-2 but NOT MPEG-4. Also, the frame buffer
driver causes freezes, and screen messups.

Has anyone got HW accelaration for CX700 work in any other way?

The kernel patches:

  what: AGP patch
  file: cle266cn400cn-cx700cn800xorg40072-kernel-src_20061226c(20070604103608).zip
  URL : http://www.viaarena.com/default.aspx?PageID=420&OSID=25&CatID=2580&SubCatID=184

  what: Enabling PIDE DMA mode with VIA South Bridge chips 
  file: Enable PATA/IDE DMA Mode in VIA South Bridge Chips HOWTO
  URL : http://www.viaarena.com/default.aspx?PageID=22&DSCat=187&DCatType=3
  note: "The only different thing is to modify the ID from 0x5324 to 0x0581
        due to the DeviceID of IDE controller in PX board is 0x0581".
  URL : http://forums.viaarena.com/messageview.aspx?catid=28&threadid=77966&STARTPAGE=2&FTVAR_FORUMVIEWTMP=Linear

The new kernel seem to work because dmesg shows:

  # dmesg | grep agp
  Linux agpgart interface v0.101 (c) Dave Jones
  agpgart: Detected VIA CX700 chipset
  agpgart: AGP aperture is 512M @ 0x80000000
  agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.
  agpgart: X tried to set rate=x12. Setting to AGP3 x8 mode.
  agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode
  agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode
  agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0.
  agpgart: X tried to set rate=x12. Setting to AGP3 x8 mode.
  agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode
  agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode

  # dmesg | grep IDE
  Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
  VP_IDE: IDE controller at PCI slot 0000:00:0f.0
  VP_IDE: chipset revision 0
  VP_IDE: not 100% native mode: will probe irqs later
  VP_IDE: VIA cx700 (rev 00) IDE UDMA133 controller on pci0000:00:0f.0
  Probing IDE interface ide1...
  Probing IDE interface ide0...

All the modules are installed using:

  file: cle266cn400cn-cx700cn800xorg40072-kernel-src_20061226c(20070604103608).zip
  URL : http://www.viaarena.com/default.aspx?PageID=420&OSID=25&CatID=2580&SubCatID=184

namely:

  libddmpeg.so via.ko via_dri.so via_drv.so via_v4l_drv.ko

(libddmeg.so is not a module, it is a library).

  # dmesg | grep drm
  [drm] Initialized drm 1.0.1 20051102
  [drm] Initialized via 2.6.3 20050523 on minor 0

  # lsmod | grep via
  via_v4l_drv           456852  0 
  via                    40544  3 via_v4l_drv
  drm                    72852  3 via
  videodev               27136  1 via_v4l_drv
  via_velocity           37284  0 
  crc_ccitt               6400  1 via_velocity

The X is started using the via driver. Lines in Xorg.0.log shows:

    211 (II) Loading extension XVideo-MotionCompensation
    239 (II) LoadModule: "via"
    240 (II) Loading /usr/lib/xorg/modules/drivers/via_drv.so
    256 (II) via: driver for VIA chipsets: CLE266, KM400/KN400, K8M800/K8N800,
    257         PM800/PM880/CN400, P4M800PRO, CX700, K8M890, P4M890, CN750, P4M9
    260 (--) Chipset CX700 found
    337 (--) VIA(0): Chipset: "CX700"
    338 (--) VIA(0): Chipset Rev.: 0
    687 (**) VIA(0): Display dimensions: (330, 240) mm
    688 (**) VIA(0): DPI set to (78, 81)
    690 (II) Loading sub module "fb"
    691 (II) LoadModule: "fb"
    692 (II) Loading /usr/lib/xorg/modules/libfb.so
    693 (II) Module fb: vendor="X.Org Foundation"
    694         compiled for 7.1.1, module version = 1.0.0
    695         ABI class: X.Org ANSI C Emulation, version 0.3
    696 (II) Loading sub module "xaa"
    697 (II) LoadModule: "xaa"
    698 (II) Loading /usr/lib/xorg/modules/libxaa.so
    699 (II) Module xaa: vendor="X.Org Foundation"
    700         compiled for 7.1.1, module version = 1.2.0
    701         ABI class: X.Org Video Driver, version 1.0
    758 (II) VIA(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x        0000
    759 (II) VIA(0): VIAScreenInit : V4L Enabled : fd2 = 10
    763 drmOpenDevice: node name is /dev/dri/card0
    764 drmOpenDevice: open result is 11, (OK)
    765 drmOpenDevice: node name is /dev/dri/card0
    766 drmOpenDevice: open result is 11, (OK)
    767 drmOpenByBusid: Searching for BusID PCI:1:0:0
    768 drmOpenDevice: node name is /dev/dri/card0
    769 drmOpenDevice: open result is 11, (OK)
    770 drmOpenByBusid: drmOpenMinor returns 11
    771 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
    772 (II) VIA(0): [drm] DRM interface version 1.2
    773 (II) VIA(0): [drm] created "via" driver at busid "PCI:1:0:0"
    774 (II) VIA(0): [drm] added 8192 byte SAREA at 0xe0ae0000
    775 (II) VIA(0): [drm] mapped SAREA 0xe0ae0000 to 0xb7ff3000
    776 (II) VIA(0): [drm] framebuffer handle = 0xa0000000
    777 (II) VIA(0): [drm] added 1 reserved context for kernel
    778 (II) VIA(0): [drm] drmAgpEnabled succeeded
    779 (II) VIA(0): [drm] agpAddr = 0x80000000
    780 (II) VIA(0): [drm] agpBase = 0x00000000
    781 (II) VIA(0): [drm] agpAddr = 0x80000000
    782 (II) VIA(0): [drm] agpSize = 0x02000000
    783 (II) VIA(0): [drm] agp physical addr = 0x00000000
    784 (II) VIA(0): [dri] use agp.
    785 (II) VIA(0): [dri] frame buffer initialized.
    786 (II) VIA(0): [dri] visual configs initialized.
    787 (II) VIA(0): [drm] register handle = 0xdd000000
    788 (II) VIA(0): [drm] mmio Registers = 0xdd000000
    789 (II) VIA(0): [dri] mmio maped.
    790 (II) VIA(0): VIAInternalScreenInit
    791 (II) VIA(0): Frame Buffer From (0,0) To (1024,1280)
    792 (II) VIA(0): Using 1280 lines for offscreen memory.
    793 (II) VIA(0): Using XFree86 Acceleration Architecture (XAA)

-- 
Michael Wang, http://www.unixlabplus.com/, /* for future expansion */
Email=$(echo 37wxloc at ibmude.au | sed "s:\(.\)\(.\)\(.\)\(.\):\4\3\2\1:g")
Technical writings: http://www.unixlabplus.com/unix-prog/Publication.txt




More information about the Openchrome-users mailing list