drm/i915: Add OACONTROL to the command parser register whitelist.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 26 Mar 2014 05:52:03 +0000 (22:52 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 1 Apr 2014 20:58:16 +0000 (22:58 +0200)
Mesa needs to be able to write OACONTROL in order to expose the
Observability Architecture's performance counters via OpenGL.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
[danvet: Add comment that this is just a temporary work-around and
that we need to check more things before we can allow OACONTROL writes
for real everywhere.]
[danvet 2: Squash in fixup to avoid a DRM_ERROR due to unsorted reg
list, spotted by Jani.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_cmd_parser.c
drivers/gpu/drm/i915/i915_reg.h

index bae7c2f336929c3bd37f3ab5b909fc0db3f2e6c9..788bd96b266b6d9429ca35775172f8abb564f161 100644 (file)
@@ -407,6 +407,12 @@ static const u32 gen7_render_regs[] = {
        REG64(CL_PRIMITIVES_COUNT),
        REG64(PS_INVOCATION_COUNT),
        REG64(PS_DEPTH_COUNT),
+       /*
+        * FIXME: This is just to keep mesa working for now, we need to check
+        * that mesa resets this again and that it doesn't use any of the
+        * special modes which write into the gtt.
+        */
+       OACONTROL,
        REG64(GEN7_SO_NUM_PRIMS_WRITTEN(0)),
        REG64(GEN7_SO_NUM_PRIMS_WRITTEN(1)),
        REG64(GEN7_SO_NUM_PRIMS_WRITTEN(2)),
index bd7636604f7e9936f903275c8fe29aee0b02189e..1f927a53fe1963de573ddcf6e4933a25399a187b 100644 (file)
 /* There are the 4 64-bit counter registers, one for each stream output */
 #define GEN7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)
 
+#define OACONTROL 0x2360
+
 #define _GEN7_PIPEA_DE_LOAD_SL 0x70068
 #define _GEN7_PIPEB_DE_LOAD_SL 0x71068
 #define GEN7_PIPE_DE_LOAD_SL(pipe) _PIPE(pipe, \