[igt-dev] [PATCH i-g-t 5/6] i915/gem_mocs_settings: Fudge gen11:vcs2 mocs register base

Chris Wilson chris at chris-wilson.co.uk
Mon Sep 2 04:15:47 UTC 2019


On gen11 CI, we have vcs2 available which has a different base to gen9
vcs1. Gloss over the discrepancy while a proper fix is sought.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111330
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/i915/gem_mocs_settings.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/tests/i915/gem_mocs_settings.c b/tests/i915/gem_mocs_settings.c
index 3ad941491..06240877e 100644
--- a/tests/i915/gem_mocs_settings.c
+++ b/tests/i915/gem_mocs_settings.c
@@ -62,6 +62,7 @@ static const char * const test_modes[] = {
 #define GEN9_MFX0_MOCS_0	(0xc900)	/* Media 0 MOCS base register*/
 #define GEN9_MFX1_MOCS_0	(0xcA00)	/* Media 1 MOCS base register*/
 #define GEN9_VEBOX_MOCS_0	(0xcB00)	/* Video MOCS base register*/
+#define GEN11_MFX2_MOCS_0	(0x10000)
 #define GEN9_BLT_MOCS_0		(0xcc00)	/* Blitter MOCS base register*/
 #define GEN12_GLOBAL_MOCS	(0x4000)
 #define ICELAKE_MOCS_PTE	{0x00000004, 0x0030, 0x1}
@@ -216,12 +217,27 @@ static uint32_t get_engine_base(int fd, uint32_t engine)
 		return GEN12_GLOBAL_MOCS;
 
 	switch (engine) {
-	case LOCAL_I915_EXEC_BSD1:	return GEN9_MFX0_MOCS_0;
-	case LOCAL_I915_EXEC_BSD2:	return GEN9_MFX1_MOCS_0;
-	case I915_EXEC_RENDER:		return GEN9_GFX_MOCS_0;
-	case I915_EXEC_BLT:		return GEN9_BLT_MOCS_0;
-	case I915_EXEC_VEBOX:		return GEN9_VEBOX_MOCS_0;
-	default:			return 0;
+	case LOCAL_I915_EXEC_BSD1:
+		return GEN9_MFX0_MOCS_0;
+
+	case LOCAL_I915_EXEC_BSD2:
+		if (intel_gen(intel_get_drm_devid(fd)) >= 11)
+			/* i915_query to find correct HW base */
+			return GEN11_MFX2_MOCS_0;
+		else
+			return GEN9_MFX1_MOCS_0;
+
+	case I915_EXEC_RENDER:
+		return GEN9_GFX_MOCS_0;
+
+	case I915_EXEC_BLT:
+		return GEN9_BLT_MOCS_0;
+
+	case I915_EXEC_VEBOX:
+		return GEN9_VEBOX_MOCS_0;
+
+	default:
+		return 0;
 	}
 }
 
-- 
2.23.0



More information about the igt-dev mailing list