xserver/hw/kdrive/src koffscreen.c,1.16,1.17

Damien Ciabrini <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Wed, 6 Jul 2005 06:57:43 -0700 (PDT)
Newsgroups gmane.comp.freedesktop.xserver.cvs
Message-ID <[email protected]>
Committed by: damienc

Update of /cvs/xserver/xserver/hw/kdrive/src
In directory gabe:/tmp/cvs-serv13860/hw/kdrive/src

Modified Files:
	koffscreen.c 
Log Message:
Fix offset alignment code in the offscreen memory allocator to prevent
textures from being allocated in the next free memory area.


Index: koffscreen.c
===================================================================
RCS file: /cvs/xserver/xserver/hw/kdrive/src/koffscreen.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- koffscreen.c	29 Jun 2004 20:37:51 -0000	1.16
+++ koffscreen.c	6 Jul 2005 13:57:41 -0000	1.17
@@ -46,11 +46,11 @@
     for (area = pScreenPriv->off_screen_areas; area; area = area->next)
     {
 	if (prev)
-	    assert (prev->area.offset + prev->area.size == area->area.offset);
+	    assert (prev->offset + prev->size == area->offset);
 	    
 	prev = area;
     }
-    assert (prev->area.offset + prev->area.size == pScreenPriv->screen->memory_size);
+    assert (prev->offset + prev->size == pScreenPriv->screen->memory_size);
 }
 #else
 #define KdOffscreenValidate(s)
@@ -214,7 +214,11 @@
     area->score = 0;
 
     area->save_offset = area->offset;
-    area->offset = (area->offset + align - 1) & ~(align - 1);
+    {
+	int tmp = area->offset % align;
+	if (tmp)
+	    area->offset += (align - tmp);
+    }
 
     KdOffscreenValidate (pScreen);