Fix offset alignment code in the offscreen memory allocator to prevent

textures from being allocated in the next free memory area.
This commit is contained in:
Damien Ciabrini 2005-07-06 13:57:41 +00:00
parent baa99be190
commit c48f631cdb

View File

@ -46,11 +46,11 @@ KdOffscreenValidate (ScreenPtr pScreen)
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 @@ KdOffscreenAlloc (ScreenPtr pScreen, int size, int align,
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);