[igt-dev] [PATCH i-g-t v25 21/22] tests/perf: use coherent mapping on non-llc platforms

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Aug 3 12:43:12 UTC 2020


---
 tests/i915/perf.c | 37 ++++++++-----------------------------
 1 file changed, 8 insertions(+), 29 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 10386e30..d59b359a 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -524,6 +524,8 @@ emit_report_perf_count(struct intel_bb *ibb,
 		       int dst_offset,
 		       uint32_t report_id)
 {
+	intel_bb_add_intel_buf(ibb, dst, true);
+
 	if (IS_HASWELL(devid))
 		intel_bb_out(ibb, GEN6_MI_REPORT_PERF_COUNT);
 	else
@@ -3018,6 +3020,8 @@ emit_stall_timestamp_and_rpc(struct intel_bb *ibb,
 				   PIPE_CONTROL_RENDER_TARGET_FLUSH |
 				   PIPE_CONTROL_WRITE_TIMESTAMP);
 
+	intel_bb_add_intel_buf(ibb, dst, true);
+
 	if (intel_gen(devid) >= 8)
 		intel_bb_out(ibb, GFX_OP_PIPE_CONTROL | (6 - 2));
 	else
@@ -3390,18 +3394,13 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 						   I915_TILING_NONE,
 						   I915_COMPRESSION_NONE);
 
-			intel_buf_cpu_map(dst_buf, true /* write enable */);
+			if (gem_has_llc(ibb0->i915))
+				intel_buf_cpu_map(dst_buf, true);
+			else
+				intel_buf_device_map(dst_buf, true);
 			memset(dst_buf->ptr, 0x80, 4096);
 			intel_buf_unmap(dst_buf);
 
-			/* Check 0 */
-			intel_buf_cpu_map(dst_buf, false /* write enable */);
-			report0_32 = dst_buf->ptr;
-			igt_info("report 0: %x\n", report0_32[0]);
-			igt_info("time 0: %x\n", report0_32[1]);
-			intel_buf_unmap(dst_buf);
-
-
 			emit_stall_timestamp_and_rpc(ibb0,
 						     dst_buf,
 						     512 /* timestamp offset */,
@@ -3423,13 +3422,6 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 			/* Another redundant flush to clarify batch bo is free to reuse */
 			intel_bb_flush_render_with_context(ibb0, context0_id);
 
-			/* Check 1 */
-			intel_buf_cpu_map(dst_buf, false /* write enable */);
-			report0_32 = dst_buf->ptr;
-			igt_info("report 1: %x\n", report0_32[0]);
-			igt_info("time 1: %x\n", report0_32[1]);
-			intel_buf_unmap(dst_buf);
-
 			/* submit two copies on the other context to avoid a false
 			 * positive in case the driver somehow ended up filtering for
 			 * context1
@@ -3455,24 +3447,11 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 
 			intel_bb_flush_render_with_context(ibb1, context1_id);
 			intel_bb_sync(ibb1);
-
-			/* Check 2 */
-			intel_buf_cpu_map(dst_buf, false /* write enable */);
-			report0_32 = dst_buf->ptr;
-			report1_32 = report0_32 + 64; /* 64 uint32_t = 256bytes offset */
-			igt_info("report 2 a: %x\n", report0_32[0]);
-			igt_info("time 2 a: %x\n", report0_32[1]);
-			igt_info("report 2 b: %x\n", report1_32[0]);
-			igt_info("time 2 b: %x\n", report1_32[1]);
-			intel_buf_unmap(dst_buf);
-
 			intel_bb_sync(ibb0);
 
 			intel_buf_cpu_map(dst_buf, false /* write enable */);
 
 			report0_32 = dst_buf->ptr;
-			igt_info("report: %x\n", report0_32[0]);
-			igt_info("time: %x\n", report0_32[1]);
 			igt_assert_eq(report0_32[0], 0xdeadbeef); /* report ID */
 			igt_assert_neq(report0_32[1], 0); /* timestamp */
 			prev = report0_32;
-- 
2.26.0



More information about the igt-dev mailing list