[v3,0/2] libcamera: Add and use Matrix::transpose()
mbox series

Message ID 20260914123833.2724712-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • libcamera: Add and use Matrix::transpose()
Related show

Message

Laurent Pinchart Sept. 14, 2026, 12:38 p.m. UTC
Hello,

A change to the software ISP recently introduce hand-coded matrix
transposition. This is a feature that belongs to the Matrix class. This
small series adds a new Matrix::transpose() function and uses it in the
software ISP.

The Matrix implementation has been tested using a unit test, the
software ISP code has been compile-tested only.

Laurent Pinchart (2):
  libcamera: matrix: Add a transpose() function
  libcamera: software_isp: debayer_egl: Use Matrix::transpose()

 include/libcamera/internal/matrix.h        | 19 +++++++++++++++++++
 src/libcamera/matrix.cpp                   | 20 +++++++++++++++++++-
 src/libcamera/software_isp/debayer_egl.cpp | 19 ++++---------------
 test/matrix.cpp                            |  9 +++++++++
 4 files changed, 51 insertions(+), 16 deletions(-)


base-commit: 87c7285663aaad7608fdc18d5216ec6811c685c7

Comments

Laurent Pinchart Sept. 14, 2026, 3:43 p.m. UTC | #1
On Mon, Sep 14, 2026 at 03:38:31PM +0300, Laurent Pinchart wrote:
> Hello,
> 
> A change to the software ISP recently introduce hand-coded matrix
> transposition. This is a feature that belongs to the Matrix class. This
> small series adds a new Matrix::transpose() function and uses it in the
> software ISP.
> 
> The Matrix implementation has been tested using a unit test, the
> software ISP code has been compile-tested only.

Robert, as you authored commit 1df5cbe722a8 ("libcamera: software_isp:
debayer_egl: Use untransposed matrix to fix GLES 2.0"), would you be
able to test this ?

> Laurent Pinchart (2):
>   libcamera: matrix: Add a transpose() function
>   libcamera: software_isp: debayer_egl: Use Matrix::transpose()
> 
>  include/libcamera/internal/matrix.h        | 19 +++++++++++++++++++
>  src/libcamera/matrix.cpp                   | 20 +++++++++++++++++++-
>  src/libcamera/software_isp/debayer_egl.cpp | 19 ++++---------------
>  test/matrix.cpp                            |  9 +++++++++
>  4 files changed, 51 insertions(+), 16 deletions(-)
> 
> 
> base-commit: 87c7285663aaad7608fdc18d5216ec6811c685c7
Robert Mader Sept. 15, 2026, 3:36 p.m. UTC | #2
Hi Laurent,

On 14.09.26 17:43, Laurent Pinchart wrote:
> On Mon, Sep 14, 2026 at 03:38:31PM +0300, Laurent Pinchart wrote:
>> Hello,
>>
>> A change to the software ISP recently introduce hand-coded matrix
>> transposition. This is a feature that belongs to the Matrix class. This
>> small series adds a new Matrix::transpose() function and uses it in the
>> software ISP.
>>
>> The Matrix implementation has been tested using a unit test, the
>> software ISP code has been compile-tested only.
> Robert, as you authored commit 1df5cbe722a8 ("libcamera: software_isp:
> debayer_egl: Use untransposed matrix to fix GLES 2.0"), would you be
> able to test this ?

I quickly tested this on a device with a non-identity CCM and the result 
looks as expected. Thus:

Tested-by: Robert Mader <robert.mader@collabora.com>

>
>> Laurent Pinchart (2):
>>    libcamera: matrix: Add a transpose() function
>>    libcamera: software_isp: debayer_egl: Use Matrix::transpose()
>>
>>   include/libcamera/internal/matrix.h        | 19 +++++++++++++++++++
>>   src/libcamera/matrix.cpp                   | 20 +++++++++++++++++++-
>>   src/libcamera/software_isp/debayer_egl.cpp | 19 ++++---------------
>>   test/matrix.cpp                            |  9 +++++++++
>>   4 files changed, 51 insertions(+), 16 deletions(-)
>>
>>
>> base-commit: 87c7285663aaad7608fdc18d5216ec6811c685c7