Message ID | 1658513179-11943-1-git-send-email-dmitry.v.rogozhkin@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] qsv: Update ffmpeg qsv_errors to recognize GPU hang | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Fri, 2022-07-22 at 11:06 -0700, Dmitry Rogozhkin wrote: > GPU hang is one of the most typical errors on Intel GPUs in > case something goes wrong. It's important to recognize it > explicitly for easier bugs triage. Also, this error code > can be used to trigger GPU recovery path in self-written > applications. > > Signed-off-by: Hon Wai Chow <hon.wai.chow@intel.com> > Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> > --- > libavcodec/qsv.c | 1 + > libavfilter/qsvvpp.c | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c > index 385b43b..55bcb6e 100644 > --- a/libavcodec/qsv.c > +++ b/libavcodec/qsv.c > @@ -125,6 +125,7 @@ static const struct { > { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video > parameters" }, > { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined > behavior" }, > { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device > failed" }, > + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU > Hang" }, > { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio > parameters" }, > { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio > parameters" }, > > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c > index 954f882..7504906 100644 > --- a/libavfilter/qsvvpp.c > +++ b/libavfilter/qsvvpp.c > @@ -100,6 +100,7 @@ static const struct { > { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video > parameters" }, > { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined > behavior" }, > { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device > failed" }, > + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU > Hang" }, > { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio > parameters" }, > { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio > parameters" }, > Could you add other missing qsv video errors or warnings too ? Thanks Haihao
On Mon, 2022-07-25 at 01:21 +0000, Xiang, Haihao wrote: > On Fri, 2022-07-22 at 11:06 -0700, Dmitry Rogozhkin wrote: > > GPU hang is one of the most typical errors on Intel GPUs in > > case something goes wrong. It's important to recognize it > > explicitly for easier bugs triage. Also, this error code > > can be used to trigger GPU recovery path in self-written > > applications. > > > > Signed-off-by: Hon Wai Chow <hon.wai.chow@intel.com> > > Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> > > --- > > libavcodec/qsv.c | 1 + > > libavfilter/qsvvpp.c | 1 + > > 2 files changed, 2 insertions(+) > > > > diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c > > index 385b43b..55bcb6e 100644 > > --- a/libavcodec/qsv.c > > +++ b/libavcodec/qsv.c > > @@ -125,6 +125,7 @@ static const struct { > > { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid > > video > > parameters" }, > > { > > MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined > > behavior" }, > > { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device > > failed" }, > > + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU > > Hang" }, > > { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), > > "incompatible audio > > parameters" }, > > { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid > > audio > > parameters" }, > > > > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c > > index 954f882..7504906 100644 > > --- a/libavfilter/qsvvpp.c > > +++ b/libavfilter/qsvvpp.c > > @@ -100,6 +100,7 @@ static const struct { > > { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid > > video > > parameters" }, > > { > > MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined > > behavior" }, > > { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device > > failed" }, > > + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU > > Hang" }, > > { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), > > "incompatible audio > > parameters" }, > > { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid > > audio > > parameters" }, > > > > Could you add other missing qsv video errors or warnings too ? Yes, sure. For what I see we are missing 3 statuses returnable by mediasdk library implementations: MFX_ERR_GPU_HANG, MFX_ERR_NONE_PARTIAL_OUTPUT, MFX_ERR_REALLOC_SURFACE. Other statuses defined in mfxdefs.h are not returnable to ffmpeg level (they are internal or plugin specific stuff). I will resubmit the patch under other name with added stuff. > > Thanks > Haihao > >
diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 385b43b..55bcb6e 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -125,6 +125,7 @@ static const struct { { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device failed" }, + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU Hang" }, { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio parameters" }, { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio parameters" }, diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 954f882..7504906 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -100,6 +100,7 @@ static const struct { { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device failed" }, + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU Hang" }, { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio parameters" }, { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio parameters" },