summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2015-06-25 17:46:55 -0700
committerBen Widawsky <benjamin.widawsky@intel.com>2015-06-25 17:51:27 -0700
commite60bb93a0fccb3fd4e5d8f0040ad57004bd1b3e0 (patch)
treebb6e29ecd95bcca7bf079393f37c92c76c567bfd
parent203983f842a889b279698fdea46e83ee4450a1db (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.c22
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);
+ }
}
}