No subject


Mon Jul 5 14:03:39 CEST 2010


long-term delayed patches:
shift_fix.diff+ckey_fix.diff - (vidix radeon fixes from mpxp) needs to be
        applied by hand, they don't apply at all

The vidix patch for radeon by Nick Kurshev to the mplayerxp vidix
driver has been contributed by Carl (mlist.mplayer.users at urs.us) to
the users list. I have further modified by the patch to fix the shift
problem and the pink screen problem for my card (Mobility M6 LY).

At least for him (Radeon 7500) and for me the vidix driver
works. Other cards should be tested too, the changes needed are
obvious from the patch. I only have access to the Mobility M6 LY and a
Mach64 (the vidix driver works already for this card)

Thanks,
Svante

Index: vidix/drivers/radeon_vid.c
===================================================================
RCS file: /cvsroot/mplayer/main/vidix/drivers/radeon_vid.c,v
retrieving revision 1.53
diff -u -b -r1.53 radeon_vid.c
--- vidix/drivers/radeon_vid.c	20 Nov 2002 15:48:34 -0000	1.53
+++ vidix/drivers/radeon_vid.c	19 Dec 2002 08:54:30 -0000
@@ -23,13 +23,15 @@
 #define X_ADJUST 0
 #else
 #define RADEON_MSG "Radeon_vid:"
-#define X_ADJUST (!IsR200 ? 8 : 0)
+#define X_ADJUST (is_shift_required ? 8 : 0)
 #ifndef RADEON
 #define RADEON
 #endif
 #endif
 
 static int __verbose = 0;
+static int rage_ckey_model=0;
+static int is_shift_required;
 
 typedef struct bes_registers_s
 {
@@ -927,6 +929,28 @@
   printf(RADEON_MSG" Video memory = %uMb\n",radeon_ram_size/0x100000);
   err = mtrr_set_type(pci_info.base0,radeon_ram_size,MTRR_TYPE_WRCOMB);
   if(!err) printf(RADEON_MSG" Set write-combining type of video memory\n");
+
+  switch(def_cap.device_id)
+    {
+    case DEVICE_ATI_RADEON_QW:
+    case DEVICE_ATI_RADEON_MOBILITY_M6:
+    case DEVICE_ATI_RADEON_MOBILITY_M62:
+    case DEVICE_ATI_RADEON_MOBILITY_M63:
+    case DEVICE_ATI_RADEON_MOBILITY_M64:
+      rage_ckey_model=1;
+      is_shift_required=1;
+      break;
+    case DEVICE_ATI_RADEON_QD:
+    case DEVICE_ATI_RADEON_QE:
+    case DEVICE_ATI_RADEON_QF:
+    case DEVICE_ATI_RADEON_QG:
+    case DEVICE_ATI_RADEON_VE_QY:
+    case DEVICE_ATI_RADEON_VE_QZ:
+      is_shift_required=1;
+      break;
+    default: break;
+    }
+
   if(__verbose > 1) radeon_vid_dump_regs();
   return 0;  
 }
@@ -1677,8 +1701,16 @@
 	besr.graphics_key_msk=(1<<dbpp)-1;
 	besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_NE|CMP_MIX_AND;
 #else
+	if(rage_ckey_model)
+          {
+	    besr.graphics_key_msk=besr.graphics_key_clr;
+	    besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_NE|CMP_MIX_AND;
+          }
+	else
+          {
 	besr.graphics_key_msk=besr.graphics_key_clr;
 	besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_EQ|CMP_MIX_AND;
+          }
 #endif
     }
     else




More information about the MPlayer-dev-eng mailing list