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

Message ID 20251010092226.41228-2-robert.mader@collabora.com
State New
Headers show
Series
  • [v4,1/3] pipeline: simple: Allow buffer counts from 1 to 32
Related show

Commit Message

Robert Mader Oct. 10, 2025, 9:22 a.m. UTC
This has been shipped downstream in postmarketOS for a while and, in
some cases, seems to improve stability on not-so-great drivers. It also
brings the software ISP in line with the default used otherwise.

Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
---
 src/libcamera/pipeline/simple/simple.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kieran Bingham Oct. 10, 2025, 10:28 a.m. UTC | #1
Quoting Robert Mader (2025-10-10 10:22:25)
> This has been shipped downstream in postmarketOS for a while and, in

"This has been shipped downstream" is really a comment for after the
'---' That's not relational to the commit.

> some cases, seems to improve stability on not-so-great drivers. It also
> brings the software ISP in line with the default used otherwise.


This should justify the patch at a technical level - not just because
it's applied somewhere else. Perhaps:

"""
pipeline: simple: Increase internal buffers for software ISP to 4

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.

---

This has been applied in postmarketOS since Xxxx and has fixed issues
reported by users.

"""

> 
> Signed-off-by: Robert Mader <robert.mader@collabora.com>
> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>
> ---
>  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 2dcba04ec..c4cb7c391 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -420,7 +420,7 @@ protected:
>         int queueRequestDevice(Camera *camera, Request *request) override;
>  
>  private:
> -       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 2dcba04ec..c4cb7c391 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -420,7 +420,7 @@  protected:
 	int queueRequestDevice(Camera *camera, Request *request) override;
 
 private:
-	static constexpr unsigned int kNumInternalBuffers = 3;
+	static constexpr unsigned int kNumInternalBuffers = 4;
 
 	struct EntityData {
 		std::unique_ptr<V4L2VideoDevice> video;