xf86-video-intel: 2 commits - src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c

Chris Wilson ickle at kemper.freedesktop.org
Thu Nov 29 07:21:07 PST 2012


 src/sna/gen5_render.c |   12 +-----------
 src/sna/gen6_render.c |   14 ++------------
 src/sna/gen7_render.c |   14 ++------------
 3 files changed, 5 insertions(+), 35 deletions(-)

New commits:
commit 2d5d55702bb8eced32d5b8cb3c0cd125fd99d6dc
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Nov 28 15:46:29 2012 +0000

    sna/gen6+: Override PTE cacheability bits for reads
    
    This is primarily useful for enabling the render cache for reads from
    scanouts.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index ecdb579..033f1cb 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1249,7 +1249,7 @@ gen6_bind_bo(struct sna *sna,
 	ss[3] = (gen6_tiling_bits(bo->tiling) |
 		 (bo->pitch - 1) << GEN6_SURFACE_PITCH_SHIFT);
 	ss[4] = 0;
-	ss[5] = 0;
+	ss[5] = is_dst && bo->scanout ? 0 : 3 << 16;
 
 	kgem_bo_set_binding(bo, format, offset);
 
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 063d052..50d1b30 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1370,7 +1370,7 @@ gen7_bind_bo(struct sna *sna,
 		 (height - 1) << GEN7_SURFACE_HEIGHT_SHIFT);
 	ss[3] = (bo->pitch - 1) << GEN7_SURFACE_PITCH_SHIFT;
 	ss[4] = 0;
-	ss[5] = 0;
+	ss[5] = is_dst && bo->scanout ? 0 : 3 << 16;
 	ss[6] = 0;
 	ss[7] = 0;
 	if (sna->kgem.gen == 75)
commit 3ed87945c9e83fefcbda053b616856658bf2ac8e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Nov 28 11:05:40 2012 +0000

    sna/gen5+: Disable max-vbo address
    
    As we do not use this feature, disable it and save the relocation.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 31f6f21..7dd6dee 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -264,11 +264,6 @@ static int gen5_vertex_finish(struct sna *sna)
 					       sna->render.vertex_reloc[i], bo,
 					       I915_GEM_DOMAIN_VERTEX << 16,
 					       0);
-			sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-				kgem_add_reloc(&sna->kgem,
-					       sna->render.vertex_reloc[i]+1, bo,
-					       I915_GEM_DOMAIN_VERTEX << 16,
-					       sna->render.vertex_used * 4 - 1);
 		}
 
 		sna->render.nvertex_reloc = 0;
@@ -367,11 +362,6 @@ static void gen5_vertex_close(struct sna *sna)
 				       sna->render.vertex_reloc[i], bo,
 				       I915_GEM_DOMAIN_VERTEX << 16,
 				       delta);
-		sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-			kgem_add_reloc(&sna->kgem,
-				       sna->render.vertex_reloc[i]+1, bo,
-				       I915_GEM_DOMAIN_VERTEX << 16,
-				       delta + sna->render.vertex_used * 4 - 1);
 	}
 	sna->render.nvertex_reloc = 0;
 
@@ -974,7 +964,7 @@ static void gen5_emit_vertex_buffer(struct sna *sna,
 		  (4*op->floats_per_vertex << VB0_BUFFER_PITCH_SHIFT));
 	sna->render.vertex_reloc[sna->render.nvertex_reloc++] = sna->kgem.nbatch;
 	OUT_BATCH(0);
-	OUT_BATCH(0);
+	OUT_BATCH(~0); /* max address: disabled */
 	OUT_BATCH(0);
 
 	sna->render_state.gen5.vb_id |= 1 << id;
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 6cc1a7d..ecdb579 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -989,11 +989,6 @@ static int gen6_vertex_finish(struct sna *sna)
 					       sna->render.vertex_reloc[i], bo,
 					       I915_GEM_DOMAIN_VERTEX << 16,
 					       0);
-			sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-				kgem_add_reloc(&sna->kgem,
-					       sna->render.vertex_reloc[i]+1, bo,
-					       I915_GEM_DOMAIN_VERTEX << 16,
-					       sna->render.vertex_used * 4 - 1);
 		}
 
 		sna->render.nvertex_reloc = 0;
@@ -1090,11 +1085,6 @@ static void gen6_vertex_close(struct sna *sna)
 				       sna->render.vertex_reloc[i], bo,
 				       I915_GEM_DOMAIN_VERTEX << 16,
 				       delta);
-		sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-			kgem_add_reloc(&sna->kgem,
-				       sna->render.vertex_reloc[i]+1, bo,
-				       I915_GEM_DOMAIN_VERTEX << 16,
-				       delta + sna->render.vertex_used * 4 - 1);
 	}
 	sna->render.nvertex_reloc = 0;
 
@@ -1529,7 +1519,7 @@ static void gen6_emit_vertex_buffer(struct sna *sna,
 		  4*op->floats_per_vertex << VB0_BUFFER_PITCH_SHIFT);
 	sna->render.vertex_reloc[sna->render.nvertex_reloc++] = sna->kgem.nbatch;
 	OUT_BATCH(0);
-	OUT_BATCH(0);
+	OUT_BATCH(~0); /* max address: disabled */
 	OUT_BATCH(0);
 
 	sna->render_state.gen6.vb_id |= 1 << id;
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index a106a18..063d052 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1132,11 +1132,6 @@ static int gen7_vertex_finish(struct sna *sna)
 					       sna->render.vertex_reloc[i], bo,
 					       I915_GEM_DOMAIN_VERTEX << 16,
 					       0);
-			sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-				kgem_add_reloc(&sna->kgem,
-					       sna->render.vertex_reloc[i]+1, bo,
-					       I915_GEM_DOMAIN_VERTEX << 16,
-					       sna->render.vertex_used * 4 - 1);
 		}
 
 		sna->render.nvertex_reloc = 0;
@@ -1227,11 +1222,6 @@ static void gen7_vertex_close(struct sna *sna)
 				       sna->render.vertex_reloc[i], bo,
 				       I915_GEM_DOMAIN_VERTEX << 16,
 				       delta);
-		sna->kgem.batch[sna->render.vertex_reloc[i]+1] =
-			kgem_add_reloc(&sna->kgem,
-				       sna->render.vertex_reloc[i]+1, bo,
-				       I915_GEM_DOMAIN_VERTEX << 16,
-				       delta + sna->render.vertex_used * 4 - 1);
 	}
 	sna->render.nvertex_reloc = 0;
 
@@ -1653,7 +1643,7 @@ static void gen7_emit_vertex_buffer(struct sna *sna,
 		  4*op->floats_per_vertex << GEN7_VB0_BUFFER_PITCH_SHIFT);
 	sna->render.vertex_reloc[sna->render.nvertex_reloc++] = sna->kgem.nbatch;
 	OUT_BATCH(0);
-	OUT_BATCH(0);
+	OUT_BATCH(~0); /* max address: disabled */
 	OUT_BATCH(0);
 
 	sna->render_state.gen7.vb_id |= 1 << id;


More information about the xorg-commit mailing list