----- Original Message ----- > On Thu, 10 May 2012 17:08:55 +0200, Michel Dänzer > <[email protected]> wrote : > > > On Don, 2012-05-10 at 16:56 +0200, Anisse Astier wrote: > > > Should make bugs like > > > https://bugs.freedesktop.org/show_bug.cgi?id=48138 > > > easier to diagnose. > > > > FWIW, commit 1e656cd5973bbcf85b63406638ede0bccd65e28f should help > > for > > that already. > > Yes, this patch was inspired by this commit. > I found the source of this bug: missing PCI ids in libdrm's > radeon/r600_pci_ids.h, therefore failed initialization of the drm > surface > manager. Patch to follow. > > > > > > > > Signed-off-by: Anisse Astier <[email protected]> > > > --- > > > src/radeon_kms.c | 5 +++++ > > > 1 files changed, 5 insertions(+), 0 deletions(-) > > > > > > diff --git a/src/radeon_kms.c b/src/radeon_kms.c > > > index edc8fe3..d2089d1 100644 > > > --- a/src/radeon_kms.c > > > +++ b/src/radeon_kms.c > > > @@ -947,6 +947,11 @@ Bool RADEONScreenInit_KMS(int scrnIndex, > > > ScreenPtr pScreen, > > > front_ptr = info->FB; > > > > > > info->surf_man = > > > radeon_surface_manager_new(info->dri->drmFD); > > > + if(!info->surf_man) { > > > + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, > > > + "failed to initialise surface manager"); > > > + return FALSE; > > > + } > > > if (!info->bufmgr) > > > info->bufmgr = > > > radeon_bo_manager_gem_ctor(info->dri->drmFD); > > > if (!info->bufmgr) { > > > > This would probably break pre-R600 cards, which aren't supported by > > the > > surface manager. > Indeed, I didn't know about that. > > How about the version below ? > > > From: Anisse Astier <[email protected]> > Subject: [PATCH] Fail more gracefully when drm surface manager can't > be > initialized > > Should make bugs like > https://bugs.freedesktop.org/show_bug.cgi?id=48138 > easier to diagnose. > > Signed-off-by: Anisse Astier <[email protected]> > --- > src/radeon_kms.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/src/radeon_kms.c b/src/radeon_kms.c > index edc8fe3..c47897e 100644 > --- a/src/radeon_kms.c > +++ b/src/radeon_kms.c > @@ -1256,6 +1256,11 @@ static Bool radeon_setup_kernel_mem(ScreenPtr > pScreen) > screen_size = RADEON_ALIGN(pScrn->virtualY, > drmmode_get_height_align(pScrn, tiling_flags)) * pitch; > base_align = drmmode_get_base_align(pScrn, cpp, tiling_flags); > if (info->ChipFamily >= CHIP_FAMILY_R600) { > + if(!info->surf_man) { > + xf86DrvMsg(pScreen->myNum, X_ERROR, > + "failed to initialise surface manager"); > + return FALSE; > + } > memset(&surface, 0, sizeof(struct radeon_surface)); > surface.npix_x = pScrn->displayWidth; > surface.npix_y = pScrn->virtualY; > -- > 1.7.9 >
Yeah looks good. Cheers, Jerome _______________________________________________ xorg-driver-ati mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-driver-ati
