From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> There is this long standing nit of igt/tools/intel_error_decode asserting when you feed it an error state from a GPU the local libdrm does not know of. To fix this I need a tweak in drm_intel_decode_context_alloc to make it not assert but just return NULL (which seems an already possible return value). Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> --- intel/intel_decode.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/intel/intel_decode.c b/intel/intel_decode.c index e0a516644314..be6f77984d65 100644 --- a/intel/intel_decode.c +++ b/intel/intel_decode.c @@ -3815,32 +3815,35 @@ drm_public struct drm_intel_decode * drm_intel_decode_context_alloc(uint32_t devid) { struct drm_intel_decode *ctx; + int gen = 0; - ctx = calloc(1, sizeof(struct drm_intel_decode)); - if (!ctx) - return NULL; - - ctx->devid = devid; - ctx->out = stdout; - - if (intel_get_genx(devid, &ctx->gen)) + if (intel_get_genx(devid, &gen)) ; else if (IS_GEN8(devid)) - ctx->gen = 8; + gen = 8; else if (IS_GEN7(devid)) - ctx->gen = 7; + gen = 7; else if (IS_GEN6(devid)) - ctx->gen = 6; + gen = 6; else if (IS_GEN5(devid)) - ctx->gen = 5; + gen = 5; else if (IS_GEN4(devid)) - ctx->gen = 4; + gen = 4; else if (IS_9XX(devid)) - ctx->gen = 3; - else { - assert(IS_GEN2(devid)); - ctx->gen = 2; - } + gen = 3; + else if (IS_GEN2(devid)) + gen = 2; + + if (!gen) + return NULL; + + ctx = calloc(1, sizeof(struct drm_intel_decode)); + if (!ctx) + return NULL; + + ctx->devid = devid; + ctx->gen = gen; + ctx->out = stdout; return ctx; } -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel