| Message ID | 20251024085130.995967-29-stefan.klug@ideasonboard.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
Quoting Stefan Klug (2025-10-24 17:50:52) > With the pipeline rework, the maxQueuedRequestsDevice should not be > necessary anymore, as prepare() and therefore the calculation for the > ISP regulation is called only as late as possible when a params buffer > was dequeued. > > However with unlimited maxQueuedRequestsDevice all the incoming requests > get immediately queued to the ipa with the sensor sequence number that > was anticipated for that request at queueRequestDevice time. Now when > the correction tries to mitigate dropped sequence numbers, it will call > computeParams() with sensor frame numbers that were not anticipated for > the requests queued to the IPA. There still might be a better solution > to this, but reinstantiating the limit reduces the effect. > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > --- > src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp > index cd9364cb8950..2d78721be63a 100644 > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp > @@ -764,7 +764,7 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate() > */ > > PipelineHandlerRkISP1::PipelineHandlerRkISP1(CameraManager *manager) > - : PipelineHandler(manager), hasSelfPath_(true) > + : PipelineHandler(manager, kRkISP1MinBufferCount), hasSelfPath_(true) The min buffer count doesn't sound like the right value to use for maxQueuedRequestsDevice...? Paul > { > } > > -- > 2.48.1 >
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index cd9364cb8950..2d78721be63a 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -764,7 +764,7 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate() */ PipelineHandlerRkISP1::PipelineHandlerRkISP1(CameraManager *manager) - : PipelineHandler(manager), hasSelfPath_(true) + : PipelineHandler(manager, kRkISP1MinBufferCount), hasSelfPath_(true) { }
With the pipeline rework, the maxQueuedRequestsDevice should not be necessary anymore, as prepare() and therefore the calculation for the ISP regulation is called only as late as possible when a params buffer was dequeued. However with unlimited maxQueuedRequestsDevice all the incoming requests get immediately queued to the ipa with the sensor sequence number that was anticipated for that request at queueRequestDevice time. Now when the correction tries to mitigate dropped sequence numbers, it will call computeParams() with sensor frame numbers that were not anticipated for the requests queued to the IPA. There still might be a better solution to this, but reinstantiating the limit reduces the effect. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> --- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)