← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 377929] Re: Unable to set rotation on AMD Geode LX800

 

Hi, all

  To repeatedly cycle test, I have written a shell-script to test the rotate. Now it can properly rotate in Xserver 1.8 (Need add my gamma correction  patch).
  Because I have some confuse on memorysize, so I need some time to research and consider whether this approach is correct. I can not explain too specific. But it can solve the urgent rotate issue in temporary.
  Any other latest update, I will inform.

Please see below change:
  

--- /driver/xf86-video-geode-2.11.8.ogig/src/lx_display.c	2010-06-10 19:11:02.000000000 +0800
+++ /driver/xf86-video-geode-2.11.8/src/lx_display.c	2010-06-18 14:58:39.000000000 +0800
@@ -338,10 +338,14 @@
     int i;
 
     assert(size == 256);
-
+    /* We need the Gamma Correction for video - fading operation, 
+     * the values address should plus for every cycle 
+     */
     for (i = 0; i < 256; i++) {
-	unsigned int val = (*red << 8) | *green | (*blue >> 8);
-
+	(*red) &= 0xff00;
+	(*green) &= 0xff00;
+	(*blue) &= 0xff00;
+	unsigned int val = (*(red++) << 8) | *(green++) | (*(blue++) >> 8);
 	df_set_video_palette_entry(i, val);
     }
 
@@ -378,6 +382,7 @@
 	return NULL;
     }
 
+    pGeode->pExa->memorySize += 1; //Hunk add
     memset(pGeode->FBBase + lx_crtc->rotate_mem->offset, 0, size);
     return pGeode->FBBase + lx_crtc->rotate_mem->offset;  } 

@@ -417,6 +422,7 @@
     if (data) {
 	gp_wait_until_idle();
 	GeodeFreeOffscreen(pGeode, lx_crtc->rotate_mem);
+	pGeode->pExa->memorySize -= 1; //Hunk add
 	lx_crtc->rotate_mem = NULL;
     }
 }
 
 Welcome everyone test the code.


I suggest you use:

    Rotate left:          xrandr --output OUTPUT --rotate left
    Rotate right:        xrandr --output OUTPUT --rotate right
    Rotate inverted:  xrandr --output OUTPUT --rotate inverted
    Rotate normal:    xrandr --output OUTPUT --rotate normal
	
	where OUTPUT would be replaced by one of the outputs shown when you run `xrandr' without any options. You can use "xrandr -q" to know your OUTPUT name. 
BTW: The Xrandr Guide: http://www.thinkwiki.org/wiki/Xorg_RandR_1.2#Note_for_Ubuntu_Gutsy_users

        The `-o' options is a RandR 1.0/1.1 command and may exercise a
different driver code path from the RandR 1.2 `--rotate' option. RandR
1.2 introduced per-output rotation which wasn't available in earlier
versions. Consequently, `xrandr -o' is equivalent to rotating the entire
desktop (composed of all the outputs) rather than just a specific
output. Depending on the Geode driver's support for multiple outputs and
which outputs are connected, using `xrandr -o' could confuse the driver.

Thanks,
Hunk Cui

-- 
Unable to set rotation on AMD Geode LX800
https://bugs.launchpad.net/bugs/377929
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-video-geode in ubuntu.



References