[RFC,v2,00/14] Software ISP: Share params and stats buffers
mbox series

Message ID 20260216203034.27558-1-mzamazal@redhat.com
Headers show
Series
  • Software ISP: Share params and stats buffers
Related show

Message

Milan Zamazal Feb. 16, 2026, 8:30 p.m. UTC
This patch series implements parameters and statistics buffer sharing in
software ISP.  This is a rebase of an old patch series, adjusted for the
current master and GPU ISP.  It implements the following software ISP
TODOs:

- 2. Reconsider stats sharing
- 5. Store ISP parameters in per-frame buffers

The first part of the patches deals with parameters buffers, the next
part with statistics buffers.

It’s a way to make params correspond to the respective frames, which is
currently not the case with software ISP.  But with the plans to compute
stats on a GPU and make everything synchronous, the only useful patches
from this series may eventually be those dropping the software ISP
TODOs.  Which means I don’t plan to work on the patches further unless
we decide they are needed.

Changes in v2:
- Rebase on master and make it working with GPU ISP.

Milan Zamazal (14):
  libcamera: software_isp: Remove initializer_list include
  libcamera: software_isp: Introduce arguments for parameters buffers
  libcamera: software_isp: Separate allocation of the parameters buffer
  libcamera: software_isp: Track unused parameters buffers
  libcamera: software_isp: Allocation of multiple params buffers
  libcamera: software_isp: Allocate multiple parameters buffers
  libcamera: software_isp: Use multiple parameters buffers in IPA
  libcamera: software_isp: Share parameters buffers with debayering
  libcamera: software_isp: Remove per-frame params buffers TODO item
  libcamera: software_isp: Introduce arguments for statistics buffers
  libcamera: software_isp: Allocate statistics buffers
  libcamera: software_isp: Track statistics buffers
  libcamera: software_isp: Share statistics buffers with IPA
  libcamera: software_isp: Remove stats-sharing TODO item

 .../internal/software_isp/software_isp.h      |  21 ++-
 .../internal/software_isp/swstats_cpu.h       |  21 +--
 include/libcamera/ipa/soft.mojom              |  11 +-
 src/ipa/simple/soft_simple.cpp                |  94 +++++++------
 src/libcamera/pipeline/simple/simple.cpp      |  12 +-
 src/libcamera/software_isp/TODO               |  45 -------
 src/libcamera/software_isp/debayer.cpp        |  42 ++++--
 src/libcamera/software_isp/debayer.h          |  12 +-
 src/libcamera/software_isp/debayer_cpu.cpp    |  79 ++++++-----
 src/libcamera/software_isp/debayer_cpu.h      |  16 ++-
 src/libcamera/software_isp/debayer_egl.cpp    |  18 ++-
 src/libcamera/software_isp/debayer_egl.h      |  11 +-
 src/libcamera/software_isp/software_isp.cpp   | 126 +++++++++++++++---
 src/libcamera/software_isp/swstats_cpu.cpp    |  66 ++++-----
 14 files changed, 336 insertions(+), 238 deletions(-)