[libcamera-devel] [PATCH 0/2] pipeline-handler: Consider in-flight max requests

Umang Jain umang.jain at ideasonboard.com
Mon Dec 12 16:02:54 CET 2022


This series address the issue where over-queuing of FCQueue (or similar)
can happen by the pipeline-handler class if not taken care of.

The idea is each platform can define its max in-flight requests it can
handle at any given point. Set that as a constraint in pipeline-handler
base class. The pipeline-handler base class will enforce that constraint
so that, over-queue of requests does not happen.

Patch 1/2 moves kMaxframeContexts for IPU3 and RkISP1 to .mojom
interface (common ground between IPA/PH). This will help respective
pipeline-handlers to access the global variable. 

Patch 2/2 implements the constraint. It basically uses a counter to
keep track of how many requests are currently queued to the hardware
based on which - it decides whether to queue the next request or not.

Umang Jain (2):
  ipa: Move kMaxFrameContexts to mojom interface
  libcamera: pipeline-handler: Consider max in-flight requests
    constraint

 include/libcamera/internal/pipeline_handler.h |  4 ++
 include/libcamera/ipa/ipu3.mojom              |  3 ++
 include/libcamera/ipa/rkisp1.mojom            |  3 ++
 src/ipa/ipu3/ipu3.cpp                         |  3 --
 src/ipa/rkisp1/rkisp1.cpp                     |  3 --
 src/libcamera/pipeline/ipu3/ipu3.cpp          |  1 +
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  1 +
 src/libcamera/pipeline_handler.cpp            | 51 ++++++++++++++++++-
 8 files changed, 62 insertions(+), 7 deletions(-)

-- 
2.38.1



More information about the libcamera-devel mailing list