[libcamera-devel,v3,0/8] ipu3: imgu: Improve ImgU calculation procedure
mbox series

Message ID 20210513152116.17666-1-jacopo@jmondi.org
Headers show
Series
  • ipu3: imgu: Improve ImgU calculation procedure
Related show

Message

Jacopo Mondi May 13, 2021, 3:21 p.m. UTC
This series applies
https://github.com/intel/intel-ipu3-pipecfg/commit/243d13446e44646c92118c0f0cb7fdc89b91f85c

To the ImgU pipeline calculation.

v3:
Huston, we have problems, several ones.

Two have them have a bug/issue associated, the third is run-time performace
issue

1) https://github.com/intel/intel-ipu3-pipecfg/issues/2
2) https://bugs.libcamera.org/show_bug.cgi?id=32
3) patch 1/8 considerably increases the number of tested configurations

Has you know the procedure is iterative. The script constructs a list of
possible pipe configurations, then walks all of them to find the one with the
larger FOV. Splendid!

I took some measurement when starting the Android Camera HAL, which tests camera
resolutions at startup time

- currently with libcamera mailine we test 44718 combinations. The startup
  delay is barely noticeable
- with this series applied, due to 3), 282340 combinations are tested. Starting
  the HAL is a bit slower, but nothing crazy. Also the HAL is usually started at
  system boot, so users are not impacted.
- if I fix 2), as reported in the bug, 3644086 combinations are tested. Starting
  the HAL takes 5/10 seconds
- if 1) gets fixed starting the HAL takes more than 15 seconds

I think this is another hint that the current ImgU configuration procedure
should be trashed as soon as possible, and the vendor should provide enough
documentation/support to implement the pipe configuration in a sane way if this
has to go in any production device for real.

Jacopo Mondi (8):
  libcamera: ipu3: imgu: Update BDS calculation process
  libcamera: ipu3: imgu: Filter resolutions < IF_CROP_MAX
  libcamera: ipu3: imgu: Filter BDS by height
  libcamera: ipu3: imgu: Fix BDS height calculation
  libcamera: ipu3: imgu: Fix IF height selection
  libcamera: ipu3: imgu: Fix BSD height size comparison
  libcamera: ipu3: imgu: Add pipe calculation debug
  libcamera: ipu3: imgu: Bump script version

 src/libcamera/pipeline/ipu3/imgu.cpp | 117 ++++++++++++++++++++++-----
 1 file changed, 95 insertions(+), 22 deletions(-)

--
2.31.1