[v3,0/5] software_isp: Implement DMABuf import for input buffers
mbox series

Message ID 20260519193907.86812-1-robert.mader@collabora.com
Headers show
Series
  • software_isp: Implement DMABuf import for input buffers
Related show

Message

Robert Mader May 19, 2026, 7:39 p.m. UTC
From the main commit:
In many cases we can import the GPU-ISP input buffer, a dmabuf from v4l2,
directly into EGL instead of mapping and uploading - i.e. copying - it.
This reduces memory bandwidth and CPU usage and can slightly improve
latency.

Notes: Previous iterations of these patches have already been tested on
various platforms, without known regressions and showing significant
improvements.

Changes in v3:
- Split up changes to createTexture2D() and eGLImage constructor
  into two commits.
- Added field to remember dmabuf import fails - and promote the relevant
  log to Info.
- Reordered and slightly extended commit message for "egl: Demote an
  error log to debug"
- Fixed some CI / linter errors

Changes in v2:
- Instead of adding parameters to createInputDMABufTexture2D(), remove
  them from createTexture2D instead.
- Use std::optional<DmaSyncer> to make the code easier to understand.
- Move error log level change into its own commit.

Robert Mader (5):
  egl: Add GL format parameter to eGLImage constructor
  egl: Remove some parameters from createTexture2D()
  debayer_egl: Implement dmabuf import for input buffers
  egl: Demote an error log to debug
  debayer_egl: Sync output buffer after processing stats

 include/libcamera/internal/egl.h           |  8 +--
 src/libcamera/egl.cpp                      | 31 +++++++++---
 src/libcamera/software_isp/debayer_egl.cpp | 57 +++++++++++++---------
 src/libcamera/software_isp/debayer_egl.h   |  4 +-
 4 files changed, 65 insertions(+), 35 deletions(-)