hi,
    I have a patch for unichrome(CX700, CX700M, CX700M2), which enable
hardware accelated StretchBlit (YUV->RGB).
NOTE: 
 1.  this patch is against 1.0.1. for 1.1 and later, I think it should work.
since the unichrome driver  have no change a long time.

 2.  this patch work well with VIA's viafb:
http://www.viaarena.com/Driver/linux-fbdev-kernel-src_2.6.00.03a.tgz

Thanks for your good work with DirectFB. :-)

diff -urp unichrome.orig/regs3d.h unichrome/regs3d.h
--- unichrome.orig/regs3d.h     2007-08-08 03:43:00.000000000 +0800
+++ unichrome/regs3d.h  2007-11-21 13:29:50.000000000 +0800
@@ -1019,6 +1019,7 @@
 #define HC_HTXnFM_VU88          (HC_HTXnFM_BUMPMAP   | 0x00000000)
 #define HC_HTXnFM_LVU655        (HC_HTXnFM_BUMPMAP   | 0x00010000)
 #define HC_HTXnFM_LVU888        (HC_HTXnFM_BUMPMAP   | 0x00020000)
+#define HC_HTXnFM_YUY2          0x00300000
 #define HC_HTXnLoc_Local        0x00000000
 #define HC_HTXnLoc_Sys          0x00000002
 #define HC_HTXnLoc_AGP          0x00000003
diff -urp unichrome.orig/uc_accel.c unichrome/uc_accel.c
--- unichrome.orig/uc_accel.c   2007-08-08 03:43:00.000000000 +0800
+++ unichrome/uc_accel.c        2007-11-21 13:29:50.000000000 +0800
@@ -73,11 +73,14 @@ void uc_flush_texture_cache(void* drv, v

     (void) ucdev;

-    UC_FIFO_PREPARE(fifo, 4);
+    UC_FIFO_PREPARE(fifo, 16);

     UC_FIFO_ADD_HDR(fifo, (HC_ParaType_Tex << 16) | (HC_SubType_TexGeneral << 
24));
-    UC_FIFO_ADD_3D(fifo, HC_SubA_HTXSMD, HC_HTXCHCLR_MASK);
-    UC_FIFO_ADD_3D(fifo, HC_SubA_HTXSMD, 0);
+    UC_FIFO_ADD (fifo, 0x00000002);
+
+    UC_FIFO_ADD (fifo, 0x0113000d);
+    UC_FIFO_ADD (fifo, 0x02ed1316);
+    UC_FIFO_ADD (fifo, 0x03071000);

     UC_FIFO_CHECK(fifo);
 }
Only in unichrome: uc_accel.c~
diff -urp unichrome.orig/uc_hw.h unichrome/uc_hw.h
--- unichrome.orig/uc_hw.h      2007-08-08 03:43:00.000000000 +0800
+++ unichrome/uc_hw.h   2007-11-21 13:29:50.000000000 +0800
@@ -48,6 +48,7 @@ static inline int uc_map_src_format_3d(
           case DSPF_AiRGB:    return HC_HTXnFM_ARGB8888; // limited support
           case DSPF_A8:       return HC_HTXnFM_A8;
           case DSPF_LUT8:     return HC_HTXnFM_Index8;
+          case DSPF_YUY2:     return HC_HTXnFM_YUY2;

           default:
                D_BUG( "unexpected pixel format" );
diff -urp unichrome.orig/uc_probe.h unichrome/uc_probe.h
--- unichrome.orig/uc_probe.h   2007-08-08 03:43:00.000000000 +0800
+++ unichrome/uc_probe.h        2008-01-01 05:10:56.000000000 +0800
@@ -15,7 +15,7 @@
 #endif

 #ifndef FB_ACCEL_VIA_UNICHROME
-#define FB_ACCEL_VIA_UNICHROME 77
+#define FB_ACCEL_VIA_UNICHROME 50
 #endif

 struct uc_via_chipinfo
@@ -35,6 +35,8 @@ static struct uc_via_chipinfo uc_via_dev
     {0x7204, "K8M800/UniChrome Pro"},   // aka VT3204, Unichrome Pro B
     {0x3118, "CN400/UniChrome Pro"},    // aka VT3259, PM8?0, Unichrome Pro A
     {0x3344, "CN700/Unichrome Pro"},    // aka VT3314, P4M800Pro, VN800, CN900
+    {0x3157, "CX700/Unichrome Pro"},    // aka CX700 CX700M CX700M2
     {0, ""}
 };

diff -urp unichrome.orig/uc_state.c unichrome/uc_state.c
--- unichrome.orig/uc_state.c   2007-08-08 03:43:00.000000000 +0800
+++ unichrome/uc_state.c        2007-11-21 13:29:50.000000000 +0800
@@ -83,6 +83,7 @@ uc_has_src_format_3d( DFBSurfacePixelFor
           case DSPF_ARGB:
           case DSPF_A8:
           case DSPF_LUT8:
+          case DSPF_YUY2:
                return true;

           default:

-- 
Deng XueFeng <[EMAIL PROTECTED]>

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to