st/xorg: reorder exa context creation and use screen param queries

Gives the x-server a more accurate description of the exa hardware
capabilities.

v2: drop NPOT check

Signed-off-by: Lucas Stach <dev@lynxeye.de>
This commit is contained in:
Lucas Stach
2012-07-18 16:07:27 +02:00
committed by Michel Dänzer
parent 229a1a7e4d
commit 70f0eda127
+8 -7
View File
@@ -991,6 +991,11 @@ xorg_exa_init(ScrnInfoPtr pScrn, Bool accel)
if (!exa)
return NULL;
exa->scrn = ms->screen;
exa->pipe = exa->scrn->context_create(exa->scrn, NULL);
if (exa->pipe == NULL)
goto out_err;
pExa = exaDriverAlloc();
if (!pExa) {
goto out_err;
@@ -1012,8 +1017,9 @@ xorg_exa_init(ScrnInfoPtr pScrn, Bool accel)
#ifdef EXA_MIXED_PIXMAPS
pExa->flags |= EXA_MIXED_PIXMAPS;
#endif
pExa->maxX = 8191; /* FIXME */
pExa->maxY = 8191; /* FIXME */
pExa->maxX = pExa->maxY =
1 << (exa->scrn->get_param(exa->scrn, PIPE_CAP_MAX_TEXTURE_2D_LEVELS) - 1);
pExa->WaitMarker = ExaWaitMarker;
pExa->MarkSync = ExaMarkSync;
@@ -1040,11 +1046,6 @@ xorg_exa_init(ScrnInfoPtr pScrn, Bool accel)
goto out_err;
}
exa->scrn = ms->screen;
exa->pipe = exa->scrn->context_create(exa->scrn, NULL);
if (exa->pipe == NULL)
goto out_err;
/* Share context with DRI */
ms->ctx = exa->pipe;
if (cust && cust->winsys_context_throttle)