Lines 559-566
Link Here
|
559 |
if (dirty->rotation != RR_Rotate_0) { |
559 |
if (dirty->rotation != RR_Rotate_0) { |
560 |
dstregion = transform_region(damageregion, |
560 |
dstregion = transform_region(damageregion, |
561 |
&dirty->f_inverse, |
561 |
&dirty->f_inverse, |
562 |
dirty->slave_dst->drawable.width, |
562 |
dirty->secondary_dst->drawable.width, |
563 |
dirty->slave_dst->drawable.height); |
563 |
dirty->secondary_dst->drawable.height); |
564 |
} else |
564 |
} else |
565 |
#endif |
565 |
#endif |
566 |
{ |
566 |
{ |
Lines 568-574
Link Here
|
568 |
|
568 |
|
569 |
dstregion = RegionDuplicate(damageregion); |
569 |
dstregion = RegionDuplicate(damageregion); |
570 |
RegionTranslate(dstregion, -dirty->x, -dirty->y); |
570 |
RegionTranslate(dstregion, -dirty->x, -dirty->y); |
571 |
PixmapRegionInit(&pixregion, dirty->slave_dst); |
571 |
PixmapRegionInit(&pixregion, dirty->secondary_dst); |
572 |
RegionIntersect(dstregion, dstregion, &pixregion); |
572 |
RegionIntersect(dstregion, dstregion, &pixregion); |
573 |
RegionUninit(&pixregion); |
573 |
RegionUninit(&pixregion); |
574 |
} |
574 |
} |
Lines 585-592
Link Here
|
585 |
if (RegionNil(region)) |
585 |
if (RegionNil(region)) |
586 |
goto out; |
586 |
goto out; |
587 |
|
587 |
|
588 |
if (dirty->slave_dst->master_pixmap) |
588 |
if (dirty->secondary_dst->primary_pixmap) |
589 |
DamageRegionAppend(&dirty->slave_dst->drawable, region); |
589 |
DamageRegionAppend(&dirty->secondary_dst->drawable, region); |
590 |
|
590 |
|
591 |
#ifdef HAS_DIRTYTRACKING_ROTATION |
591 |
#ifdef HAS_DIRTYTRACKING_ROTATION |
592 |
PixmapSyncDirtyHelper(dirty); |
592 |
PixmapSyncDirtyHelper(dirty); |
Lines 595-602
Link Here
|
595 |
#endif |
595 |
#endif |
596 |
|
596 |
|
597 |
radeon_cs_flush_indirect(src_scrn); |
597 |
radeon_cs_flush_indirect(src_scrn); |
598 |
if (dirty->slave_dst->master_pixmap) |
598 |
if (dirty->secondary_dst->primary_pixmap) |
599 |
DamageRegionProcessPending(&dirty->slave_dst->drawable); |
599 |
DamageRegionProcessPending(&dirty->secondary_dst->drawable); |
600 |
|
600 |
|
601 |
out: |
601 |
out: |
602 |
DamageEmpty(dirty->damage); |
602 |
DamageEmpty(dirty->damage); |
Lines 613-624
Link Here
|
613 |
void |
613 |
void |
614 |
radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
614 |
radeon_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
615 |
{ |
615 |
{ |
616 |
ScreenPtr master_screen = radeon_dirty_master(dirty); |
616 |
ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
617 |
PixmapDirtyUpdatePtr ent; |
617 |
PixmapDirtyUpdatePtr ent; |
618 |
RegionPtr region; |
618 |
RegionPtr region; |
619 |
|
619 |
|
620 |
xorg_list_for_each_entry(ent, &master_screen->pixmap_dirty_list, ent) { |
620 |
xorg_list_for_each_entry(ent, &primary_screen->pixmap_dirty_list, ent) { |
621 |
if (!radeon_dirty_src_equals(dirty, ent->slave_dst)) |
621 |
if (!radeon_dirty_src_equals(dirty, ent->secondary_dst)) |
622 |
continue; |
622 |
continue; |
623 |
|
623 |
|
624 |
region = dirty_region(ent); |
624 |
region = dirty_region(ent); |
Lines 631-675
Link Here
|
631 |
#if HAS_SYNC_SHARED_PIXMAP |
631 |
#if HAS_SYNC_SHARED_PIXMAP |
632 |
|
632 |
|
633 |
static Bool |
633 |
static Bool |
634 |
master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
634 |
primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
635 |
{ |
635 |
{ |
636 |
ScreenPtr master_screen = radeon_dirty_master(dirty); |
636 |
ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
637 |
|
637 |
|
638 |
return !!master_screen->SyncSharedPixmap; |
638 |
return !!primary_screen->SyncSharedPixmap; |
639 |
} |
639 |
} |
640 |
|
640 |
|
641 |
static Bool |
641 |
static Bool |
642 |
slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
642 |
secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
643 |
{ |
643 |
{ |
644 |
ScreenPtr slave_screen = dirty->slave_dst->drawable.pScreen; |
644 |
ScreenPtr secondary_screen = dirty->secondary_dst->drawable.pScreen; |
645 |
|
645 |
|
646 |
return !!slave_screen->SyncSharedPixmap; |
646 |
return !!secondary_screen->SyncSharedPixmap; |
647 |
} |
647 |
} |
648 |
|
648 |
|
649 |
static void |
649 |
static void |
650 |
call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
650 |
call_sync_shared_pixmap(PixmapDirtyUpdatePtr dirty) |
651 |
{ |
651 |
{ |
652 |
ScreenPtr master_screen = radeon_dirty_master(dirty); |
652 |
ScreenPtr primary_screen = radeon_dirty_primary(dirty); |
653 |
|
653 |
|
654 |
master_screen->SyncSharedPixmap(dirty); |
654 |
primary_screen->SyncSharedPixmap(dirty); |
655 |
} |
655 |
} |
656 |
|
656 |
|
657 |
#else /* !HAS_SYNC_SHARED_PIXMAP */ |
657 |
#else /* !HAS_SYNC_SHARED_PIXMAP */ |
658 |
|
658 |
|
659 |
static Bool |
659 |
static Bool |
660 |
master_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
660 |
primary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
661 |
{ |
661 |
{ |
662 |
ScrnInfoPtr master_scrn = xf86ScreenToScrn(radeon_dirty_master(dirty)); |
662 |
ScrnInfoPtr primary_scrn = xf86ScreenToScrn(radeon_dirty_primary(dirty)); |
663 |
|
663 |
|
664 |
return master_scrn->driverName == scrn->driverName; |
664 |
return primary_scrn->driverName == scrn->driverName; |
665 |
} |
665 |
} |
666 |
|
666 |
|
667 |
static Bool |
667 |
static Bool |
668 |
slave_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
668 |
secondary_has_sync_shared_pixmap(ScrnInfoPtr scrn, PixmapDirtyUpdatePtr dirty) |
669 |
{ |
669 |
{ |
670 |
ScrnInfoPtr slave_scrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen); |
670 |
ScrnInfoPtr secondary_scrn = xf86ScreenToScrn(dirty->secondary_dst->drawable.pScreen); |
671 |
|
671 |
|
672 |
return slave_scrn->driverName == scrn->driverName; |
672 |
return secondary_scrn->driverName == scrn->driverName; |
673 |
} |
673 |
} |
674 |
|
674 |
|
675 |
static void |
675 |
static void |
Lines 684-695
Link Here
|
684 |
static xf86CrtcPtr |
684 |
static xf86CrtcPtr |
685 |
radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty) |
685 |
radeon_prime_dirty_to_crtc(PixmapDirtyUpdatePtr dirty) |
686 |
{ |
686 |
{ |
687 |
ScreenPtr screen = dirty->slave_dst->drawable.pScreen; |
687 |
ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; |
688 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
688 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
689 |
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
689 |
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
690 |
int c; |
690 |
int c; |
691 |
|
691 |
|
692 |
/* Find the CRTC which is scanning out from this slave pixmap */ |
692 |
/* Find the CRTC which is scanning out from this secondary pixmap */ |
693 |
for (c = 0; c < xf86_config->num_crtc; c++) { |
693 |
for (c = 0; c < xf86_config->num_crtc; c++) { |
694 |
xf86CrtcPtr xf86_crtc = xf86_config->crtc[c]; |
694 |
xf86CrtcPtr xf86_crtc = xf86_config->crtc[c]; |
695 |
drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; |
695 |
drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private; |
Lines 714-720
Link Here
|
714 |
if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { |
714 |
if (radeon_dirty_src_equals(dirty, drmmode_crtc->prime_scanout_pixmap)) { |
715 |
RegionPtr region; |
715 |
RegionPtr region; |
716 |
|
716 |
|
717 |
if (master_has_sync_shared_pixmap(scrn, dirty)) |
717 |
if (primary_has_sync_shared_pixmap(scrn, dirty)) |
718 |
call_sync_shared_pixmap(dirty); |
718 |
call_sync_shared_pixmap(dirty); |
719 |
|
719 |
|
720 |
region = dirty_region(dirty); |
720 |
region = dirty_region(dirty); |
Lines 727-733
Link Here
|
727 |
radeon_cs_flush_indirect(scrn); |
727 |
radeon_cs_flush_indirect(scrn); |
728 |
RegionCopy(&drmmode_crtc->scanout_last_region, region); |
728 |
RegionCopy(&drmmode_crtc->scanout_last_region, region); |
729 |
RegionTranslate(region, -crtc->x, -crtc->y); |
729 |
RegionTranslate(region, -crtc->x, -crtc->y); |
730 |
dirty->slave_dst = drmmode_crtc->scanout[scanout_id].pixmap; |
730 |
dirty->secondary_dst = drmmode_crtc->scanout[scanout_id].pixmap; |
731 |
} |
731 |
} |
732 |
|
732 |
|
733 |
redisplay_dirty(dirty, region); |
733 |
redisplay_dirty(dirty, region); |
Lines 754-760
Link Here
|
754 |
static void |
754 |
static void |
755 |
radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) |
755 |
radeon_prime_scanout_update(PixmapDirtyUpdatePtr dirty) |
756 |
{ |
756 |
{ |
757 |
ScreenPtr screen = dirty->slave_dst->drawable.pScreen; |
757 |
ScreenPtr screen = dirty->secondary_dst->drawable.pScreen; |
758 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
758 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
759 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
759 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
760 |
xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty); |
760 |
xf86CrtcPtr xf86_crtc = radeon_prime_dirty_to_crtc(dirty); |
Lines 818-824
Link Here
|
818 |
static void |
818 |
static void |
819 |
radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent) |
819 |
radeon_prime_scanout_flip(PixmapDirtyUpdatePtr ent) |
820 |
{ |
820 |
{ |
821 |
ScreenPtr screen = ent->slave_dst->drawable.pScreen; |
821 |
ScreenPtr screen = ent->secondary_dst->drawable.pScreen; |
822 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
822 |
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); |
823 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
823 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(scrn); |
824 |
xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent); |
824 |
xf86CrtcPtr crtc = radeon_prime_dirty_to_crtc(ent); |
Lines 893-903
Link Here
|
893 |
if (screen->isGPU) { |
893 |
if (screen->isGPU) { |
894 |
PixmapDirtyUpdatePtr region_ent = ent; |
894 |
PixmapDirtyUpdatePtr region_ent = ent; |
895 |
|
895 |
|
896 |
if (master_has_sync_shared_pixmap(scrn, ent)) { |
896 |
if (primary_has_sync_shared_pixmap(scrn, ent)) { |
897 |
ScreenPtr master_screen = radeon_dirty_master(ent); |
897 |
ScreenPtr primary_screen = radeon_dirty_primary(ent); |
898 |
|
898 |
|
899 |
xorg_list_for_each_entry(region_ent, &master_screen->pixmap_dirty_list, ent) { |
899 |
xorg_list_for_each_entry(region_ent, &primary_screen->pixmap_dirty_list, ent) { |
900 |
if (radeon_dirty_src_equals(ent, region_ent->slave_dst)) |
900 |
if (radeon_dirty_src_equals(ent, region_ent->secondary_dst)) |
901 |
break; |
901 |
break; |
902 |
} |
902 |
} |
903 |
} |
903 |
} |
Lines 921-927
Link Here
|
921 |
|
921 |
|
922 |
RegionDestroy(region); |
922 |
RegionDestroy(region); |
923 |
} else { |
923 |
} else { |
924 |
if (slave_has_sync_shared_pixmap(scrn, ent)) |
924 |
if (secondary_has_sync_shared_pixmap(scrn, ent)) |
925 |
continue; |
925 |
continue; |
926 |
|
926 |
|
927 |
region = dirty_region(ent); |
927 |
region = dirty_region(ent); |
Lines 1216-1222
Link Here
|
1216 |
(*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); |
1216 |
(*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); |
1217 |
pScreen->BlockHandler = RADEONBlockHandler_KMS; |
1217 |
pScreen->BlockHandler = RADEONBlockHandler_KMS; |
1218 |
|
1218 |
|
1219 |
if (!xf86ScreenToScrn(radeon_master_screen(pScreen))->vtSema) |
1219 |
if (!xf86ScreenToScrn(radeon_primary_screen(pScreen))->vtSema) |
1220 |
return; |
1220 |
return; |
1221 |
|
1221 |
|
1222 |
if (!pScreen->isGPU) |
1222 |
if (!pScreen->isGPU) |
Lines 1498-1504
Link Here
|
1498 |
return TRUE; |
1498 |
return TRUE; |
1499 |
} |
1499 |
} |
1500 |
|
1500 |
|
1501 |
static int radeon_get_drm_master_fd(ScrnInfoPtr pScrn) |
1501 |
static int radeon_get_drm_primary_fd(ScrnInfoPtr pScrn) |
1502 |
{ |
1502 |
{ |
1503 |
RADEONInfoPtr info = RADEONPTR(pScrn); |
1503 |
RADEONInfoPtr info = RADEONPTR(pScrn); |
1504 |
#ifdef XF86_PDEV_SERVER_FD |
1504 |
#ifdef XF86_PDEV_SERVER_FD |
Lines 1530-1536
Link Here
|
1530 |
return fd; |
1530 |
return fd; |
1531 |
} |
1531 |
} |
1532 |
|
1532 |
|
1533 |
static Bool radeon_open_drm_master(ScrnInfoPtr pScrn) |
1533 |
static Bool radeon_open_drm_primary(ScrnInfoPtr pScrn) |
1534 |
{ |
1534 |
{ |
1535 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
1535 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
1536 |
drmSetVersion sv; |
1536 |
drmSetVersion sv; |
Lines 1543-1553
Link Here
|
1543 |
return TRUE; |
1543 |
return TRUE; |
1544 |
} |
1544 |
} |
1545 |
|
1545 |
|
1546 |
pRADEONEnt->fd = radeon_get_drm_master_fd(pScrn); |
1546 |
pRADEONEnt->fd = radeon_get_drm_primary_fd(pScrn); |
1547 |
if (pRADEONEnt->fd == -1) |
1547 |
if (pRADEONEnt->fd == -1) |
1548 |
return FALSE; |
1548 |
return FALSE; |
1549 |
|
1549 |
|
1550 |
/* Check that what we opened was a master or a master-capable FD, |
1550 |
/* Check that what we opened was a primary or a primary-capable FD, |
1551 |
* by setting the version of the interface we'll use to talk to it. |
1551 |
* by setting the version of the interface we'll use to talk to it. |
1552 |
* (see DRIOpenDRMMaster() in DRI1) |
1552 |
* (see DRIOpenDRMMaster() in DRI1) |
1553 |
*/ |
1553 |
*/ |
Lines 1815-1821
Link Here
|
1815 |
if (!RADEONPreInitChipType_KMS(pScrn)) |
1815 |
if (!RADEONPreInitChipType_KMS(pScrn)) |
1816 |
return FALSE; |
1816 |
return FALSE; |
1817 |
|
1817 |
|
1818 |
if (radeon_open_drm_master(pScrn) == FALSE) { |
1818 |
if (radeon_open_drm_primary(pScrn) == FALSE) { |
1819 |
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Kernel modesetting setup failed\n"); |
1819 |
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Kernel modesetting setup failed\n"); |
1820 |
return FALSE; |
1820 |
return FALSE; |
1821 |
} |
1821 |
} |
Lines 2157-2163
Link Here
|
2157 |
return TRUE; |
2157 |
return TRUE; |
2158 |
} |
2158 |
} |
2159 |
|
2159 |
|
2160 |
static Bool radeon_set_drm_master(ScrnInfoPtr pScrn) |
2160 |
static Bool radeon_set_drm_primary(ScrnInfoPtr pScrn) |
2161 |
{ |
2161 |
{ |
2162 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
2162 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
2163 |
int err; |
2163 |
int err; |
Lines 2170-2181
Link Here
|
2170 |
|
2170 |
|
2171 |
err = drmSetMaster(pRADEONEnt->fd); |
2171 |
err = drmSetMaster(pRADEONEnt->fd); |
2172 |
if (err) |
2172 |
if (err) |
2173 |
ErrorF("Unable to retrieve master\n"); |
2173 |
ErrorF("Unable to retrieve primary\n"); |
2174 |
|
2174 |
|
2175 |
return err == 0; |
2175 |
return err == 0; |
2176 |
} |
2176 |
} |
2177 |
|
2177 |
|
2178 |
static void radeon_drop_drm_master(ScrnInfoPtr pScrn) |
2178 |
static void radeon_drop_drm_primary(ScrnInfoPtr pScrn) |
2179 |
{ |
2179 |
{ |
2180 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
2180 |
RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); |
2181 |
|
2181 |
|
Lines 2224-2230
Link Here
|
2224 |
if (info->accel_state->use_vbos) |
2224 |
if (info->accel_state->use_vbos) |
2225 |
radeon_vbo_free_lists(pScrn); |
2225 |
radeon_vbo_free_lists(pScrn); |
2226 |
|
2226 |
|
2227 |
radeon_drop_drm_master(pScrn); |
2227 |
radeon_drop_drm_primary(pScrn); |
2228 |
|
2228 |
|
2229 |
drmmode_fini(pScrn, &info->drmmode); |
2229 |
drmmode_fini(pScrn, &info->drmmode); |
2230 |
if (info->dri2.enabled) |
2230 |
if (info->dri2.enabled) |
Lines 2278-2284
Link Here
|
2278 |
pScrn->defaultVisual)) return FALSE; |
2278 |
pScrn->defaultVisual)) return FALSE; |
2279 |
miSetPixmapDepths (); |
2279 |
miSetPixmapDepths (); |
2280 |
|
2280 |
|
2281 |
if (!radeon_set_drm_master(pScrn)) |
2281 |
if (!radeon_set_drm_primary(pScrn)) |
2282 |
return FALSE; |
2282 |
return FALSE; |
2283 |
|
2283 |
|
2284 |
info->directRenderingEnabled = FALSE; |
2284 |
info->directRenderingEnabled = FALSE; |
Lines 2535-2541
Link Here
|
2535 |
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, |
2535 |
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, |
2536 |
"RADEONEnterVT_KMS\n"); |
2536 |
"RADEONEnterVT_KMS\n"); |
2537 |
|
2537 |
|
2538 |
radeon_set_drm_master(pScrn); |
2538 |
radeon_set_drm_primary(pScrn); |
2539 |
|
2539 |
|
2540 |
if (info->r600_shadow_fb) { |
2540 |
if (info->r600_shadow_fb) { |
2541 |
int base_align = drmmode_get_base_align(pScrn, info->pixel_bytes, 0); |
2541 |
int base_align = drmmode_get_base_align(pScrn, info->pixel_bytes, 0); |
Lines 2560-2566
Link Here
|
2560 |
if (!front_bo) { |
2560 |
if (!front_bo) { |
2561 |
xf86DrvMsg(pScrn->scrnIndex, X_WARNING, |
2561 |
xf86DrvMsg(pScrn->scrnIndex, X_WARNING, |
2562 |
"Failed to allocate new scanout BO after VT switch, " |
2562 |
"Failed to allocate new scanout BO after VT switch, " |
2563 |
"other DRM masters may see screen contents\n"); |
2563 |
"other DRM primarys may see screen contents\n"); |
2564 |
} |
2564 |
} |
2565 |
} |
2565 |
} |
2566 |
|
2566 |
|
Lines 2584-2590
Link Here
|
2584 |
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
2584 |
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); |
2585 |
int c; |
2585 |
int c; |
2586 |
|
2586 |
|
2587 |
if (xf86ScreenToScrn(radeon_master_screen(screen))->vtSema) |
2587 |
if (xf86ScreenToScrn(radeon_primary_screen(screen))->vtSema) |
2588 |
return 0; |
2588 |
return 0; |
2589 |
|
2589 |
|
2590 |
/* Unreference the all-black FB created by RADEONLeaveVT_KMS. After |
2590 |
/* Unreference the all-black FB created by RADEONLeaveVT_KMS. After |
Lines 2720-2726
Link Here
|
2720 |
hide_cursors: |
2720 |
hide_cursors: |
2721 |
xf86_hide_cursors (pScrn); |
2721 |
xf86_hide_cursors (pScrn); |
2722 |
|
2722 |
|
2723 |
radeon_drop_drm_master(pScrn); |
2723 |
radeon_drop_drm_primary(pScrn); |
2724 |
|
2724 |
|
2725 |
info->accel_state->XInited3D = FALSE; |
2725 |
info->accel_state->XInited3D = FALSE; |
2726 |
info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; |
2726 |
info->accel_state->engineMode = EXA_ENGINEMODE_UNKNOWN; |