[Mesa-dev] [PATCH 01/20] intel/aub_read: handle video engine execlists writes
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Tue Sep 25 08:23:40 UTC 2018
We don't strictly need this, but because we setup the engine in
aub_write, it might be worth parsing it correctly for the sake of
completeness.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
src/intel/tools/aub_read.c | 23 +++++++++++++++++++++++
src/intel/tools/aub_read.h | 3 +++
2 files changed, 26 insertions(+)
diff --git a/src/intel/tools/aub_read.c b/src/intel/tools/aub_read.c
index d85f6f375f5..ee2fe7f7882 100644
--- a/src/intel/tools/aub_read.c
+++ b/src/intel/tools/aub_read.c
@@ -204,6 +204,16 @@ handle_memtrace_reg_write(struct aub_read *read, const uint32_t *p)
context_descriptor = (uint64_t)read->blitter_elsp[2] << 32 |
read->blitter_elsp[3];
break;
+ case EXECLIST_SUBMITPORT_VCSUNIT0: /* video elsp */
+ read->video_elsp[read->video_elsp_index++] = value;
+ if (read->video_elsp_index < 4)
+ return;
+
+ read->video_elsp_index = 0;
+ engine = GEN_ENGINE_VIDEO;
+ context_descriptor = (uint64_t)read->video_elsp[2] << 32 |
+ read->video_elsp[3];
+ break;
case EXECLIST_SQ_CONTENTS0_RCSUNIT: /* render elsq0 lo */
read->render_elsp[3] = value;
return;
@@ -220,6 +230,14 @@ handle_memtrace_reg_write(struct aub_read *read, const uint32_t *p)
read->blitter_elsp[2] = value;
return;
break;
+ case EXECLIST_SQ_CONTENTS0_VCSUNIT0: /* video elsq0 lo */
+ read->video_elsp[3] = value;
+ return;
+ break;
+ case (EXECLIST_SQ_CONTENTS0_VCSUNIT0 + 4): /* video elsq0 hi */
+ read->video_elsp[2] = value;
+ return;
+ break;
case EXECLIST_CONTROL_RCSUNIT: /* render elsc */
engine = GEN_ENGINE_RENDER;
context_descriptor = (uint64_t)read->render_elsp[2] << 32 |
@@ -230,6 +248,11 @@ handle_memtrace_reg_write(struct aub_read *read, const uint32_t *p)
context_descriptor = (uint64_t)read->blitter_elsp[2] << 32 |
read->blitter_elsp[3];
break;
+ case EXECLIST_CONTROL_VCSUNIT0: /* video elsc */
+ engine = GEN_ENGINE_VIDEO;
+ context_descriptor = (uint64_t)read->video_elsp[2] << 32 |
+ read->video_elsp[3];
+ break;
default:
return;
}
diff --git a/src/intel/tools/aub_read.h b/src/intel/tools/aub_read.h
index 3502c0887bb..700d74990e4 100644
--- a/src/intel/tools/aub_read.h
+++ b/src/intel/tools/aub_read.h
@@ -36,6 +36,7 @@ extern "C" {
enum gen_engine {
GEN_ENGINE_RENDER = 1,
GEN_ENGINE_BLITTER = 2,
+ GEN_ENGINE_VIDEO = 3,
};
struct aub_read {
@@ -64,6 +65,8 @@ struct aub_read {
int render_elsp_index;
uint32_t blitter_elsp[4];
int blitter_elsp_index;
+ uint32_t video_elsp[4];
+ int video_elsp_index;
struct gen_device_info devinfo;
};
--
2.19.0
More information about the mesa-dev
mailing list