<div dir="ltr"><div dir="ltr">Hi Kieran and Niklas,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 12 Mar 2021 at 14:44, Kieran Bingham <<a href="mailto:kieran.bingham@ideasonboard.com">kieran.bingham@ideasonboard.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Niklas,<br>
<br>
On 10/03/2021 15:44, Niklas Söderlund wrote:<br>
> Hello,<br>
> <br>
> This series adds a compliance tool to libcamera. It was developed out of<br>
> necessity while extending and debugging the IPU3 pipeline hander. Each<br>
> test in the tool so far have at one point triggered fatal issues in one<br>
> pipeline or another. All known issues are however either fixed or have<br>
> patches on ML to address them.<br>
<br>
There's more (or at least now) but this tool has helped in flushing out<br>
a few.<br>
<br>
The raspberry pi pipeline handler seems to fail a few of these tests.<br>
But all the more reason to integrate this.<br>
<br>
I can't say I've done a detailed review but I can say this:<br>
<br>
<br>
For both:<br>
<br>
Acked-by: Kieran Bingham <<a href="mailto:kieran.bingham@ideasonboard.com" target="_blank">kieran.bingham@ideasonboard.com</a>><br>
Tested-by: Kieran Bingham <<a href="mailto:kieran.bingham@ideasonboard.com" target="_blank">kieran.bingham@ideasonboard.com</a>><br>
<br>
<br>
On IPU3 (with my stability branch):<br>
120 tests executed, 96 tests passed, 24 tests skipped and 0 tests failed<br>
<br>
On vivid:<br>
120 tests executed, 96 tests passed, 24 tests skipped and 0 tests failed<br>
<br>
On UVC:<br>
120 tests executed, 96 tests passed, 24 tests skipped and 0 tests failed<br>
<br>
<br>
On RPi:<br>
120 tests executed, 78 tests passed, 12 tests skipped and 30 tests failed<br>
<br>
Naush - I had to do a quick fudge fix in the configure path to get this<br>
to run at all - so it might be interesting for you to try running this.<br></blockquote><div><br></div><div>Thanks for the heads-up.  This is indeed going to be a very handy tool for</div><div>everyone.</div><div><br></div><div>Regarding the results, I think I see the cause of the failures.  It is due to</div><div>the RPi pipeline handler not correctly handling only a RAW stream (i.e. no</div><div>ISP output).  Our entire flow depends on it, including running the IPA for</div><div>metering stats.  The solution here would be to allow our ISP to run so that</div><div>it only generates stats output and no image output.  However, this is not</div><div>a trivial change, and since we have never run this way before, my</div><div>confidence levels are not all that high.</div><div><br></div><div>A simpler fix would be to get the ISP to generate a small (say 320x240)</div><div>output image for internal use only so the pipeline behaves correctly.  Having</div><div>a quick go at this change seems to fix all failures.</div><div><br></div><div>For the skipped tests, I think we did have a brief discussion with Niklas some</div><div>time back when the tool was first introduced.  We advertise a particular</div><div>buffer count for each SteramRole in generateConfiguration(), and I think the</div><div>tool skips the tests with number of Requests lower than that count.  However,</div><div>this number is merely a guide and our pipeline handler ought to work correctly with</div><div>only a single Request queued.  We did not reach a conclusion on what was the right</div><div>way to approach this back then, but I think we said that I should not set our buffer</div><div>counts down to one. Niklas should we consider another number besides buffer count</div><div>returned out of generateConfiguration()? </div><div><br></div><div>Thanks,</div><div>Naush</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
> The tool is simple at the moment and only tests a single stream. As our<br>
> use-cases grow more complex I hope to find time to extend the tool to<br>
> cover more areas.<br>
<br>
Future feature request<br>
  --fail-fast<br>
<br>
So if it fails, it halts? (To help see what to fix)<br>
<br>
> <br>
> Niklas Söderlund (2):<br>
>   lc-compliance: Add a libcamera compliance tool<br>
>   lc-compliance: Add test stopping single stream with requests queued<br>
> <br>
>  src/lc-compliance/main.cpp           | 139 ++++++++++++++++++<br>
>  src/lc-compliance/meson.build        |  25 ++++<br>
>  src/lc-compliance/results.cpp        |  75 ++++++++++<br>
>  src/lc-compliance/results.h          |  45 ++++++<br>
>  src/lc-compliance/simple_capture.cpp | 212 +++++++++++++++++++++++++++<br>
>  src/lc-compliance/simple_capture.h   |  68 +++++++++<br>
>  src/lc-compliance/single_stream.cpp  |  98 +++++++++++++<br>
>  src/lc-compliance/tests.h            |  16 ++<br>
>  src/meson.build                      |   2 +<br>
>  9 files changed, 680 insertions(+)<br>
>  create mode 100644 src/lc-compliance/main.cpp<br>
>  create mode 100644 src/lc-compliance/meson.build<br>
>  create mode 100644 src/lc-compliance/results.cpp<br>
>  create mode 100644 src/lc-compliance/results.h<br>
>  create mode 100644 src/lc-compliance/simple_capture.cpp<br>
>  create mode 100644 src/lc-compliance/simple_capture.h<br>
>  create mode 100644 src/lc-compliance/single_stream.cpp<br>
>  create mode 100644 src/lc-compliance/tests.h<br>
> <br>
<br>
-- <br>
Regards<br>
--<br>
Kieran<br>
</blockquote></div></div>