drm/i915: Add OACONTROL to the command parser register whitelist.

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>
This commit is contained in:
Kenneth Graunke 2014-03-25 22:52:03 -07:00 committed by Daniel Vetter
parent 5c411bb18d
commit 180b813ced
2 changed files with 8 additions and 0 deletions

View File

@ -407,6 +407,12 @@ static const u32 gen7_render_regs[] = {
REG64(CL_PRIMITIVES_COUNT), REG64(CL_PRIMITIVES_COUNT),
REG64(PS_INVOCATION_COUNT), REG64(PS_INVOCATION_COUNT),
REG64(PS_DEPTH_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(0)),
REG64(GEN7_SO_NUM_PRIMS_WRITTEN(1)), REG64(GEN7_SO_NUM_PRIMS_WRITTEN(1)),
REG64(GEN7_SO_NUM_PRIMS_WRITTEN(2)), REG64(GEN7_SO_NUM_PRIMS_WRITTEN(2)),

View File

@ -427,6 +427,8 @@
/* There are the 4 64-bit counter registers, one for each stream output */ /* There are the 4 64-bit counter registers, one for each stream output */
#define GEN7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8) #define GEN7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)
#define OACONTROL 0x2360
#define _GEN7_PIPEA_DE_LOAD_SL 0x70068 #define _GEN7_PIPEA_DE_LOAD_SL 0x70068
#define _GEN7_PIPEB_DE_LOAD_SL 0x71068 #define _GEN7_PIPEB_DE_LOAD_SL 0x71068
#define GEN7_PIPE_DE_LOAD_SL(pipe) _PIPE(pipe, \ #define GEN7_PIPE_DE_LOAD_SL(pipe) _PIPE(pipe, \