diff options
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/tools/error2aub.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/intel/tools/error2aub.c b/src/intel/tools/error2aub.c index 33d24164b76..e4d985543c2 100644 --- a/src/intel/tools/error2aub.c +++ b/src/intel/tools/error2aub.c @@ -208,19 +208,27 @@ engine_from_name(const char *engine_name, const struct { const char *match; enum drm_i915_gem_engine_class engine_class; + bool parse_instance; } rings[] = { - { "rcs", I915_ENGINE_CLASS_RENDER }, - { "vcs", I915_ENGINE_CLASS_VIDEO }, - { "vecs", I915_ENGINE_CLASS_VIDEO_ENHANCE }, - { "bcs", I915_ENGINE_CLASS_COPY }, - { "global", I915_ENGINE_CLASS_INVALID }, + { "rcs", I915_ENGINE_CLASS_RENDER, true }, + { "vcs", I915_ENGINE_CLASS_VIDEO, true }, + { "vecs", I915_ENGINE_CLASS_VIDEO_ENHANCE, true }, + { "bcs", I915_ENGINE_CLASS_COPY, true }, + { "global", I915_ENGINE_CLASS_INVALID, false }, + { "render command stream", I915_ENGINE_CLASS_RENDER, false }, + { "blt command stream", I915_ENGINE_CLASS_COPY, false }, + { "bsd command stream", I915_ENGINE_CLASS_VIDEO, false }, + { "vebox command stream", I915_ENGINE_CLASS_VIDEO_ENHANCE, false }, { NULL, I915_ENGINE_CLASS_INVALID }, }, *r; for (r = rings; r->match; r++) { if (strncasecmp(engine_name, r->match, strlen(r->match)) == 0) { *engine_class = r->engine_class; - *engine_instance = strtol(engine_name + strlen(r->match), NULL, 10); + if (r->parse_instance) + *engine_instance = strtol(engine_name + strlen(r->match), NULL, 10); + else + *engine_instance = 0; return; } } |