xf86-video-intel: src/sna/sna_accel.c

Chris Wilson ickle at kemper.freedesktop.org
Sun Jul 28 12:20:58 PDT 2013


 src/sna/sna_accel.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit b0826907dd7844c03080421d79e5f927b1245833
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sun Jul 28 18:32:47 2013 +0100

    sna: Fix limit on stipples to only use immediate operands for <= 32 dwords
    
    The check was still based on bytes after the len had been converted to
    dwords.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 8a90bb4..46de0f3 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -6863,6 +6863,7 @@ sna_copy_bitmap_blt(DrawablePtr _bitmap, DrawablePtr drawable, GCPtr gc,
 		src_stride = bstride*bh;
 		if (src_stride <= 128) {
 			src_stride = ALIGN(src_stride, 8) / 4;
+			assert(src_stride <= 32);
 			if (!kgem_check_batch(&sna->kgem, 7+src_stride) ||
 			    !kgem_check_bo_fenced(&sna->kgem, arg->bo) ||
 			    !kgem_check_reloc(&sna->kgem, 1)) {
@@ -11603,6 +11604,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 			src_stride = bstride*bh;
 			if (src_stride <= 128) {
 				src_stride = ALIGN(src_stride, 8) / 4;
+				assert(src_stride <= 32);
 				if (!kgem_check_batch(&sna->kgem, 7+src_stride) ||
 				    !kgem_check_bo_fenced(&sna->kgem, bo) ||
 				    !kgem_check_reloc(&sna->kgem, 1)) {
@@ -11749,6 +11751,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 				src_stride = bstride*bh;
 				if (src_stride <= 128) {
 					src_stride = ALIGN(src_stride, 8) / 4;
+					assert(src_stride <= 32);
 					if (!kgem_check_batch(&sna->kgem, 7+src_stride) ||
 					    !kgem_check_bo_fenced(&sna->kgem, bo) ||
 					    !kgem_check_reloc(&sna->kgem, 1)) {
@@ -11893,6 +11896,7 @@ sna_poly_fill_rect_stippled_1_blt(DrawablePtr drawable,
 					src_stride = bstride*bh;
 					if (src_stride <= 128) {
 						src_stride = ALIGN(src_stride, 8) / 4;
+						assert(src_stride <= 32);
 						if (!kgem_check_batch(&sna->kgem, 7+src_stride) ||
 						    !kgem_check_bo_fenced(&sna->kgem, bo) ||
 						    !kgem_check_reloc(&sna->kgem, 1)) {
@@ -12046,6 +12050,7 @@ sna_poly_fill_rect_stippled_n_box__imm(struct sna *sna,
 
 			len = bw*bh;
 			len = ALIGN(len, 8) / 4;
+			assert(len <= 32);
 			if (!kgem_check_batch(&sna->kgem, 7+len) ||
 			    !kgem_check_bo_fenced(&sna->kgem, bo) ||
 			    !kgem_check_reloc(&sna->kgem, 1)) {
@@ -12163,7 +12168,7 @@ sna_poly_fill_rect_stippled_n_box(struct sna *sna,
 
 			b = sna->kgem.batch + sna->kgem.nbatch;
 
-			if (!use_tile && len <= 128) {
+			if (!use_tile && len <= 32) {
 				uint8_t *dst, *src;
 
 				b[0] = XY_MONO_SRC_COPY_IMM;


More information about the xorg-commit mailing list