Avoid an EXA init segfault.

Don't allocate each VRAM buffer with a 16MB alignment.
This commit is contained in:
Thomas Hellstrom 2008-06-30 18:59:13 +01:00 committed by Alan Hourihane
parent a65888d678
commit 9c4c323d50

View File

@ -168,10 +168,10 @@ exa_buffer_create(struct pipe_winsys *pws,
ErrorF("SIZE %d %d\n", size, alignment); ErrorF("SIZE %d %d\n", size, alignment);
if (!buffer->bo.handle) { if (!buffer->bo.handle) {
// buffer->data = align_malloc(size, alignment); // buffer->data = align_malloc(size, alignment);
drmBOCreate(exa_winsys->ms->fd, size, 4096, NULL, drmBOCreate(exa_winsys->ms->fd, size, 0, NULL,
DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE | DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE |
DRM_BO_FLAG_SHAREABLE | DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_SHAREABLE | DRM_BO_FLAG_MEM_TT |
DRM_BO_FLAG_MAPPABLE | DRM_BO_FLAG_CACHED_MAPPED | flags, DRM_BO_FLAG_MAPPABLE | flags,
0, &buffer->bo); 0, &buffer->bo);
} }
@ -767,7 +767,7 @@ ExaInit(ScrnInfoPtr pScrn)
{ {
modesettingPtr ms = modesettingPTR(pScrn); modesettingPtr ms = modesettingPTR(pScrn);
struct exa_entity *exa; struct exa_entity *exa;
ExaDriverPtr pExa = exa->pExa; ExaDriverPtr pExa;
exa = xcalloc(1, sizeof(struct exa_entity)); exa = xcalloc(1, sizeof(struct exa_entity));
if (!exa) if (!exa)