sna: Only try to enable DRI2 if the module is available at runtime
Blatantly cribbed from Michel Danzer's patch for ati... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
b5d6a57f12
commit
0f03f7b435
|
|
@ -252,7 +252,8 @@ struct sna {
|
|||
} render_state;
|
||||
uint32_t have_render;
|
||||
|
||||
Bool directRenderingOpen;
|
||||
bool dri_available;
|
||||
bool dri_open;
|
||||
char *deviceName;
|
||||
|
||||
/* Broken-out options. */
|
||||
|
|
|
|||
|
|
@ -549,8 +549,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
|
|||
/* Set display resolution */
|
||||
xf86SetDpi(scrn, 0, 0);
|
||||
|
||||
/* Load the dri2 module if requested. */
|
||||
xf86LoadSubModule(scrn, "dri2");
|
||||
sna->dri_available = !!xf86LoadSubModule(scrn, "dri2");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -767,9 +766,9 @@ static Bool sna_close_screen(CLOSE_SCREEN_ARGS_DECL)
|
|||
|
||||
free(screen->visuals);
|
||||
|
||||
if (sna->directRenderingOpen) {
|
||||
if (sna->dri_open) {
|
||||
sna_dri_close(sna, screen);
|
||||
sna->directRenderingOpen = FALSE;
|
||||
sna->dri_open = false;
|
||||
}
|
||||
|
||||
if (sna->front) {
|
||||
|
|
@ -941,8 +940,9 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
|
|||
xf86DPMSInit(screen, xf86DPMSSet, 0);
|
||||
|
||||
sna_video_init(sna, screen);
|
||||
sna->directRenderingOpen = sna_dri_open(sna, screen);
|
||||
if (sna->directRenderingOpen)
|
||||
if (sna->dri_available)
|
||||
sna->dri_open = sna_dri_open(sna, screen);
|
||||
if (sna->dri_open)
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
"direct rendering: DRI2 Enabled\n");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue