Mesa (master): intel/tools: aubinator: Catch gen11 "enhanced execlist" submission
Scott D Phillips
scott-ph at kemper.freedesktop.org
Wed Mar 21 18:18:24 UTC 2018
Module: Mesa
Branch: master
Commit: cab8df1e3e2e5497f9f59847ce0355ee479ef223
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cab8df1e3e2e5497f9f59847ce0355ee479ef223
Author: Scott D Phillips <scott.d.phillips at intel.com>
Date: Fri Mar 9 16:29:41 2018 -0800
intel/tools: aubinator: Catch gen11 "enhanced execlist" submission
Different registers are used for execlist submission in gen11, so
also watch those. This code only watches element zero of the
submit queue, which is all aubdump currently writes.
Tested-by: Rafael Antognolli <rafael.antognolli at intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli at intel.com>
---
src/intel/tools/aubinator.c | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
index 77bad29051..8029dc1215 100644
--- a/src/intel/tools/aubinator.c
+++ b/src/intel/tools/aubinator.c
@@ -248,6 +248,9 @@ handle_memtrace_reg_write(uint32_t *p)
int engine;
static int render_elsp_writes = 0;
static int blitter_elsp_writes = 0;
+ static int render_elsq0 = 0;
+ static int blitter_elsq0 = 0;
+ uint8_t *pphwsp;
if (offset == 0x2230) {
render_elsp_writes++;
@@ -255,18 +258,29 @@ handle_memtrace_reg_write(uint32_t *p)
} else if (offset == 0x22230) {
blitter_elsp_writes++;
engine = GEN_ENGINE_BLITTER;
+ } else if (offset == 0x2510) {
+ render_elsq0 = value;
+ } else if (offset == 0x22510) {
+ blitter_elsq0 = value;
+ } else if (offset == 0x2550 || offset == 0x22550) {
+ /* nothing */;
} else {
return;
}
- if (render_elsp_writes > 3)
- render_elsp_writes = 0;
- else if (blitter_elsp_writes > 3)
- blitter_elsp_writes = 0;
- else
+ if (render_elsp_writes > 3 || blitter_elsp_writes > 3) {
+ render_elsp_writes = blitter_elsp_writes = 0;
+ pphwsp = (uint8_t*)gtt + (value & 0xfffff000);
+ } else if (offset == 0x2550) {
+ engine = GEN_ENGINE_RENDER;
+ pphwsp = (uint8_t*)gtt + (render_elsq0 & 0xfffff000);
+ } else if (offset == 0x22550) {
+ engine = GEN_ENGINE_BLITTER;
+ pphwsp = (uint8_t*)gtt + (blitter_elsq0 & 0xfffff000);
+ } else {
return;
+ }
- uint8_t *pphwsp = (uint8_t*)gtt + (value & 0xfffff000);
const uint32_t pphwsp_size = 4096;
uint32_t *context = (uint32_t*)(pphwsp + pphwsp_size);
uint32_t ring_buffer_head = context[5];
More information about the mesa-commit
mailing list