summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/state_trackers/xorg/xorg_composite.c11
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c42
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.h14
3 files changed, 35 insertions, 32 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index 7037d17e43f..98e9933f72d 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 8920b243079..3f0ed3d9809 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 d3f25ca844b..28834e3ef50 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 *