[v5,2/3] pipeline: simple: Increase internal buffers for software ISP to 4
diff mbox series

Message ID 20251012142052.90611-3-robert.mader@collabora.com
State New
Headers show
Series
  • pipeline: simple: Allow buffer counts from 1 to 32
Related show

Commit Message

Robert Mader Oct. 12, 2025, 2:20 p.m. UTC
The Simple Pipeline handler supports a variety of hardware with
different capabilities and performances.

To improve performance and reliability of the cameras across the
supported range, increase the number of internal buffers to 4.

This allows lower performance devices more opportunity to process the
frames and increases stability.

Align the Simple Pipeline handler and Soft ISP buffering with the other
hardware based platforms and use 4 internal buffers.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>

---

This has been applied in postmarketOS since Oct 2024 and has fixed issues
reported by users.
---
 src/libcamera/pipeline/simple/simple.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kieran Bingham Oct. 12, 2025, 2:39 p.m. UTC | #1
Quoting Robert Mader (2025-10-12 15:20:51)
> The Simple Pipeline handler supports a variety of hardware with
> different capabilities and performances.
> 
> To improve performance and reliability of the cameras across the
> supported range, increase the number of internal buffers to 4.
> 
> This allows lower performance devices more opportunity to process the
> frames and increases stability.
> 
> Align the Simple Pipeline handler and Soft ISP buffering with the other
> hardware based platforms and use 4 internal buffers.
> 
> Signed-off-by: Robert Mader <robert.mader@collabora.com>
> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> 
> ---
> 
> This has been applied in postmarketOS since Oct 2024 and has fixed issues
> reported by users.
> ---
>  src/libcamera/pipeline/simple/simple.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 6e8271346..6a2ffe624 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -418,7 +418,7 @@ protected:
>  
>  private:
>         static constexpr unsigned int kMaxQueuedRequestsDevice = 4;
> -       static constexpr unsigned int kNumInternalBuffers = 3;
> +       static constexpr unsigned int kNumInternalBuffers = 4;
>  
>         struct EntityData {
>                 std::unique_ptr<V4L2VideoDevice> video;
> -- 
> 2.51.0
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 6e8271346..6a2ffe624 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -418,7 +418,7 @@  protected:
 
 private:
 	static constexpr unsigned int kMaxQueuedRequestsDevice = 4;
-	static constexpr unsigned int kNumInternalBuffers = 3;
+	static constexpr unsigned int kNumInternalBuffers = 4;
 
 	struct EntityData {
 		std::unique_ptr<V4L2VideoDevice> video;