From 6d629d4aa211d098fe9541d0b644cf67ee1d7019 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 8 Oct 2009 14:40:19 +0200 Subject: st/xorg: More fallback debugging Change the fallback debugging around a bit and do the old commit correctly --- src/gallium/state_trackers/xorg/xorg_composite.c | 11 ++++--- src/gallium/state_trackers/xorg/xorg_exa.c | 42 ++++++++++++------------ src/gallium/state_trackers/xorg/xorg_exa.h | 14 ++++---- 3 files changed, 35 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c index 7037d17e43..98e9933f72 100644 --- a/src/gallium/state_trackers/xorg/xorg_composite.c +++ b/src/gallium/state_trackers/xorg/xorg_composite.c @@ -283,6 +283,9 @@ boolean xorg_composite_accelerated(int op, PicturePtr pMaskPicture, PicturePtr pDstPicture) { + ScreenPtr pScreen = pDstPicture->pDrawable->pScreen; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + modesettingPtr ms = modesettingPTR(pScrn); unsigned i; unsigned accel_ops_count = sizeof(accelerated_ops)/sizeof(struct acceleration_info); @@ -290,11 +293,11 @@ boolean xorg_composite_accelerated(int op, if (pSrcPicture->pSourcePict) { /* Gradients not yet supported */ if (pSrcPicture->pSourcePict->type != SourcePictTypeSolidFill) - return FALSE; + XORG_FALLBACK("gradients not yet supported"); /* Solid source with mask not yet handled properly */ if (pMaskPicture) - return FALSE; + XORG_FALLBACK("solid source with mask not yet handled properly"); } for (i = 0; i < accel_ops_count; ++i) { @@ -306,11 +309,11 @@ boolean xorg_composite_accelerated(int op, (!accelerated_ops[i].with_mask || (pMaskPicture->componentAlpha && !accelerated_ops[i].component_alpha)))) - return FALSE; + XORG_FALLBACK("component alpha unsupported"); return TRUE; } } - return FALSE; + XORG_FALLBACK("unsupported operation"); } static void diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c index 8920b24307..3f0ed3d980 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.c +++ b/src/gallium/state_trackers/xorg/xorg_exa.c @@ -294,21 +294,21 @@ ExaPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planeMask, Pixel fg) debug_printf("ExaPrepareSolid(0x%x)\n", fg); #endif if (!exa->pipe) - XORG_FALLBACK("solid accle not enabled"); + XORG_FALLBACK("accle not enabled"); if (!priv || !priv->tex) - XORG_FALLBACK("solid !priv || !priv->tex"); + XORG_FALLBACK("%s", !priv ? "!priv" : "!priv->tex"); if (!EXA_PM_IS_SOLID(&pPixmap->drawable, planeMask)) - XORG_FALLBACK("solid planeMask is not solid"); + XORG_FALLBACK("planeMask is not solid"); if (alu != GXcopy) - XORG_FALLBACK("solid not GXcopy"); + XORG_FALLBACK("not GXcopy"); if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) { - XORG_FALLBACK("solid bad format %s", pf_name(priv->tex->format)); + XORG_FALLBACK("format %s", pf_name(priv->tex->format)); } #if DEBUG_SOLID @@ -390,29 +390,29 @@ ExaPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, debug_printf("ExaPrepareCopy\n"); #endif if (!exa->pipe) - XORG_FALLBACK("copy accle not enabled"); + XORG_FALLBACK("accle not enabled"); - if (!priv || !src_priv) - XORG_FALLBACK("copy !priv || !src_priv"); + if (!priv || !priv->tex) + XORG_FALLBACK("pDst %s", !priv ? "!priv" : "!priv->tex"); - if (!priv->tex || !src_priv->tex) - XORG_FALLBACK("copy !priv->tex || !src_priv->tex"); + if (!src_priv || !src_priv->tex) + XORG_FALLBACK("pSrc %s", !src_priv ? "!priv" : "!priv->tex"); if (!EXA_PM_IS_SOLID(&pSrcPixmap->drawable, planeMask)) - XORG_FALLBACK("copy planeMask is not solid"); + XORG_FALLBACK("planeMask is not solid"); if (alu != GXcopy) - XORG_FALLBACK("copy alu not GXcopy"); + XORG_FALLBACK("alu not GXcopy"); if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) - XORG_FALLBACK("copy pDst format %s", pf_name(priv->tex->format)); + XORG_FALLBACK("pDst format %s", pf_name(priv->tex->format)); if (!exa->scrn->is_format_supported(exa->scrn, src_priv->tex->format, src_priv->tex->target, PIPE_TEXTURE_USAGE_SAMPLER, 0)) - XORG_FALLBACK("copy pSrc format %s", pf_name(src_priv->tex->format)); + XORG_FALLBACK("pSrc format %s", pf_name(src_priv->tex->format)); exa->copy.src = src_priv; exa->copy.dst = priv; @@ -459,37 +459,37 @@ ExaPrepareComposite(int op, PicturePtr pSrcPicture, debug_printf("ExaPrepareComposite\n"); #endif if (!exa->pipe) - XORG_FALLBACK("comp accle not enabled"); + XORG_FALLBACK("accle not enabled"); priv = exaGetPixmapDriverPrivate(pDst); if (!priv || !priv->tex) - XORG_FALLBACK("comp pDst %s", !priv ? "!priv" : "!priv->tex"); + XORG_FALLBACK("pDst %s", !priv ? "!priv" : "!priv->tex"); if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, PIPE_TEXTURE_USAGE_RENDER_TARGET, 0)) - XORG_FALLBACK("copy pDst format: %s", pf_name(priv->tex->format)); + XORG_FALLBACK("pDst format: %s", pf_name(priv->tex->format)); if (pSrc) { priv = exaGetPixmapDriverPrivate(pSrc); if (!priv || !priv->tex) - XORG_FALLBACK("comp pSrc %s", !priv ? "!priv" : "!priv->tex"); + XORG_FALLBACK("pSrc %s", !priv ? "!priv" : "!priv->tex"); if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, PIPE_TEXTURE_USAGE_SAMPLER, 0)) - XORG_FALLBACK("copy pSrc format: %s", pf_name(priv->tex->format)); + XORG_FALLBACK("pSrc format: %s", pf_name(priv->tex->format)); } if (pMask) { priv = exaGetPixmapDriverPrivate(pMask); if (!priv || !priv->tex) - XORG_FALLBACK("comp pMask %s", !priv ? "!priv" : "!priv->tex"); + XORG_FALLBACK("pMask %s", !priv ? "!priv" : "!priv->tex"); if (!exa->scrn->is_format_supported(exa->scrn, priv->tex->format, priv->tex->target, PIPE_TEXTURE_USAGE_SAMPLER, 0)) - XORG_FALLBACK("copy pMask format: %s", pf_name(priv->tex->format)); + XORG_FALLBACK("pMask format: %s", pf_name(priv->tex->format)); } #if DISABLE_ACCEL diff --git a/src/gallium/state_trackers/xorg/xorg_exa.h b/src/gallium/state_trackers/xorg/xorg_exa.h index d3f25ca844..28834e3ef5 100644 --- a/src/gallium/state_trackers/xorg/xorg_exa.h +++ b/src/gallium/state_trackers/xorg/xorg_exa.h @@ -50,13 +50,13 @@ struct exa_pixmap_priv unsigned map_count; }; -#define XORG_FALLBACK(s, arg...) \ -do { \ - if (ms->debug_fallback) { \ - xf86DrvMsg(pScrn->scrnIndex, X_INFO, \ - "fallback: " s "\n", ##arg); \ - } \ - return FALSE; \ +#define XORG_FALLBACK(s, arg...) \ +do { \ + if (ms->debug_fallback) { \ + xf86DrvMsg(pScrn->scrnIndex, X_INFO, \ + "%s fallback " s "\n", __FUNCTION__, ##arg); \ + } \ + return FALSE; \ } while(0) struct pipe_surface * -- cgit v1.2.3