diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2015-06-25 17:46:55 -0700 |
---|---|---|
committer | Ben Widawsky <benjamin.widawsky@intel.com> | 2015-06-25 17:51:27 -0700 |
commit | e60bb93a0fccb3fd4e5d8f0040ad57004bd1b3e0 (patch) | |
tree | bb6e29ecd95bcca7bf079393f37c92c76c567bfd | |
parent | 203983f842a889b279698fdea46e83ee4450a1db (diff) |
intel: Fix gtt entries for gen8+aub-stuff
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
-rw-r--r-- | intel/intel_bufmgr_gem.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c index 60c06fccf..8f69a3a2a 100644 --- a/intel/intel_bufmgr_gem.c +++ b/intel/intel_bufmgr_gem.c @@ -3222,7 +3222,6 @@ void drm_intel_bufmgr_gem_set_aub_dump(drm_intel_bufmgr *bufmgr, int enable) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - int entry = 0x200003; int i; int gtt_size = 0x10000; const char *filename; @@ -3261,17 +3260,26 @@ drm_intel_bufmgr_gem_set_aub_dump(drm_intel_bufmgr *bufmgr, int enable) aub_out(bufmgr_gem, 0); /* timestamp */ aub_out(bufmgr_gem, 0); /* comment len */ - /* Set up the GTT. The max we can handle is 256M */ + /* Set up the GTT. The max we can handle is 356 */ aub_out(bufmgr_gem, CMD_AUB_TRACE_HEADER_BLOCK | ((bufmgr_gem->gen >= 8 ? 6 : 5) - 2)); /* Need to use GTT_ENTRY type for recent emulator */ aub_out(bufmgr_gem, AUB_TRACE_MEMTYPE_GTT_ENTRY | 0 | AUB_TRACE_OP_DATA_WRITE); aub_out(bufmgr_gem, 0); /* subtype */ aub_out(bufmgr_gem, 0); /* offset */ - aub_out(bufmgr_gem, gtt_size); /* size */ - if (bufmgr_gem->gen >= 8) - aub_out(bufmgr_gem, 0); - for (i = 0x000; i < gtt_size; i += 4, entry += 0x1000) { - aub_out(bufmgr_gem, entry); + if (bufmgr_gem->gen >= 8) { + uint64_t entry = 0x200001; + gtt_size *= 2; + aub_out(bufmgr_gem, gtt_size); /* size */ + for (i = 0x000; i < gtt_size; i += 8, entry += 0x1000) { + aub_out(bufmgr_gem, 0); + aub_out(bufmgr_gem, entry); + } + } else { + int entry = 0x200003; + aub_out(bufmgr_gem, gtt_size); /* size */ + for (i = 0x000; i < gtt_size; i += 4, entry += 0x1000) { + aub_out(bufmgr_gem, entry); + } } } |