All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/i915 Add golden context support for Gen9
@ 2014-09-12 18:25 armin.c.reese
  2014-09-12 18:25 ` [PATCH 2/3] drm/i915: Alternate batch buffer end for golden context BB armin.c.reese
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: armin.c.reese @ 2014-09-12 18:25 UTC (permalink / raw)
  To: intel-gfx

From: Armin Reese <armin.c.reese@intel.com>

This patch includes the Gen9 batch buffer to generate
a 'golden context' for that product family.

Also:
1) IS_GEN9 macro has been added to drivers/gpu/drm/i915/i915_drv.h
2) drivers/gpu/drm/i915/intel_renderstate_gen8.c has been updated
   to the version created by IGT null_state_gen

Signed-off-by: Armin Reese <armin.c.reese@intel.com>
---
 drivers/gpu/drm/i915/Makefile                 |   3 +-
 drivers/gpu/drm/i915/i915_drv.h               |   1 +
 drivers/gpu/drm/i915/i915_gem_render_state.c  |   2 +
 drivers/gpu/drm/i915/intel_renderstate.h      |   1 +
 drivers/gpu/drm/i915/intel_renderstate_gen6.c |  23 +
 drivers/gpu/drm/i915/intel_renderstate_gen7.c |  23 +
 drivers/gpu/drm/i915/intel_renderstate_gen8.c | 831 +++++++++++++++++-----
 drivers/gpu/drm/i915/intel_renderstate_gen9.c | 981 ++++++++++++++++++++++++++
 8 files changed, 1699 insertions(+), 166 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/intel_renderstate_gen9.c

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index c1dd485..2caf4f4 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -38,7 +38,8 @@ i915-y += i915_cmd_parser.o \
 # autogenerated null render state
 i915-y += intel_renderstate_gen6.o \
 	  intel_renderstate_gen7.o \
-	  intel_renderstate_gen8.o
+	  intel_renderstate_gen8.o \
+	  intel_renderstate_gen9.o
 
 # modesetting core code
 i915-y += intel_bios.o \
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 17dfce0..7d9f091 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2122,6 +2122,7 @@ struct drm_i915_cmd_table {
 #define IS_GEN6(dev)	(INTEL_INFO(dev)->gen == 6)
 #define IS_GEN7(dev)	(INTEL_INFO(dev)->gen == 7)
 #define IS_GEN8(dev)	(INTEL_INFO(dev)->gen == 8)
+#define IS_GEN9(dev)	(INTEL_INFO(dev)->gen == 9)
 
 #define RENDER_RING		(1<<RCS)
 #define BSD_RING		(1<<VCS)
diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
index a9a62d7..98dcd94 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.c
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
@@ -38,6 +38,8 @@ render_state_get_rodata(struct drm_device *dev, const int gen)
 		return &gen7_null_state;
 	case 8:
 		return &gen8_null_state;
+	case 9:
+		return &gen9_null_state;
 	}
 
 	return NULL;
diff --git a/drivers/gpu/drm/i915/intel_renderstate.h b/drivers/gpu/drm/i915/intel_renderstate.h
index 6c792d3..5bd6985 100644
--- a/drivers/gpu/drm/i915/intel_renderstate.h
+++ b/drivers/gpu/drm/i915/intel_renderstate.h
@@ -29,6 +29,7 @@
 extern const struct intel_renderstate_rodata gen6_null_state;
 extern const struct intel_renderstate_rodata gen7_null_state;
 extern const struct intel_renderstate_rodata gen8_null_state;
+extern const struct intel_renderstate_rodata gen9_null_state;
 
 #define RO_RENDERSTATE(_g)						\
 	const struct intel_renderstate_rodata gen ## _g ## _null_state = { \
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen6.c b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
index 56c1429..c2568a7 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen6.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
@@ -1,3 +1,26 @@
+/*
+ * Copyright © 2014 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
 #include "intel_renderstate.h"
 
 static const u32 gen6_null_state_relocs[] = {
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen7.c b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
index 419e35a..e14aec5 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen7.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
@@ -1,3 +1,26 @@
+/*
+ * Copyright © 2014 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
 #include "intel_renderstate.h"
 
 static const u32 gen7_null_state_relocs[] = {
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen8.c b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
index 75ef1b5d..88991e2 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen8.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
@@ -1,81 +1,166 @@
+/*
+ * Copyright © 2014 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
 #include "intel_renderstate.h"
 
 static const u32 gen8_null_state_relocs[] = {
-	0x00000048,
-	0x00000050,
-	0x00000060,
-	0x000003ec,
+	0x00000784,
+	0x00000790,
+	0x00000798,
+	0x000007a8,
 	-1,
 };
 
 static const u32 gen8_null_state_batch[] = {
+	0x7a000004,
+	0x01000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
 	0x69040000,
-	0x61020001,
+	0x78140000,
+	0x04000000,
+	0x7820000a,
 	0x00000000,
 	0x00000000,
-	0x79120000,
+	0x80000000,
 	0x00000000,
-	0x79130000,
 	0x00000000,
-	0x79140000,
 	0x00000000,
-	0x79150000,
 	0x00000000,
-	0x79160000,
 	0x00000000,
-	0x6101000e,
-	0x00000001,
 	0x00000000,
-	0x00000001,
-	0x00000001,	 /* reloc */
 	0x00000000,
-	0x00000001,	 /* reloc */
+	0x00000000,
+	0x78130002,
+	0x00000000,
+	0x00000000,
+	0x02001808,
+	0x781f0002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78510009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78100007,
+	0x00000000,
+	0x00000000,
+	0x00010000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781b0007,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000800,
+	0x00000000,
+	0x78110008,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781e0003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781d0007,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78120002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781c0002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x780c0000,
+	0x00000000,
+	0x78520003,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x00000001,	 /* reloc */
 	0x00000000,
-	0xfffff001,
-	0x00001001,
-	0xfffff001,
-	0x00001001,
-	0x78230000,
-	0x000006e0,
-	0x78210000,
-	0x00000700,
 	0x78300000,
 	0x08010040,
-	0x78330000,
-	0x08000000,
 	0x78310000,
-	0x08000000,
+	0x1e000000,
 	0x78320000,
-	0x08000000,
-	0x78240000,
-	0x00000641,
-	0x780e0000,
-	0x00000601,
-	0x780d0000,
+	0x1e000000,
+	0x78330000,
+	0x1e000000,
+	0x79190002,
 	0x00000000,
-	0x78180000,
-	0x00000001,
-	0x78520003,
 	0x00000000,
 	0x00000000,
+	0x791a0002,
 	0x00000000,
 	0x00000000,
-	0x78190009,
 	0x00000000,
+	0x791b0002,
 	0x00000000,
 	0x00000000,
 	0x00000000,
+	0x79120000,
 	0x00000000,
+	0x79130000,
 	0x00000000,
+	0x79140000,
 	0x00000000,
+	0x79150000,
 	0x00000000,
+	0x79160000,
 	0x00000000,
+	0x78150009,
 	0x00000000,
-	0x781b0007,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -84,11 +169,26 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78270000,
 	0x00000000,
-	0x782c0000,
+	0x78190009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781a0009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
 	0x00000000,
-	0x781c0002,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -103,7 +203,7 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78110008,
+	0x78170009,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -113,14 +213,17 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78290000,
 	0x00000000,
-	0x782e0000,
+	0x78490001,
 	0x00000000,
-	0x781a0009,
 	0x00000000,
+	0x784a0000,
 	0x00000000,
+	0x784b0000,
+	0x00000004,
+	0x79170101,
 	0x00000000,
+	0x00000080,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -128,7 +231,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x781d0007,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -137,15 +239,10 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78280000,
 	0x00000000,
-	0x782d0000,
 	0x00000000,
-	0x78260000,
 	0x00000000,
-	0x782b0000,
 	0x00000000,
-	0x78150009,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -156,7 +253,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78100007,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -165,20 +261,15 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x781e0003,
 	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78120002,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x781f0002,
-	0x30400820,
 	0x00000000,
 	0x00000000,
-	0x78510009,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -189,22 +280,12 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78500003,
-	0x00210000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78130002,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x782a0000,
-	0x00000480,
-	0x782f0000,
-	0x00000540,
-	0x78140000,
-	0x00000800,
-	0x78170009,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -215,25 +296,13 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x7820000a,
-	0x00000580,
 	0x00000000,
-	0x08080000,
 	0x00000000,
 	0x00000000,
-	0x1f000002,
-	0x00060000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x784d0000,
-	0x40000000,
-	0x784f0000,
-	0x80000100,
-	0x780f0000,
-	0x00000740,
-	0x78050006,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -241,48 +310,25 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78070003,
 	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78060003,
 	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x78040001,
 	0x00000000,
-	0x00000001,
-	0x79000002,
-	0xffffffff,
 	0x00000000,
 	0x00000000,
-	0x78080003,
-	0x00006000,
-	0x000005e0,	 /* reloc */
 	0x00000000,
 	0x00000000,
-	0x78090005,
-	0x02000000,
-	0x22220000,
-	0x02f60000,
-	0x11230000,
-	0x02850004,
-	0x11230000,
-	0x784b0000,
-	0x0000000f,
-	0x78490001,
 	0x00000000,
 	0x00000000,
-	0x7b000005,
 	0x00000000,
-	0x00000003,
 	0x00000000,
-	0x00000001,
 	0x00000000,
 	0x00000000,
-	0x05000000,	 /* cmds end */
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -297,8 +343,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x000004c0,	 /* state start */
-	0x00000500,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -348,7 +392,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x00000092,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -361,30 +404,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x0060005a,
-	0x21403ae8,
-	0x3a0000c0,
-	0x008d0040,
-	0x0060005a,
-	0x21603ae8,
-	0x3a0000c0,
-	0x008d0080,
-	0x0060005a,
-	0x21803ae8,
-	0x3a0000d0,
-	0x008d0040,
-	0x0060005a,
-	0x21a03ae8,
-	0x3a0000d0,
-	0x008d0080,
-	0x02800031,
-	0x2e0022e8,
-	0x0e000140,
-	0x08840001,
-	0x05800031,
-	0x200022e0,
-	0x0e000e00,
-	0x90031000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -410,38 +429,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
-	0x06200000,
-	0x00000002,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -449,8 +436,6 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0xf99a130c,
-	0x799a130c,
 	0x00000000,
 	0x00000000,
 	0x00000000,
@@ -466,9 +451,525 @@ static const u32 gen8_null_state_batch[] = {
 	0x00000000,
 	0x00000000,
 	0x00000000,
-	0x3f800000,
 	0x00000000,
-	0x3f800000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x20000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x40000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x60000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x6101000e,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000001,
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00001001,
+	0x00001001,
+	0x00000001,
+	0x00001001,
+	0x61020001,
+	0x00000000,
+	0x00000000,
+	0x79000002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78050006,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x40000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x80000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0xc0000000,
+	0x00000000,
+	0x00000000,
+	0x79080001,
+	0x00000000,
+	0x00000000,
+	0x790a0001,
+	0x00000000,
+	0x00000000,
+	0x78060003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78070003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78040001,
+	0x00000000,
+	0x00000000,
+	0x79110000,
+	0x00000000,
+	0x780d0000,
+	0x00000000,
+	0x79060000,
+	0x00000000,
+	0x7907001f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x7902000f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x790c000f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x780a0003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78080083,
+	0x00004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x04004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x08004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x0c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x10004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x14004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x18004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x1c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x20004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x24004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x28004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x2c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x30004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x34004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x38004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x3c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x40004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x44004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x48004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x4c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x50004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x54004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x58004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x5c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x60004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x64004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x68004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x6c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x70004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x74004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x7c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x80004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78090043,
+	0x02000000,
+	0x22220000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x680b0001,
+	0x78260000,
+	0x00000000,
+	0x78270000,
+	0x00000000,
+	0x78280000,
+	0x00000000,
+	0x78290000,
+	0x00000000,
+	0x782a0000,
+	0x00000000,
+	0x780e0000,
+	0x00000dc1,
+	0x78240000,
+	0x00000e01,
+	0x784f0000,
+	0x80000100,
+	0x784d0000,
+	0x40000000,
+	0x782b0000,
+	0x00000000,
+	0x782c0000,
+	0x00000000,
+	0x782d0000,
+	0x00000000,
+	0x782e0000,
+	0x00000000,
+	0x782f0000,
+	0x00000000,
+	0x780f0000,
+	0x00000000,
+	0x78230000,
+	0x00000e60,
+	0x78210000,
+	0x00000e80,
+	0x7b000005,
+	0x00000004,
+	0x00000001,
+	0x00000000,
+	0x00000001,
+	0x00000000,
+	0x00000000,
+	0x05000000,	 /* cmds end */
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,	 /* state start */
+	0x00000000,
+	0x3f800000,
+	0x3f800000,
+	0x3f800000,
+	0x3f800000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen9.c b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
new file mode 100644
index 0000000..e1ea838
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
@@ -0,0 +1,981 @@
+/*
+ * Copyright © 2014 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "intel_renderstate.h"
+
+static const u32 gen9_null_state_relocs[] = {
+	0x00000794,
+	0x000007a0,
+	0x000007a8,
+	0x000007b8,
+	-1,
+};
+
+static const u32 gen9_null_state_batch[] = {
+	0x7a000004,
+	0x01000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x69040300,
+	0x78140000,
+	0x04000000,
+	0x7820000a,
+	0x00000000,
+	0x00000000,
+	0x80000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78130002,
+	0x00000000,
+	0x00000000,
+	0x02001808,
+	0x781f0004,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78510009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78100007,
+	0x00000000,
+	0x00000000,
+	0x00010000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781b0007,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000800,
+	0x00000000,
+	0x78110008,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781e0003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781d0009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78120002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781c0002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x780c0000,
+	0x00000000,
+	0x78520003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78300000,
+	0x08010040,
+	0x78310000,
+	0x1e000000,
+	0x78320000,
+	0x1e000000,
+	0x78330000,
+	0x1e000000,
+	0x79190002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x791a0002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x791b0002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79120000,
+	0x00000000,
+	0x79130000,
+	0x00000000,
+	0x79140000,
+	0x00000000,
+	0x79150000,
+	0x00000000,
+	0x79160000,
+	0x00000000,
+	0x78150009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78190009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x781a0009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78160009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78170009,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78490001,
+	0x00000000,
+	0x00000000,
+	0x784a0000,
+	0x00000000,
+	0x784b0000,
+	0x00000004,
+	0x79170101,
+	0x00000000,
+	0x00000080,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x20000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x40000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79180006,
+	0x60000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x61010011,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00000001,
+	0x00000000,
+	0x00000001,	 /* reloc */
+	0x00000000,
+	0x00001001,
+	0x00001001,
+	0x00000001,
+	0x00001001,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x61020001,
+	0x00000000,
+	0x00000000,
+	0x79000002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78050006,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x40000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0x80000000,
+	0x00000000,
+	0x00000000,
+	0x79040002,
+	0xc0000000,
+	0x00000000,
+	0x00000000,
+	0x79080001,
+	0x00000000,
+	0x00000000,
+	0x790a0001,
+	0x00000000,
+	0x00000000,
+	0x78060003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78070003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78040001,
+	0x00000000,
+	0x00000000,
+	0x79110000,
+	0x00000000,
+	0x780d0000,
+	0x00000000,
+	0x79060000,
+	0x00000000,
+	0x7907001f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x7902000f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x790c000f,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x780a0003,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78080083,
+	0x00004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x04004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x08004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x0c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x10004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x14004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x18004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x1c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x20004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x24004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x28004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x2c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x30004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x34004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x38004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x3c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x40004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x44004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x48004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x4c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x50004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x54004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x58004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x5c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x60004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x64004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x68004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x6c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x70004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x74004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x7c004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x80004000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x78090043,
+	0x02000000,
+	0x22220000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x680b0001,
+	0x780e0000,
+	0x00000dc1,
+	0x78240000,
+	0x00000e01,
+	0x784f0000,
+	0x80000100,
+	0x784d0000,
+	0x40000000,
+	0x782b0000,
+	0x00000000,
+	0x782c0000,
+	0x00000000,
+	0x782d0000,
+	0x00000000,
+	0x782e0000,
+	0x00000000,
+	0x782f0000,
+	0x00000000,
+	0x780f0000,
+	0x00000000,
+	0x78230000,
+	0x00000e60,
+	0x78210000,
+	0x00000e80,
+	0x78260000,
+	0x00000000,
+	0x78270000,
+	0x00000000,
+	0x78280000,
+	0x00000000,
+	0x78290000,
+	0x00000000,
+	0x782a0000,
+	0x00000000,
+	0x7b000005,
+	0x00000004,
+	0x00000001,
+	0x00000000,
+	0x00000001,
+	0x00000000,
+	0x00000000,
+	0x05000000,	 /* cmds end */
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,	 /* state start */
+	0x00000000,
+	0x3f800000,
+	0x3f800000,
+	0x3f800000,
+	0x3f800000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,	 /* state end */
+};
+
+RO_RENDERSTATE(9);
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] drm/i915: Alternate batch buffer end for golden context BB
  2014-09-12 18:25 [PATCH 1/3] drm/i915 Add golden context support for Gen9 armin.c.reese
@ 2014-09-12 18:25 ` armin.c.reese
  2014-09-12 18:25 ` [PATCH 3/3] drm/i915: Add debugfs file to dump entire logical context armin.c.reese
  2014-09-13  0:07 ` [PATCH 1/3] drm/i915 Add golden context support for Gen9 Volkin, Bradley D
  2 siblings, 0 replies; 5+ messages in thread
From: armin.c.reese @ 2014-09-12 18:25 UTC (permalink / raw)
  To: intel-gfx

From: Armin Reese <armin.c.reese@intel.com>

Golden context batch buffers now can contain a set of offsets in
which to optionally place MI_BATCH_BUFFER_END commands.  This
allows the driver to customize the GC batch for various chipsets
in a family by requesting that the GC BB exit early for one chipset
to prevent execution of GPU commands intended for another chipset
in the same GEN family.

Signed-off-by: Armin Reese <armin.c.reese@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_render_state.c  | 59 +++++++++++++++++++++++++--
 drivers/gpu/drm/i915/i915_gem_render_state.h  |  2 +
 drivers/gpu/drm/i915/intel_renderstate.h      | 14 +++++--
 drivers/gpu/drm/i915/intel_renderstate_gen6.c |  6 ++-
 drivers/gpu/drm/i915/intel_renderstate_gen7.c |  6 ++-
 drivers/gpu/drm/i915/intel_renderstate_gen8.c |  4 ++
 drivers/gpu/drm/i915/intel_renderstate_gen9.c | 29 +++++++++++--
 7 files changed, 106 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
index 98dcd94..80aeff9 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.c
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
@@ -45,6 +45,44 @@ render_state_get_rodata(struct drm_device *dev, const int gen)
 	return NULL;
 }
 
+/**
+ * Alternate batch buffer end offsets defined in intel_renderstate_genx.c
+ * are locations in the golden context batch buffer where MI_BATCH_BUFFER_END
+ * commands can be optionally inserted.  BB end commands can be added to
+ * terminate the GC BB early and thus customize the BB for product variations
+ * in a given GEN family.
+ */
+static int insert_alternate_bbend(struct drm_device *dev,
+				const struct intel_renderstate_rodata *rodata,
+				u32 *d)
+{
+	int index = -1;	/* Default to no alternate bbend index */
+
+	/* For GEN9, exit golden context BB before executing all commands */
+	if (IS_GEN9(dev))
+		index = 0;
+
+	/* Write MI_BATCH_BUFFER_END at valid location */
+	if (index >= 0) {
+		if (index < rodata->alternate_bbend_items) {
+			int bbend_offset;
+
+			bbend_offset = rodata->alternate_bbend_offsets[index];
+
+			/* Check for DWORD aligned address, et al */
+			if ((bbend_offset <= 0) ||
+			    (bbend_offset > PAGE_SIZE - sizeof(u32)) ||
+			    ((bbend_offset & (sizeof(u32) - 1)) != 0))
+				return -EINVAL;
+
+			d[bbend_offset/sizeof(u32)] = MI_BATCH_BUFFER_END;
+		} else
+			return -EINVAL;
+	}
+
+	return 0;
+}
+
 static int render_state_init(struct render_state *so, struct drm_device *dev)
 {
 	int ret;
@@ -73,7 +111,7 @@ free_gem:
 	return ret;
 }
 
-static int render_state_setup(struct render_state *so)
+static int render_state_setup(struct render_state *so, struct drm_device *dev)
 {
 	const struct intel_renderstate_rodata *rodata = so->rodata;
 	unsigned int i = 0, reloc_index = 0;
@@ -89,10 +127,11 @@ static int render_state_setup(struct render_state *so)
 	d = kmap(page);
 
 	while (i < rodata->batch_items) {
-		u32 s = rodata->batch[i];
+		u32 s = rodata->batch[i];	/* DWORD from R/O batch */
 
 		if (i * 4  == rodata->reloc[reloc_index]) {
-			u64 r = s + so->ggtt_offset;
+			u64 r = s + /* Object offset stored in reloc DWORD */
+				so->ggtt_offset; /* Batch buffer gfx offset */
 			s = lower_32_bits(r);
 			if (so->gen >= 8) {
 				if (i + 1 >= rodata->batch_items ||
@@ -108,8 +147,20 @@ static int render_state_setup(struct render_state *so)
 
 		d[i++] = s;
 	}
+
+	/* Any alternate BB end entries? */
+	if (rodata->alternate_bbend_offsets[0] != -1)
+		ret = insert_alternate_bbend(dev, rodata, d);
+	else
+		ret = 0;
+
 	kunmap(page);
 
+	if (ret) {
+		DRM_ERROR("invalid alternate batch buffer end\n");
+		return ret;
+	}
+
 	ret = i915_gem_object_set_to_gtt_domain(so->obj, false);
 	if (ret)
 		return ret;
@@ -143,7 +194,7 @@ int i915_gem_render_state_prepare(struct intel_engine_cs *ring,
 	if (so->rodata == NULL)
 		return 0;
 
-	ret = render_state_setup(so);
+	ret = render_state_setup(so, ring->dev);
 	if (ret) {
 		i915_gem_render_state_fini(so);
 		return ret;
diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.h b/drivers/gpu/drm/i915/i915_gem_render_state.h
index c44961e..3f540c8 100644
--- a/drivers/gpu/drm/i915/i915_gem_render_state.h
+++ b/drivers/gpu/drm/i915/i915_gem_render_state.h
@@ -28,6 +28,8 @@
 
 struct intel_renderstate_rodata {
 	const u32 *reloc;
+	const u32 *alternate_bbend_offsets;
+	const u32 alternate_bbend_items;
 	const u32 *batch;
 	const u32 batch_items;
 };
diff --git a/drivers/gpu/drm/i915/intel_renderstate.h b/drivers/gpu/drm/i915/intel_renderstate.h
index 5bd6985..8d5d975 100644
--- a/drivers/gpu/drm/i915/intel_renderstate.h
+++ b/drivers/gpu/drm/i915/intel_renderstate.h
@@ -31,11 +31,17 @@ extern const struct intel_renderstate_rodata gen7_null_state;
 extern const struct intel_renderstate_rodata gen8_null_state;
 extern const struct intel_renderstate_rodata gen9_null_state;
 
-#define RO_RENDERSTATE(_g)						\
+#define RO_RENDERSTATE(_g) \
 	const struct intel_renderstate_rodata gen ## _g ## _null_state = { \
-		.reloc = gen ## _g ## _null_state_relocs,		\
-		.batch = gen ## _g ## _null_state_batch,		\
-		.batch_items = sizeof(gen ## _g ## _null_state_batch)/4, \
+		.reloc = gen ## _g ## _null_state_relocs, \
+		.alternate_bbend_offsets = \
+			gen ## _g ## _alternate_bbend_offsets, \
+		.alternate_bbend_items = \
+			sizeof(gen ## _g ## _alternate_bbend_offsets) / \
+			sizeof(u32), \
+		.batch = gen ## _g ## _null_state_batch, \
+		.batch_items = sizeof(gen ## _g ## _null_state_batch) / \
+				sizeof(u32) \
 	}
 
 #endif /* INTEL_RENDERSTATE_H */
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen6.c b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
index c2568a7..95e30f8 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen6.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
@@ -29,7 +29,11 @@ static const u32 gen6_null_state_relocs[] = {
 	0x0000002c,
 	0x000001e0,
 	0x000001e4,
-	-1,
+	-1
+};
+
+static const u32 gen6_alternate_bbend_offsets[] = {
+	-1
 };
 
 static const u32 gen6_null_state_batch[] = {
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen7.c b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
index e14aec5..c22b89f 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen7.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
@@ -28,7 +28,11 @@ static const u32 gen7_null_state_relocs[] = {
 	0x00000010,
 	0x00000018,
 	0x000001ec,
-	-1,
+	-1
+};
+
+static const u32 gen7_alternate_bbend_offsets[] = {
+	-1
 };
 
 static const u32 gen7_null_state_batch[] = {
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen8.c b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
index 88991e2..282012e 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen8.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
@@ -31,6 +31,10 @@ static const u32 gen8_null_state_relocs[] = {
 	-1,
 };
 
+static const u32 gen8_alternate_bbend_offsets[] = {
+	-1
+};
+
 static const u32 gen8_null_state_batch[] = {
 	0x7a000004,
 	0x01000000,
diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen9.c b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
index e1ea838..eca1384 100644
--- a/drivers/gpu/drm/i915/intel_renderstate_gen9.c
+++ b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
@@ -31,6 +31,11 @@ static const u32 gen9_null_state_relocs[] = {
 	-1,
 };
 
+static const u32 gen9_alternate_bbend_offsets[] = {
+	0x00000dac,
+	-1
+};
+
 static const u32 gen9_null_state_batch[] = {
 	0x7a000004,
 	0x01000000,
@@ -867,9 +872,9 @@ static const u32 gen9_null_state_batch[] = {
 	0x00000000,
 	0x680b0001,
 	0x780e0000,
-	0x00000dc1,
-	0x78240000,
 	0x00000e01,
+	0x78240000,
+	0x00000e41,
 	0x784f0000,
 	0x80000100,
 	0x784d0000,
@@ -887,9 +892,9 @@ static const u32 gen9_null_state_batch[] = {
 	0x780f0000,
 	0x00000000,
 	0x78230000,
-	0x00000e60,
+	0x00000ea0,
 	0x78210000,
-	0x00000e80,
+	0x00000ec0,
 	0x78260000,
 	0x00000000,
 	0x78270000,
@@ -907,11 +912,27 @@ static const u32 gen9_null_state_batch[] = {
 	0x00000001,
 	0x00000000,
 	0x00000000,
+	0x00000000,	 /* alternate bbend */
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
 	0x05000000,	 /* cmds end */
 	0x00000000,
 	0x00000000,
 	0x00000000,
 	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
+	0x00000000,
 	0x00000000,	 /* state start */
 	0x00000000,
 	0x3f800000,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] drm/i915: Add debugfs file to dump entire logical context
  2014-09-12 18:25 [PATCH 1/3] drm/i915 Add golden context support for Gen9 armin.c.reese
  2014-09-12 18:25 ` [PATCH 2/3] drm/i915: Alternate batch buffer end for golden context BB armin.c.reese
@ 2014-09-12 18:25 ` armin.c.reese
  2014-09-13  0:07 ` [PATCH 1/3] drm/i915 Add golden context support for Gen9 Volkin, Bradley D
  2 siblings, 0 replies; 5+ messages in thread
From: armin.c.reese @ 2014-09-12 18:25 UTC (permalink / raw)
  To: intel-gfx

From: Armin Reese <armin.c.reese@intel.com>

The new 'i915_context_dump' file generates a hex dump of the
entire logical context DRM object.  It is useful for
validating the contents of the default context set up by
the golden state batch buffer.

Signed-off-by: Armin Reese <armin.c.reese@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 64 +++++++++++++++++++++++++++++++++++--
 1 file changed, 62 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 063b448..345fc23 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -46,6 +46,11 @@ enum {
 	PINNED_LIST,
 };
 
+enum {
+	NO_CONTEXT_DUMP,
+	CONTEXT_DUMP,
+};
+
 static const char *yesno(int v)
 {
 	return v ? "yes" : "no";
@@ -120,6 +125,51 @@ static inline const char *get_global_flag(struct drm_i915_gem_object *obj)
 }
 
 static void
+dump_32_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
+{
+	struct page *page;
+	size_t size; /* In bytes */
+	size_t start_dword, end_dword, end_row_dword; /* In uint32_t offsets */
+	int i, num_pages;
+	uint32_t *obj_ptr;
+
+	if (i915_gem_object_get_pages(obj))
+		return;
+
+	size = obj->base.size; /* In bytes */
+	num_pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
+
+	for (i = 0; i < num_pages; i++) {
+		page = i915_gem_object_get_page(obj, i);
+		drm_clflush_pages(&page, 1);
+
+		start_dword = (i * PAGE_SIZE) / sizeof(uint32_t);
+		end_dword = start_dword + (PAGE_SIZE / sizeof(uint32_t));
+		if ((end_dword * sizeof(uint32_t)) > size)
+			end_dword = size / sizeof(uint32_t);
+
+		obj_ptr = (uint32_t *)kmap_atomic(page);
+
+		while (start_dword < end_dword) {
+			end_row_dword = start_dword + 8;
+			if (end_row_dword > end_dword)
+				end_row_dword = end_dword;
+			seq_printf(m, "0x%08lx:  ",
+					start_dword * sizeof(uint32_t));
+			while (start_dword < end_row_dword) {
+				seq_printf(m, "0x%08x ",
+					   *(obj_ptr +
+					   (start_dword & (PAGE_SIZE - 1))));
+				start_dword++;
+			}
+			seq_puts(m, "\n");
+		}
+
+		kunmap_atomic(obj_ptr);
+	}
+}
+
+static void
 describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
 {
 	struct i915_vma *vma;
@@ -1709,9 +1759,10 @@ static void describe_ctx_ringbuf(struct seq_file *m,
 		   ringbuf->last_retired_head);
 }
 
-static int i915_context_status(struct seq_file *m, void *unused)
+static int i915_context_status(struct seq_file *m, void *data)
 {
 	struct drm_info_node *node = m->private;
+	uintptr_t dump_flag = (uintptr_t) node->info_ent->data;
 	struct drm_device *dev = node->minor->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_engine_cs *ring;
@@ -1758,8 +1809,16 @@ static int i915_context_status(struct seq_file *m, void *unused)
 				seq_printf(m, "%s: ", ring->name);
 				if (ctx_obj)
 					describe_obj(m, ctx_obj);
+
 				if (ringbuf)
 					describe_ctx_ringbuf(m, ringbuf);
+
+				if (ctx_obj &&
+					(dump_flag == CONTEXT_DUMP)) {
+					seq_puts(m, "\nContext Dump:\n");
+					dump_32_obj(m, ctx_obj);
+				}
+
 				seq_putc(m, '\n');
 			}
 		} else {
@@ -4170,7 +4229,8 @@ static const struct drm_info_list i915_debugfs_list[] = {
 	{"i915_sr_status", i915_sr_status, 0},
 	{"i915_opregion", i915_opregion, 0},
 	{"i915_gem_framebuffer", i915_gem_framebuffer_info, 0},
-	{"i915_context_status", i915_context_status, 0},
+	{"i915_context_status", i915_context_status, 0, (void *)NO_CONTEXT_DUMP},
+	{"i915_context_dump", i915_context_status, 0, (void *)CONTEXT_DUMP},
 	{"i915_dump_lrc", i915_dump_lrc, 0},
 	{"i915_execlists", i915_execlists, 0},
 	{"i915_gen6_forcewake_count", i915_gen6_forcewake_count_info, 0},
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] drm/i915 Add golden context support for Gen9
  2014-09-12 18:25 [PATCH 1/3] drm/i915 Add golden context support for Gen9 armin.c.reese
  2014-09-12 18:25 ` [PATCH 2/3] drm/i915: Alternate batch buffer end for golden context BB armin.c.reese
  2014-09-12 18:25 ` [PATCH 3/3] drm/i915: Add debugfs file to dump entire logical context armin.c.reese
@ 2014-09-13  0:07 ` Volkin, Bradley D
  2014-09-15 16:03   ` Reese, Armin C
  2 siblings, 1 reply; 5+ messages in thread
From: Volkin, Bradley D @ 2014-09-13  0:07 UTC (permalink / raw)
  To: armin.c.reese; +Cc: intel-gfx

On Fri, Sep 12, 2014 at 11:25:14AM -0700, armin.c.reese@intel.com wrote:
> From: Armin Reese <armin.c.reese@intel.com>
> 
> This patch includes the Gen9 batch buffer to generate
> a 'golden context' for that product family.
> 
> Also:
> 1) IS_GEN9 macro has been added to drivers/gpu/drm/i915/i915_drv.h
> 2) drivers/gpu/drm/i915/intel_renderstate_gen8.c has been updated
>    to the version created by IGT null_state_gen

Hi Armin,

We'll have to split these extra changes out into separate patches. Damien's SKL
series has the IS_GEN9 macro, which will cause a conflict. For the gen8 change,
better to have a separate patch since it's not strictly related.

I think that the preferred way to handle this situation, at least with respect
to the IS_GEN9 part, is to have a cover letter in which you document the patches
on which your series depends but don't include them in your series. You'll
obviously need to apply those changes locally, just as a separate patch that you
don't send with the series.

Will you be sending the null_state_gen patch that adds the code to generate this?
I'm not too good at reviewing hex dumps ;)

One other comment below...

> 
> Signed-off-by: Armin Reese <armin.c.reese@intel.com>
> ---
>  drivers/gpu/drm/i915/Makefile                 |   3 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   1 +
>  drivers/gpu/drm/i915/i915_gem_render_state.c  |   2 +
>  drivers/gpu/drm/i915/intel_renderstate.h      |   1 +
>  drivers/gpu/drm/i915/intel_renderstate_gen6.c |  23 +
>  drivers/gpu/drm/i915/intel_renderstate_gen7.c |  23 +
>  drivers/gpu/drm/i915/intel_renderstate_gen8.c | 831 +++++++++++++++++-----
>  drivers/gpu/drm/i915/intel_renderstate_gen9.c | 981 ++++++++++++++++++++++++++
>  8 files changed, 1699 insertions(+), 166 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/intel_renderstate_gen9.c
> 
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index c1dd485..2caf4f4 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -38,7 +38,8 @@ i915-y += i915_cmd_parser.o \
>  # autogenerated null render state
>  i915-y += intel_renderstate_gen6.o \
>  	  intel_renderstate_gen7.o \
> -	  intel_renderstate_gen8.o
> +	  intel_renderstate_gen8.o \
> +	  intel_renderstate_gen9.o
>  
>  # modesetting core code
>  i915-y += intel_bios.o \
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 17dfce0..7d9f091 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2122,6 +2122,7 @@ struct drm_i915_cmd_table {
>  #define IS_GEN6(dev)	(INTEL_INFO(dev)->gen == 6)
>  #define IS_GEN7(dev)	(INTEL_INFO(dev)->gen == 7)
>  #define IS_GEN8(dev)	(INTEL_INFO(dev)->gen == 8)
> +#define IS_GEN9(dev)	(INTEL_INFO(dev)->gen == 9)
>  
>  #define RENDER_RING		(1<<RCS)
>  #define BSD_RING		(1<<VCS)
> diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
> index a9a62d7..98dcd94 100644
> --- a/drivers/gpu/drm/i915/i915_gem_render_state.c
> +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
> @@ -38,6 +38,8 @@ render_state_get_rodata(struct drm_device *dev, const int gen)
>  		return &gen7_null_state;
>  	case 8:
>  		return &gen8_null_state;
> +	case 9:
> +		return &gen9_null_state;
>  	}
>  
>  	return NULL;
> diff --git a/drivers/gpu/drm/i915/intel_renderstate.h b/drivers/gpu/drm/i915/intel_renderstate.h
> index 6c792d3..5bd6985 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate.h
> +++ b/drivers/gpu/drm/i915/intel_renderstate.h
> @@ -29,6 +29,7 @@
>  extern const struct intel_renderstate_rodata gen6_null_state;
>  extern const struct intel_renderstate_rodata gen7_null_state;
>  extern const struct intel_renderstate_rodata gen8_null_state;
> +extern const struct intel_renderstate_rodata gen9_null_state;
>  
>  #define RO_RENDERSTATE(_g)						\
>  	const struct intel_renderstate_rodata gen ## _g ## _null_state = { \
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen6.c b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> index 56c1429..c2568a7 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> @@ -1,3 +1,26 @@
> +/*
> + * Copyright © 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +

I guess a separate patch for the non-gen9 license changes as well. And if
we don't already have patches for it, we probably want to update i-g-t to
generate the correct license header so we don't have to manually add it if
we ever update the golden state.

Brad

>  #include "intel_renderstate.h"
>  
>  static const u32 gen6_null_state_relocs[] = {
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen7.c b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> index 419e35a..e14aec5 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> @@ -1,3 +1,26 @@
> +/*
> + * Copyright © 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
>  #include "intel_renderstate.h"
>  
>  static const u32 gen7_null_state_relocs[] = {
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen8.c b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> index 75ef1b5d..88991e2 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> @@ -1,81 +1,166 @@
> +/*
> + * Copyright © 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
>  #include "intel_renderstate.h"
>  
>  static const u32 gen8_null_state_relocs[] = {
> -	0x00000048,
> -	0x00000050,
> -	0x00000060,
> -	0x000003ec,
> +	0x00000784,
> +	0x00000790,
> +	0x00000798,
> +	0x000007a8,
>  	-1,
>  };
>  
>  static const u32 gen8_null_state_batch[] = {
> +	0x7a000004,
> +	0x01000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x69040000,
> -	0x61020001,
> +	0x78140000,
> +	0x04000000,
> +	0x7820000a,
>  	0x00000000,
>  	0x00000000,
> -	0x79120000,
> +	0x80000000,
>  	0x00000000,
> -	0x79130000,
>  	0x00000000,
> -	0x79140000,
>  	0x00000000,
> -	0x79150000,
>  	0x00000000,
> -	0x79160000,
>  	0x00000000,
> -	0x6101000e,
> -	0x00000001,
>  	0x00000000,
> -	0x00000001,
> -	0x00000001,	 /* reloc */
>  	0x00000000,
> -	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x78130002,
> +	0x00000000,
> +	0x00000000,
> +	0x02001808,
> +	0x781f0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78510009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78100007,
> +	0x00000000,
> +	0x00000000,
> +	0x00010000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781b0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000800,
> +	0x00000000,
> +	0x78110008,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781e0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781d0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78120002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781c0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780c0000,
> +	0x00000000,
> +	0x78520003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x00000001,	 /* reloc */
>  	0x00000000,
> -	0xfffff001,
> -	0x00001001,
> -	0xfffff001,
> -	0x00001001,
> -	0x78230000,
> -	0x000006e0,
> -	0x78210000,
> -	0x00000700,
>  	0x78300000,
>  	0x08010040,
> -	0x78330000,
> -	0x08000000,
>  	0x78310000,
> -	0x08000000,
> +	0x1e000000,
>  	0x78320000,
> -	0x08000000,
> -	0x78240000,
> -	0x00000641,
> -	0x780e0000,
> -	0x00000601,
> -	0x780d0000,
> +	0x1e000000,
> +	0x78330000,
> +	0x1e000000,
> +	0x79190002,
>  	0x00000000,
> -	0x78180000,
> -	0x00000001,
> -	0x78520003,
>  	0x00000000,
>  	0x00000000,
> +	0x791a0002,
>  	0x00000000,
>  	0x00000000,
> -	0x78190009,
>  	0x00000000,
> +	0x791b0002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> +	0x79120000,
>  	0x00000000,
> +	0x79130000,
>  	0x00000000,
> +	0x79140000,
>  	0x00000000,
> +	0x79150000,
>  	0x00000000,
> +	0x79160000,
>  	0x00000000,
> +	0x78150009,
>  	0x00000000,
> -	0x781b0007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -84,11 +169,26 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78270000,
>  	0x00000000,
> -	0x782c0000,
> +	0x78190009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781a0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x00000000,
> -	0x781c0002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -103,7 +203,7 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78110008,
> +	0x78170009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -113,14 +213,17 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78290000,
>  	0x00000000,
> -	0x782e0000,
> +	0x78490001,
>  	0x00000000,
> -	0x781a0009,
>  	0x00000000,
> +	0x784a0000,
>  	0x00000000,
> +	0x784b0000,
> +	0x00000004,
> +	0x79170101,
>  	0x00000000,
> +	0x00000080,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -128,7 +231,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781d0007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -137,15 +239,10 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78280000,
>  	0x00000000,
> -	0x782d0000,
>  	0x00000000,
> -	0x78260000,
>  	0x00000000,
> -	0x782b0000,
>  	0x00000000,
> -	0x78150009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -156,7 +253,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78100007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -165,20 +261,15 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781e0003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78120002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781f0002,
> -	0x30400820,
>  	0x00000000,
>  	0x00000000,
> -	0x78510009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -189,22 +280,12 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78500003,
> -	0x00210000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78130002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x782a0000,
> -	0x00000480,
> -	0x782f0000,
> -	0x00000540,
> -	0x78140000,
> -	0x00000800,
> -	0x78170009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -215,25 +296,13 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x7820000a,
> -	0x00000580,
>  	0x00000000,
> -	0x08080000,
>  	0x00000000,
>  	0x00000000,
> -	0x1f000002,
> -	0x00060000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x784d0000,
> -	0x40000000,
> -	0x784f0000,
> -	0x80000100,
> -	0x780f0000,
> -	0x00000740,
> -	0x78050006,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -241,48 +310,25 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78070003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78060003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78040001,
>  	0x00000000,
> -	0x00000001,
> -	0x79000002,
> -	0xffffffff,
>  	0x00000000,
>  	0x00000000,
> -	0x78080003,
> -	0x00006000,
> -	0x000005e0,	 /* reloc */
>  	0x00000000,
>  	0x00000000,
> -	0x78090005,
> -	0x02000000,
> -	0x22220000,
> -	0x02f60000,
> -	0x11230000,
> -	0x02850004,
> -	0x11230000,
> -	0x784b0000,
> -	0x0000000f,
> -	0x78490001,
>  	0x00000000,
>  	0x00000000,
> -	0x7b000005,
>  	0x00000000,
> -	0x00000003,
>  	0x00000000,
> -	0x00000001,
>  	0x00000000,
>  	0x00000000,
> -	0x05000000,	 /* cmds end */
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -297,8 +343,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x000004c0,	 /* state start */
> -	0x00000500,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -348,7 +392,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x00000092,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -361,30 +404,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x0060005a,
> -	0x21403ae8,
> -	0x3a0000c0,
> -	0x008d0040,
> -	0x0060005a,
> -	0x21603ae8,
> -	0x3a0000c0,
> -	0x008d0080,
> -	0x0060005a,
> -	0x21803ae8,
> -	0x3a0000d0,
> -	0x008d0040,
> -	0x0060005a,
> -	0x21a03ae8,
> -	0x3a0000d0,
> -	0x008d0080,
> -	0x02800031,
> -	0x2e0022e8,
> -	0x0e000140,
> -	0x08840001,
> -	0x05800031,
> -	0x200022e0,
> -	0x0e000e00,
> -	0x90031000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -410,38 +429,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -449,8 +436,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0xf99a130c,
> -	0x799a130c,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -466,9 +451,525 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x3f800000,
>  	0x00000000,
> -	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x20000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x60000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6101000e,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00001001,
> +	0x00001001,
> +	0x00000001,
> +	0x00001001,
> +	0x61020001,
> +	0x00000000,
> +	0x00000000,
> +	0x79000002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78050006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0xc0000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79080001,
> +	0x00000000,
> +	0x00000000,
> +	0x790a0001,
> +	0x00000000,
> +	0x00000000,
> +	0x78060003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78070003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78040001,
> +	0x00000000,
> +	0x00000000,
> +	0x79110000,
> +	0x00000000,
> +	0x780d0000,
> +	0x00000000,
> +	0x79060000,
> +	0x00000000,
> +	0x7907001f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7902000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x790c000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780a0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78080083,
> +	0x00004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x04004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x08004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x0c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x10004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x14004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x18004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x1c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x20004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x24004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x28004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x2c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x30004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x34004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x38004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x3c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x40004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x44004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x48004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x4c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x50004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x54004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x58004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x5c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x60004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x64004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x68004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x70004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x74004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x80004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78090043,
> +	0x02000000,
> +	0x22220000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x680b0001,
> +	0x78260000,
> +	0x00000000,
> +	0x78270000,
> +	0x00000000,
> +	0x78280000,
> +	0x00000000,
> +	0x78290000,
> +	0x00000000,
> +	0x782a0000,
> +	0x00000000,
> +	0x780e0000,
> +	0x00000dc1,
> +	0x78240000,
> +	0x00000e01,
> +	0x784f0000,
> +	0x80000100,
> +	0x784d0000,
> +	0x40000000,
> +	0x782b0000,
> +	0x00000000,
> +	0x782c0000,
> +	0x00000000,
> +	0x782d0000,
> +	0x00000000,
> +	0x782e0000,
> +	0x00000000,
> +	0x782f0000,
> +	0x00000000,
> +	0x780f0000,
> +	0x00000000,
> +	0x78230000,
> +	0x00000e60,
> +	0x78210000,
> +	0x00000e80,
> +	0x7b000005,
> +	0x00000004,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000000,
> +	0x05000000,	 /* cmds end */
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state start */
> +	0x00000000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen9.c b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
> new file mode 100644
> index 0000000..e1ea838
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
> @@ -0,0 +1,981 @@
> +/*
> + * Copyright © 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
> +#include "intel_renderstate.h"
> +
> +static const u32 gen9_null_state_relocs[] = {
> +	0x00000794,
> +	0x000007a0,
> +	0x000007a8,
> +	0x000007b8,
> +	-1,
> +};
> +
> +static const u32 gen9_null_state_batch[] = {
> +	0x7a000004,
> +	0x01000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x69040300,
> +	0x78140000,
> +	0x04000000,
> +	0x7820000a,
> +	0x00000000,
> +	0x00000000,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78130002,
> +	0x00000000,
> +	0x00000000,
> +	0x02001808,
> +	0x781f0004,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78510009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78100007,
> +	0x00000000,
> +	0x00000000,
> +	0x00010000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781b0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000800,
> +	0x00000000,
> +	0x78110008,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781e0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781d0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78120002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781c0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780c0000,
> +	0x00000000,
> +	0x78520003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78300000,
> +	0x08010040,
> +	0x78310000,
> +	0x1e000000,
> +	0x78320000,
> +	0x1e000000,
> +	0x78330000,
> +	0x1e000000,
> +	0x79190002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x791a0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x791b0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79120000,
> +	0x00000000,
> +	0x79130000,
> +	0x00000000,
> +	0x79140000,
> +	0x00000000,
> +	0x79150000,
> +	0x00000000,
> +	0x79160000,
> +	0x00000000,
> +	0x78150009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78190009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781a0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78160009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78170009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78490001,
> +	0x00000000,
> +	0x00000000,
> +	0x784a0000,
> +	0x00000000,
> +	0x784b0000,
> +	0x00000004,
> +	0x79170101,
> +	0x00000000,
> +	0x00000080,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x20000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x60000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x61010011,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00001001,
> +	0x00001001,
> +	0x00000001,
> +	0x00001001,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x61020001,
> +	0x00000000,
> +	0x00000000,
> +	0x79000002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78050006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0xc0000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79080001,
> +	0x00000000,
> +	0x00000000,
> +	0x790a0001,
> +	0x00000000,
> +	0x00000000,
> +	0x78060003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78070003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78040001,
> +	0x00000000,
> +	0x00000000,
> +	0x79110000,
> +	0x00000000,
> +	0x780d0000,
> +	0x00000000,
> +	0x79060000,
> +	0x00000000,
> +	0x7907001f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7902000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x790c000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780a0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78080083,
> +	0x00004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x04004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x08004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x0c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x10004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x14004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x18004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x1c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x20004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x24004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x28004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x2c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x30004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x34004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x38004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x3c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x40004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x44004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x48004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x4c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x50004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x54004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x58004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x5c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x60004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x64004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x68004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x70004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x74004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x80004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78090043,
> +	0x02000000,
> +	0x22220000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x680b0001,
> +	0x780e0000,
> +	0x00000dc1,
> +	0x78240000,
> +	0x00000e01,
> +	0x784f0000,
> +	0x80000100,
> +	0x784d0000,
> +	0x40000000,
> +	0x782b0000,
> +	0x00000000,
> +	0x782c0000,
> +	0x00000000,
> +	0x782d0000,
> +	0x00000000,
> +	0x782e0000,
> +	0x00000000,
> +	0x782f0000,
> +	0x00000000,
> +	0x780f0000,
> +	0x00000000,
> +	0x78230000,
> +	0x00000e60,
> +	0x78210000,
> +	0x00000e80,
> +	0x78260000,
> +	0x00000000,
> +	0x78270000,
> +	0x00000000,
> +	0x78280000,
> +	0x00000000,
> +	0x78290000,
> +	0x00000000,
> +	0x782a0000,
> +	0x00000000,
> +	0x7b000005,
> +	0x00000004,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000000,
> +	0x05000000,	 /* cmds end */
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state start */
> +	0x00000000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state end */
> +};
> +
> +RO_RENDERSTATE(9);
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/3] drm/i915 Add golden context support for Gen9
  2014-09-13  0:07 ` [PATCH 1/3] drm/i915 Add golden context support for Gen9 Volkin, Bradley D
@ 2014-09-15 16:03   ` Reese, Armin C
  0 siblings, 0 replies; 5+ messages in thread
From: Reese, Armin C @ 2014-09-15 16:03 UTC (permalink / raw)
  To: Volkin, Bradley D; +Cc: intel-gfx

Hi Brad,

Thanks for the comments.  I'll have to find Damien's SKL patches.  I know he's been on vacation and I haven't looked for them.  Mika Kuoppala is submitting the IGT patches for null_state_gen.  They are related to mine, in a sense, since they generate the intel_renderstate_genx.c files.  But I don't think the IGT and kernel patches have to be submitted together.

Yeah, HEX dumps are pretty cruel.  I had to look at them in the windows driver, but I used our internal tools to disassemble them.

As far as the license header goes, I did add them in manually because the null_state_gen program simply generates the code.  Is there a location in the git repository for the standard license header?

Thanks,
Armin

-----Original Message-----
From: Volkin, Bradley D 
Sent: Friday, September 12, 2014 5:07 PM
To: Reese, Armin C
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915 Add golden context support for Gen9

On Fri, Sep 12, 2014 at 11:25:14AM -0700, armin.c.reese@intel.com wrote:
> From: Armin Reese <armin.c.reese@intel.com>
> 
> This patch includes the Gen9 batch buffer to generate a 'golden 
> context' for that product family.
> 
> Also:
> 1) IS_GEN9 macro has been added to drivers/gpu/drm/i915/i915_drv.h
> 2) drivers/gpu/drm/i915/intel_renderstate_gen8.c has been updated
>    to the version created by IGT null_state_gen

Hi Armin,

We'll have to split these extra changes out into separate patches. Damien's SKL series has the IS_GEN9 macro, which will cause a conflict. For the gen8 change, better to have a separate patch since it's not strictly related.

I think that the preferred way to handle this situation, at least with respect to the IS_GEN9 part, is to have a cover letter in which you document the patches on which your series depends but don't include them in your series. You'll obviously need to apply those changes locally, just as a separate patch that you don't send with the series.

Will you be sending the null_state_gen patch that adds the code to generate this?
I'm not too good at reviewing hex dumps ;)

One other comment below...

> 
> Signed-off-by: Armin Reese <armin.c.reese@intel.com>
> ---
>  drivers/gpu/drm/i915/Makefile                 |   3 +-
>  drivers/gpu/drm/i915/i915_drv.h               |   1 +
>  drivers/gpu/drm/i915/i915_gem_render_state.c  |   2 +
>  drivers/gpu/drm/i915/intel_renderstate.h      |   1 +
>  drivers/gpu/drm/i915/intel_renderstate_gen6.c |  23 +  
> drivers/gpu/drm/i915/intel_renderstate_gen7.c |  23 +  
> drivers/gpu/drm/i915/intel_renderstate_gen8.c | 831 
> +++++++++++++++++-----  drivers/gpu/drm/i915/intel_renderstate_gen9.c 
> | 981 ++++++++++++++++++++++++++
>  8 files changed, 1699 insertions(+), 166 deletions(-)  create mode 
> 100644 drivers/gpu/drm/i915/intel_renderstate_gen9.c
> 
> diff --git a/drivers/gpu/drm/i915/Makefile 
> b/drivers/gpu/drm/i915/Makefile index c1dd485..2caf4f4 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -38,7 +38,8 @@ i915-y += i915_cmd_parser.o \  # autogenerated null 
> render state  i915-y += intel_renderstate_gen6.o \
>  	  intel_renderstate_gen7.o \
> -	  intel_renderstate_gen8.o
> +	  intel_renderstate_gen8.o \
> +	  intel_renderstate_gen9.o
>  
>  # modesetting core code
>  i915-y += intel_bios.o \
> diff --git a/drivers/gpu/drm/i915/i915_drv.h 
> b/drivers/gpu/drm/i915/i915_drv.h index 17dfce0..7d9f091 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2122,6 +2122,7 @@ struct drm_i915_cmd_table {
>  #define IS_GEN6(dev)	(INTEL_INFO(dev)->gen == 6)
>  #define IS_GEN7(dev)	(INTEL_INFO(dev)->gen == 7)
>  #define IS_GEN8(dev)	(INTEL_INFO(dev)->gen == 8)
> +#define IS_GEN9(dev)	(INTEL_INFO(dev)->gen == 9)
>  
>  #define RENDER_RING		(1<<RCS)
>  #define BSD_RING		(1<<VCS)
> diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c 
> b/drivers/gpu/drm/i915/i915_gem_render_state.c
> index a9a62d7..98dcd94 100644
> --- a/drivers/gpu/drm/i915/i915_gem_render_state.c
> +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
> @@ -38,6 +38,8 @@ render_state_get_rodata(struct drm_device *dev, const int gen)
>  		return &gen7_null_state;
>  	case 8:
>  		return &gen8_null_state;
> +	case 9:
> +		return &gen9_null_state;
>  	}
>  
>  	return NULL;
> diff --git a/drivers/gpu/drm/i915/intel_renderstate.h 
> b/drivers/gpu/drm/i915/intel_renderstate.h
> index 6c792d3..5bd6985 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate.h
> +++ b/drivers/gpu/drm/i915/intel_renderstate.h
> @@ -29,6 +29,7 @@
>  extern const struct intel_renderstate_rodata gen6_null_state;  extern 
> const struct intel_renderstate_rodata gen7_null_state;  extern const 
> struct intel_renderstate_rodata gen8_null_state;
> +extern const struct intel_renderstate_rodata gen9_null_state;
>  
>  #define RO_RENDERSTATE(_g)						\
>  	const struct intel_renderstate_rodata gen ## _g ## _null_state = { \ 
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen6.c 
> b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> index 56c1429..c2568a7 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen6.c
> @@ -1,3 +1,26 @@
> +/*
> + * Copyright (c) 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person 
> +obtaining a
> + * copy of this software and associated documentation files (the 
> +"Software"),
> + * to deal in the Software without restriction, including without 
> +limitation
> + * the rights to use, copy, modify, merge, publish, distribute, 
> +sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom 
> +the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including 
> +the next
> + * paragraph) shall be included in all copies or substantial portions 
> +of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
> +EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
> +MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
> +SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
> +OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
> +ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
> +OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +

I guess a separate patch for the non-gen9 license changes as well. And if we don't already have patches for it, we probably want to update i-g-t to generate the correct license header so we don't have to manually add it if we ever update the golden state.

Brad

>  #include "intel_renderstate.h"
>  
>  static const u32 gen6_null_state_relocs[] = { diff --git 
> a/drivers/gpu/drm/i915/intel_renderstate_gen7.c 
> b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> index 419e35a..e14aec5 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen7.c
> @@ -1,3 +1,26 @@
> +/*
> + * Copyright (c) 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person 
> +obtaining a
> + * copy of this software and associated documentation files (the 
> +"Software"),
> + * to deal in the Software without restriction, including without 
> +limitation
> + * the rights to use, copy, modify, merge, publish, distribute, 
> +sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom 
> +the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including 
> +the next
> + * paragraph) shall be included in all copies or substantial portions 
> +of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
> +EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
> +MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
> +SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
> +OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
> +ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
> +OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
>  #include "intel_renderstate.h"
>  
>  static const u32 gen7_null_state_relocs[] = { diff --git 
> a/drivers/gpu/drm/i915/intel_renderstate_gen8.c 
> b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> index 75ef1b5d..88991e2 100644
> --- a/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen8.c
> @@ -1,81 +1,166 @@
> +/*
> + * Copyright (c) 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person 
> +obtaining a
> + * copy of this software and associated documentation files (the 
> +"Software"),
> + * to deal in the Software without restriction, including without 
> +limitation
> + * the rights to use, copy, modify, merge, publish, distribute, 
> +sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom 
> +the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including 
> +the next
> + * paragraph) shall be included in all copies or substantial portions 
> +of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
> +EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
> +MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
> +SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
> +OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
> +ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
> +OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
>  #include "intel_renderstate.h"
>  
>  static const u32 gen8_null_state_relocs[] = {
> -	0x00000048,
> -	0x00000050,
> -	0x00000060,
> -	0x000003ec,
> +	0x00000784,
> +	0x00000790,
> +	0x00000798,
> +	0x000007a8,
>  	-1,
>  };
>  
>  static const u32 gen8_null_state_batch[] = {
> +	0x7a000004,
> +	0x01000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x69040000,
> -	0x61020001,
> +	0x78140000,
> +	0x04000000,
> +	0x7820000a,
>  	0x00000000,
>  	0x00000000,
> -	0x79120000,
> +	0x80000000,
>  	0x00000000,
> -	0x79130000,
>  	0x00000000,
> -	0x79140000,
>  	0x00000000,
> -	0x79150000,
>  	0x00000000,
> -	0x79160000,
>  	0x00000000,
> -	0x6101000e,
> -	0x00000001,
>  	0x00000000,
> -	0x00000001,
> -	0x00000001,	 /* reloc */
>  	0x00000000,
> -	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x78130002,
> +	0x00000000,
> +	0x00000000,
> +	0x02001808,
> +	0x781f0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78510009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78100007,
> +	0x00000000,
> +	0x00000000,
> +	0x00010000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781b0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000800,
> +	0x00000000,
> +	0x78110008,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781e0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781d0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78120002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781c0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780c0000,
> +	0x00000000,
> +	0x78520003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x00000001,	 /* reloc */
>  	0x00000000,
> -	0xfffff001,
> -	0x00001001,
> -	0xfffff001,
> -	0x00001001,
> -	0x78230000,
> -	0x000006e0,
> -	0x78210000,
> -	0x00000700,
>  	0x78300000,
>  	0x08010040,
> -	0x78330000,
> -	0x08000000,
>  	0x78310000,
> -	0x08000000,
> +	0x1e000000,
>  	0x78320000,
> -	0x08000000,
> -	0x78240000,
> -	0x00000641,
> -	0x780e0000,
> -	0x00000601,
> -	0x780d0000,
> +	0x1e000000,
> +	0x78330000,
> +	0x1e000000,
> +	0x79190002,
>  	0x00000000,
> -	0x78180000,
> -	0x00000001,
> -	0x78520003,
>  	0x00000000,
>  	0x00000000,
> +	0x791a0002,
>  	0x00000000,
>  	0x00000000,
> -	0x78190009,
>  	0x00000000,
> +	0x791b0002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> +	0x79120000,
>  	0x00000000,
> +	0x79130000,
>  	0x00000000,
> +	0x79140000,
>  	0x00000000,
> +	0x79150000,
>  	0x00000000,
> +	0x79160000,
>  	0x00000000,
> +	0x78150009,
>  	0x00000000,
> -	0x781b0007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -84,11 +169,26 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78270000,
>  	0x00000000,
> -	0x782c0000,
> +	0x78190009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781a0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x00000000,
> -	0x781c0002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -103,7 +203,7 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78110008,
> +	0x78170009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -113,14 +213,17 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78290000,
>  	0x00000000,
> -	0x782e0000,
> +	0x78490001,
>  	0x00000000,
> -	0x781a0009,
>  	0x00000000,
> +	0x784a0000,
>  	0x00000000,
> +	0x784b0000,
> +	0x00000004,
> +	0x79170101,
>  	0x00000000,
> +	0x00000080,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -128,7 +231,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781d0007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -137,15 +239,10 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78280000,
>  	0x00000000,
> -	0x782d0000,
>  	0x00000000,
> -	0x78260000,
>  	0x00000000,
> -	0x782b0000,
>  	0x00000000,
> -	0x78150009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -156,7 +253,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78100007,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -165,20 +261,15 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781e0003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78120002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x781f0002,
> -	0x30400820,
>  	0x00000000,
>  	0x00000000,
> -	0x78510009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -189,22 +280,12 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78500003,
> -	0x00210000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78130002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x782a0000,
> -	0x00000480,
> -	0x782f0000,
> -	0x00000540,
> -	0x78140000,
> -	0x00000800,
> -	0x78170009,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -215,25 +296,13 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x7820000a,
> -	0x00000580,
>  	0x00000000,
> -	0x08080000,
>  	0x00000000,
>  	0x00000000,
> -	0x1f000002,
> -	0x00060000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x784d0000,
> -	0x40000000,
> -	0x784f0000,
> -	0x80000100,
> -	0x780f0000,
> -	0x00000740,
> -	0x78050006,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -241,48 +310,25 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78070003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78060003,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x78040001,
>  	0x00000000,
> -	0x00000001,
> -	0x79000002,
> -	0xffffffff,
>  	0x00000000,
>  	0x00000000,
> -	0x78080003,
> -	0x00006000,
> -	0x000005e0,	 /* reloc */
>  	0x00000000,
>  	0x00000000,
> -	0x78090005,
> -	0x02000000,
> -	0x22220000,
> -	0x02f60000,
> -	0x11230000,
> -	0x02850004,
> -	0x11230000,
> -	0x784b0000,
> -	0x0000000f,
> -	0x78490001,
>  	0x00000000,
>  	0x00000000,
> -	0x7b000005,
>  	0x00000000,
> -	0x00000003,
>  	0x00000000,
> -	0x00000001,
>  	0x00000000,
>  	0x00000000,
> -	0x05000000,	 /* cmds end */
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -297,8 +343,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x000004c0,	 /* state start */
> -	0x00000500,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -348,7 +392,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x00000092,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -361,30 +404,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x0060005a,
> -	0x21403ae8,
> -	0x3a0000c0,
> -	0x008d0040,
> -	0x0060005a,
> -	0x21603ae8,
> -	0x3a0000c0,
> -	0x008d0080,
> -	0x0060005a,
> -	0x21803ae8,
> -	0x3a0000d0,
> -	0x008d0040,
> -	0x0060005a,
> -	0x21a03ae8,
> -	0x3a0000d0,
> -	0x008d0080,
> -	0x02800031,
> -	0x2e0022e8,
> -	0x0e000140,
> -	0x08840001,
> -	0x05800031,
> -	0x200022e0,
> -	0x0e000e00,
> -	0x90031000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -410,38 +429,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
> -	0x06200000,
> -	0x00000002,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -449,8 +436,6 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0xf99a130c,
> -	0x799a130c,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> @@ -466,9 +451,525 @@ static const u32 gen8_null_state_batch[] = {
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> -	0x3f800000,
>  	0x00000000,
> -	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x20000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x60000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6101000e,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00001001,
> +	0x00001001,
> +	0x00000001,
> +	0x00001001,
> +	0x61020001,
> +	0x00000000,
> +	0x00000000,
> +	0x79000002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78050006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0xc0000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79080001,
> +	0x00000000,
> +	0x00000000,
> +	0x790a0001,
> +	0x00000000,
> +	0x00000000,
> +	0x78060003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78070003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78040001,
> +	0x00000000,
> +	0x00000000,
> +	0x79110000,
> +	0x00000000,
> +	0x780d0000,
> +	0x00000000,
> +	0x79060000,
> +	0x00000000,
> +	0x7907001f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7902000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x790c000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780a0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78080083,
> +	0x00004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x04004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x08004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x0c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x10004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x14004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x18004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x1c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x20004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x24004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x28004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x2c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x30004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x34004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x38004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x3c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x40004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x44004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x48004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x4c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x50004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x54004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x58004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x5c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x60004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x64004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x68004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x70004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x74004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x80004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78090043,
> +	0x02000000,
> +	0x22220000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x680b0001,
> +	0x78260000,
> +	0x00000000,
> +	0x78270000,
> +	0x00000000,
> +	0x78280000,
> +	0x00000000,
> +	0x78290000,
> +	0x00000000,
> +	0x782a0000,
> +	0x00000000,
> +	0x780e0000,
> +	0x00000dc1,
> +	0x78240000,
> +	0x00000e01,
> +	0x784f0000,
> +	0x80000100,
> +	0x784d0000,
> +	0x40000000,
> +	0x782b0000,
> +	0x00000000,
> +	0x782c0000,
> +	0x00000000,
> +	0x782d0000,
> +	0x00000000,
> +	0x782e0000,
> +	0x00000000,
> +	0x782f0000,
> +	0x00000000,
> +	0x780f0000,
> +	0x00000000,
> +	0x78230000,
> +	0x00000e60,
> +	0x78210000,
> +	0x00000e80,
> +	0x7b000005,
> +	0x00000004,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000000,
> +	0x05000000,	 /* cmds end */
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state start */
> +	0x00000000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
>  	0x00000000,
>  	0x00000000,
>  	0x00000000,
> diff --git a/drivers/gpu/drm/i915/intel_renderstate_gen9.c 
> b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
> new file mode 100644
> index 0000000..e1ea838
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/intel_renderstate_gen9.c
> @@ -0,0 +1,981 @@
> +/*
> + * Copyright (c) 2014 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person 
> +obtaining a
> + * copy of this software and associated documentation files (the 
> +"Software"),
> + * to deal in the Software without restriction, including without 
> +limitation
> + * the rights to use, copy, modify, merge, publish, distribute, 
> +sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom 
> +the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including 
> +the next
> + * paragraph) shall be included in all copies or substantial portions 
> +of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
> +EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
> +MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
> +SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
> +OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
> +ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
> +OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
> +#include "intel_renderstate.h"
> +
> +static const u32 gen9_null_state_relocs[] = {
> +	0x00000794,
> +	0x000007a0,
> +	0x000007a8,
> +	0x000007b8,
> +	-1,
> +};
> +
> +static const u32 gen9_null_state_batch[] = {
> +	0x7a000004,
> +	0x01000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x69040300,
> +	0x78140000,
> +	0x04000000,
> +	0x7820000a,
> +	0x00000000,
> +	0x00000000,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78130002,
> +	0x00000000,
> +	0x00000000,
> +	0x02001808,
> +	0x781f0004,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78510009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78100007,
> +	0x00000000,
> +	0x00000000,
> +	0x00010000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781b0007,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000800,
> +	0x00000000,
> +	0x78110008,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781e0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781d0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78120002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781c0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780c0000,
> +	0x00000000,
> +	0x78520003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78300000,
> +	0x08010040,
> +	0x78310000,
> +	0x1e000000,
> +	0x78320000,
> +	0x1e000000,
> +	0x78330000,
> +	0x1e000000,
> +	0x79190002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x791a0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x791b0002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79120000,
> +	0x00000000,
> +	0x79130000,
> +	0x00000000,
> +	0x79140000,
> +	0x00000000,
> +	0x79150000,
> +	0x00000000,
> +	0x79160000,
> +	0x00000000,
> +	0x78150009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78190009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x781a0009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78160009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78170009,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78490001,
> +	0x00000000,
> +	0x00000000,
> +	0x784a0000,
> +	0x00000000,
> +	0x784b0000,
> +	0x00000004,
> +	0x79170101,
> +	0x00000000,
> +	0x00000080,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x20000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79180006,
> +	0x60000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x61010011,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,	 /* reloc */
> +	0x00000000,
> +	0x00001001,
> +	0x00001001,
> +	0x00000001,
> +	0x00001001,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x61020001,
> +	0x00000000,
> +	0x00000000,
> +	0x79000002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78050006,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x40000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0x80000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79040002,
> +	0xc0000000,
> +	0x00000000,
> +	0x00000000,
> +	0x79080001,
> +	0x00000000,
> +	0x00000000,
> +	0x790a0001,
> +	0x00000000,
> +	0x00000000,
> +	0x78060003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78070003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78040001,
> +	0x00000000,
> +	0x00000000,
> +	0x79110000,
> +	0x00000000,
> +	0x780d0000,
> +	0x00000000,
> +	0x79060000,
> +	0x00000000,
> +	0x7907001f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7902000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x790c000f,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x780a0003,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78080083,
> +	0x00004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x04004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x08004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x0c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x10004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x14004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x18004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x1c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x20004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x24004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x28004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x2c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x30004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x34004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x38004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x3c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x40004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x44004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x48004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x4c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x50004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x54004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x58004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x5c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x60004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x64004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x68004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x6c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x70004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x74004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x7c004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x80004000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x78090043,
> +	0x02000000,
> +	0x22220000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x680b0001,
> +	0x780e0000,
> +	0x00000dc1,
> +	0x78240000,
> +	0x00000e01,
> +	0x784f0000,
> +	0x80000100,
> +	0x784d0000,
> +	0x40000000,
> +	0x782b0000,
> +	0x00000000,
> +	0x782c0000,
> +	0x00000000,
> +	0x782d0000,
> +	0x00000000,
> +	0x782e0000,
> +	0x00000000,
> +	0x782f0000,
> +	0x00000000,
> +	0x780f0000,
> +	0x00000000,
> +	0x78230000,
> +	0x00000e60,
> +	0x78210000,
> +	0x00000e80,
> +	0x78260000,
> +	0x00000000,
> +	0x78270000,
> +	0x00000000,
> +	0x78280000,
> +	0x00000000,
> +	0x78290000,
> +	0x00000000,
> +	0x782a0000,
> +	0x00000000,
> +	0x7b000005,
> +	0x00000004,
> +	0x00000001,
> +	0x00000000,
> +	0x00000001,
> +	0x00000000,
> +	0x00000000,
> +	0x05000000,	 /* cmds end */
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state start */
> +	0x00000000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x3f800000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,
> +	0x00000000,	 /* state end */
> +};
> +
> +RO_RENDERSTATE(9);
> --
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-09-15 16:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-12 18:25 [PATCH 1/3] drm/i915 Add golden context support for Gen9 armin.c.reese
2014-09-12 18:25 ` [PATCH 2/3] drm/i915: Alternate batch buffer end for golden context BB armin.c.reese
2014-09-12 18:25 ` [PATCH 3/3] drm/i915: Add debugfs file to dump entire logical context armin.c.reese
2014-09-13  0:07 ` [PATCH 1/3] drm/i915 Add golden context support for Gen9 Volkin, Bradley D
2014-09-15 16:03   ` Reese, Armin C

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.