summaryrefslogtreecommitdiff
path: root/src/sna/gen2_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-11-10 10:30:04 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-11-10 10:30:04 +0000
commitf5d79b202dd448e61ab6ffce26fe9cbf9051d770 (patch)
tree9d594137c16a88b566e891157097efca3bda4194 /src/sna/gen2_render.c
parent27327633138dce159ca2e91fe5eac1565bd45e1c (diff)
sna/gen2: Add a modicum of fallback DBG
References: https://bugs.freedesktop.org/show_bug.cgi?id=56785 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen2_render.c')
-rw-r--r--src/sna/gen2_render.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 024b1076..6e51c18a 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -1816,6 +1816,8 @@ gen2_render_composite(struct sna *sna,
dst_x, dst_y,
dst->polyMode == PolyModePrecise)) {
case -1:
+ DBG(("%s: fallback -- unable to prepare source\n",
+ __FUNCTION__));
goto cleanup_dst;
case 0:
gen2_composite_solid_init(sna, &tmp->src, 0);
@@ -1839,6 +1841,8 @@ gen2_render_composite(struct sna *sna,
dst_x, dst_y,
dst->polyMode == PolyModePrecise)) {
case -1:
+ DBG(("%s: fallback -- unable to prepare mask\n",
+ __FUNCTION__));
goto cleanup_src;
case 0:
gen2_composite_solid_init(sna, &tmp->mask, 0);
@@ -1855,8 +1859,12 @@ gen2_render_composite(struct sna *sna,
tmp->has_component_alpha = true;
if (gen2_blend_op[op].src_alpha &&
(gen2_blend_op[op].src_blend != BLENDFACTOR_ZERO)) {
- if (op != PictOpOver)
- return false;
+ if (op != PictOpOver) {
+ DBG(("%s: fallback -- unsupported CA blend (src_blend=%d)\n",
+ __FUNCTION__,
+ gen2_blend_op[op].src_blend));
+ goto cleanup_dst;
+ }
tmp->need_magic_ca_pass = true;
tmp->op = PictOpOutReverse;
@@ -1903,8 +1911,11 @@ gen2_render_composite(struct sna *sna,
kgem_submit(&sna->kgem);
if (!kgem_check_bo(&sna->kgem,
tmp->dst.bo, tmp->src.bo, tmp->mask.bo,
- NULL))
+ NULL)) {
+ DBG(("%s: fallback, operation does not fit into GTT\n",
+ __FUNCTION__));
goto cleanup_mask;
+ }
}
gen2_emit_composite_state(sna, tmp);