summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2019-08-14 13:54:55 -0700
committerKenneth Graunke <kenneth@whitecape.org>2019-08-15 10:39:09 -0700
commitf741de236b5fa5522d8749a4b3e6d994fb98c630 (patch)
tree6e3988112b427e4881969a307861a949cde4bc62
parentceeaf93c8e0ac502410da82e07aa25b15b065b9c (diff)
isl: Enable Unorm Path in Color Pipe
Improves performance on my Icelake 8x8 locked to 700Mhz. For example, some GfxBench5 subtests have the following results: - [i965] gl_manhattan: ................ 7.01119% +/- 0.180971% (n=5) - [i965] gl_4 (Car Chase): 4.24351% +/- 0.175622% (n=5) - [i965] gl_blending: ................ 3.36327% +/- 0.180267% (n=5) - [i965] gl_5_normal (Aztec Ruins): 1.67962% +/- 0.243534% (n=10) - [iris] gl_manhattan: ................ 3.92357% +/- 0.073965% (n=25) - [iris] gl_4 (Car Chase): 2.17746% +/- 0.0826858% (n=5) - [iris] gl_blending: ................ 2.79599% +/- 0.803652% (n=15) - [iris] gl_5_normal (Aztec Ruins): 1.30930% +/- 0.106523% (n=25) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r--src/intel/genxml/gen11.xml1
-rw-r--r--src/intel/isl/isl_surface_state.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/intel/genxml/gen11.xml b/src/intel/genxml/gen11.xml
index e30143366f1..26c532b54bc 100644
--- a/src/intel/genxml/gen11.xml
+++ b/src/intel/genxml/gen11.xml
@@ -706,6 +706,7 @@
<field name="Surface QPitch" start="32" end="46" type="uint"/>
<field name="Base Mip Level" start="51" end="55" type="u4.1"/>
<field name="MOCS" start="56" end="62" type="uint"/>
+ <field name="EnableUnormPathInColorPipe" start="63" end="63" type="bool"/>
<field name="Width" start="64" end="77" type="uint"/>
<field name="Height" start="80" end="93" type="uint"/>
<field name="Surface Pitch" start="96" end="113" type="uint"/>
diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c
index c47b8e0e9da..be9566d05c3 100644
--- a/src/intel/isl/isl_surface_state.c
+++ b/src/intel/isl/isl_surface_state.c
@@ -454,6 +454,10 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
s.RenderCacheReadWriteMode = 0;
#endif
+#if GEN_GEN >= 11
+ s.EnableUnormPathInColorPipe = true;
+#endif
+
s.CubeFaceEnablePositiveZ = 1;
s.CubeFaceEnableNegativeZ = 1;
s.CubeFaceEnablePositiveY = 1;
@@ -760,6 +764,10 @@ isl_genX(buffer_fill_state_s)(void *state,
s.RenderCacheReadWriteMode = 0;
#endif
+#if GEN_GEN >= 11
+ s.EnableUnormPathInColorPipe = true;
+#endif
+
s.SurfaceBaseAddress = info->address;
#if GEN_GEN >= 6
s.MOCS = info->mocs;