xf86-video-intel: 2 commits - src/sna/gen2_render.c src/sna/gen4_render.c

Chris Wilson ickle at kemper.freedesktop.org
Sat Nov 10 02:33:31 PST 2012


 src/sna/gen2_render.c |   17 ++++++++++++++---
 src/sna/gen4_render.c |    2 +-
 2 files changed, 15 insertions(+), 4 deletions(-)

New commits:
commit f5d79b202dd448e61ab6ffce26fe9cbf9051d770
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Nov 10 10:30:04 2012 +0000

    sna/gen2: Add a modicum of fallback DBG
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=56785
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 024b107..6e51c18 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);
commit 27327633138dce159ca2e91fe5eac1565bd45e1c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Nov 9 17:08:01 2012 +0000

    sna/gen4: Only 965gm suffers the !snoop restriction
    
    So fixup the bogus assertion for g4x
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 6d44a4a..be97458 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -649,7 +649,7 @@ gen4_bind_bo(struct sna *sna,
 	uint32_t domains;
 	uint16_t offset;
 
-	assert(!kgem_bo_is_snoop(bo));
+	assert(sna->kgem.gen != 40 || !kgem_bo_is_snoop(bo));
 
 	/* After the first bind, we manage the cache domains within the batch */
 	offset = kgem_bo_get_binding(bo, format);


More information about the xorg-commit mailing list