[Libva] [PATCH 00/31] Encoder Architecture Changes (Primarily AVC)

Qu, Pengfei pengfei.qu at intel.com
Fri Jan 13 02:38:09 UTC 2017



-----Original Message-----
From: Libva [mailto:libva-bounces at lists.freedesktop.org] On Behalf Of Xiang, Haihao
Sent: Thursday, January 12, 2017 10:15 AM
To: Zhao, Yakui <yakui.zhao at intel.com>; seanvk at posteo.de
Cc: libva at lists.freedesktop.org
Subject: Re: [Libva] [PATCH 00/31] Encoder Architecture Changes (Primarily AVC)

On Thu, 2017-01-12 at 09:40 +0800, Zhao Yakui wrote:
> On 01/11/2017 07:37 AM, Sean V Kelley wrote:
> > Encoder architecture restructuring for H.264 (with some impact to 
> > HEVC now) on HSW+
> > * Improvements to the shaders
> > * Improvements to the B frame efficiency
> > * Improvements to the low bit rate mode
> > * Improved features in two stage VME/PAK pipeline
> > 
> 
> After checking the code, it seems that assert is used widely.
> But the assert is only for the debug purpose, which causes that the 
> program will abort. This doesn't make sense. It will be better that 
> the failure status is returned instead of crash program.
> 
> At the same time if the NDEBUG definition is added, the check is 
> disabled. In such case the driver should handle the failure scenario 
> and return the failure status to upper middleware.
> 
> That is to say: The assert had better be avoided and add more check to 
> check the failure status.

We can add some assert() for internal logic check in the driver, it would be better not use assert() for input validation.

Thanks
Haihao
[Pengfei] I will keep assert for internal logic and replace assert for input validation.

> Thanks.
> 
> > 
> > Pengfei Qu (31):
> >    ENC: move gpe related function into src/i965_gpe_utils.h/c
> >    ENC: add common structure for AVC/HEVC encoder
> >    ENC:add context init function for AVC/HEVC encoder
> >    ENC: add const data/table for AVC encoder
> >    ENC: add AVC kernel binary on SKL
> >    ENC: add AVC common structure and functions
> >    ENC: add kernel related structure and define for AVC
> >    ENC: add misc parameter check for AVC encoder
> >    ENC: add resource and surface allocation and free function for 
> > AVC
> >      encoder
> >    ENC: add init table for frame/mb brc update
> >    ENC: add resource/surface allocation/free function for AVC 
> > encoder
> >    ENC: add kernel media object related functions for AVC encoder
> >    ENC: add scaling kernel for AVC encoder
> >    ENC: add const data/table init function for AVC RC logic
> >    ENC: add BRC init/reset kernel for AVC RC logic
> >    ENC: add BRC frame update kernel for AVC RC logic
> >    ENC: add BRC MB level update kernel for AVC RC logic
> >    ENC: add REF frame QA caculation and MB level const data init for 
> > AVC
> >      MBenc stage
> >    ENC: MBENC kernel for AVC encoder
> >    ENC: ME kernel for AVC encoder
> >    ENC: WP/SFD kernel for AVC encoder
> >    ENC: kernel init/destroy function for AVC encoder
> >    ENC: kernel related parameter check function for AVC encoder
> >    ENC: VME pipeline init/prepare/run function for AVC encoder
> >    ENC: add MFX command for AVC encoder
> >    ENC: add MFX command for AVC encoder
> >    ENC: add MFX Picture/slice level command init for AVC encoder
> >    ENC: add MFX pipeline init/prepare/run for AVC encoder
> >    ENC: add VME/MFX context init for AVC encoder
> >    ENC: add Misc parameter check for AVC encoder
> >    ENC:support more quality level and switch to new AVC encoder 
> > solution
> >      on SKL
> > 
> >   src/Makefile.am                |    11 +
> >   src/gen9_avc_const_def.c       |  1090 ++++
> >   src/gen9_avc_const_def.h       |   115 +
> >   src/gen9_avc_encoder.c         |  7613 ++++++++++++++++++++++++
> >   src/gen9_avc_encoder.h         |  2345 ++++++++
> >   src/gen9_avc_encoder_kernels.c | 12081
> > +++++++++++++++++++++++++++++++++++++++
> >   src/gen9_avc_encoder_kernels.h |    36 +
> >   src/gen9_vp9_encoder.c         |   154 +-
> >   src/gen9_vp9_encoder.h         |    10 -
> >   src/i965_avc_encoder_common.c  |   319 ++
> >   src/i965_avc_encoder_common.h  |   305 +
> >   src/i965_drv_video.c           |     8 +-
> >   src/i965_drv_video.h           |     2 +
> >   src/i965_encoder.c             |    39 +-
> >   src/i965_encoder_api.h         |    59 +
> >   src/i965_encoder_common.c      |   124 +
> >   src/i965_encoder_common.h      |   533 ++
> >   src/i965_gpe_utils.c           |   265 +-
> >   src/i965_gpe_utils.h           |    87 +
> >   19 files changed, 25026 insertions(+), 170 deletions(-)
> >   create mode 100755 src/gen9_avc_const_def.c
> >   create mode 100755 src/gen9_avc_const_def.h
> >   create mode 100755 src/gen9_avc_encoder.c
> >   create mode 100755 src/gen9_avc_encoder.h
> >   create mode 100755 src/gen9_avc_encoder_kernels.c
> >   create mode 100755 src/gen9_avc_encoder_kernels.h
> >   create mode 100755 src/i965_avc_encoder_common.c
> >   create mode 100755 src/i965_avc_encoder_common.h
> >   create mode 100755 src/i965_encoder_api.h
> >   create mode 100755 src/i965_encoder_common.c
> >   create mode 100755 src/i965_encoder_common.h
> > 
> 
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva
_______________________________________________
Libva mailing list
Libva at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libva


More information about the Libva mailing list