| Message ID | 20260817134042.277168-1-johannes.goede@oss.qualcomm.com |
|---|---|
| Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E9691C3264 for <parsemail@patchwork.libcamera.org>; Mon, 17 Aug 2026 13:40:50 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 863A068274; Mon, 17 Aug 2026 15:40:49 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="A4vT7L5t"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Kxgt9166"; dkim-atps=neutral Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 8D57E68215 for <libcamera-devel@lists.libcamera.org>; Mon, 17 Aug 2026 15:40:47 +0200 (CEST) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67HD62Vx2748537 for <libcamera-devel@lists.libcamera.org>; Mon, 17 Aug 2026 13:40:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=9Yqdlx5oAuwW4phDoD0s2/ StqlkS2295Wjxxxr0Z0OY=; b=A4vT7L5tQO1J98Hy15QdVwJ9B0IIKrxpZQWj/X SCsdEitBqOclD8wfc9HWeBkZqKBMerG9ehSKOJH1SdM4/sGDvtfKP7USEuxSp7I2 OgSzhkhzasqWz4xgRxiB78mcA7vCMEYk6EcXwNotaK6XkNuQfrLXUdo4xAoM0ZFW CtFKpMdShItgARSf77bR/H8Iwn+itVDJHtMoXnNds+6XeNIc7C/4W5nuBoOpVKf5 RHSU4rsZ7mlZh9yTJoQmLyE9p0IT6i5Cpy+IrcJPjK7Ug0xsorvVEfwinsjs1O/O f88M4qI3P27b583eqIJ3I6jkvWFHLEtDNZ2Jw1FSeZPXAXhQ== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g3y77931d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for <libcamera-devel@lists.libcamera.org>; Mon, 17 Aug 2026 13:40:45 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-92e5e38fbc5so359024285a.2 for <libcamera-devel@lists.libcamera.org>; Mon, 17 Aug 2026 06:40:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786974045; x=1787578845; darn=lists.libcamera.org; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to :content-type; bh=9Yqdlx5oAuwW4phDoD0s2/StqlkS2295Wjxxxr0Z0OY=; b=Kxgt9166GNhg1EpPckamLWOcuoZuPCSGTvu/mJY5GkAqzAWic2lnDihzU+71KgDbDH N8GzcLY+jvdzMvYiRxYLTpI3gR/R2m7aUpw2tct2C4qtsyvjVDaJjvl9NfAB4PjgHCvw 2UyuOZRvh5aFZi2igm7hJlgK2qjT+qGylxG1IXZ9IuKUvAB9yI1Uh9NNQIlia2b7ISsi hNncE1WsC2LNPdIAyjZ3JK5z/4zBiQpGVlwjcd5jC8eatzrguqG1c6FRLh7qbnINJqnk eugl30mFifVx6cWYEA6TipGKsACMuLjlS3sRXfMHPaW4nG0tmAEH4lkFk1/lKT88Hj5X nzTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786974045; x=1787578845; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=9Yqdlx5oAuwW4phDoD0s2/StqlkS2295Wjxxxr0Z0OY=; b=gV4S2x9tP4gnyQou36LnW0SroefHfe0aGFdIB68BSrrkItD2nx7KG6y8J6Hd/ggNe4 UUlbSrqprxF9P5NJReBRmE37M6zGGXjqb7Ca0P4KyY2ymQWa7UmXnLquI59yfllwfXmi YqtEmhxAjjMZ9Q3Qzk7c6PgoJ3EEhxhEzmelnaUX5LxzSpqCNiD8KYtLCcNu2g4VKexB Aw57hPfNE+7f79wVdLLAoAbmMosFnaCllfnc0yzVZmiFCEM7m8ZRt0YUpn4X5X0TZyfw 5Pch7wZVKZEqvn80Ict9UANj84JK+wu4MH2d5SslCXxN5o3rfcSmFN9bbRYLogOQbohA HiPw== X-Gm-Message-State: AOJu0Yz759/deqUIBN9dT/OKs6/Rr3gJ5pCRNbdTkhPoDvpd/KxhcimM 6xWwAiHUGqfO2GS/l9CeBe4lJsGKqOfYytnzw4Ss2d7gV6Bi2/jzlJ7uUmQmNX9RIAxMzT7qV4L os85mQfxhG/PyOzmzywZO6sXPvphQPlvqbXiEayPtnRoz2L0H3cXZWMAX9O/GL2UG6PNQndeTY+ 4uO8RNHRVe X-Gm-Gg: AR+sD10ucOCGCCdv6nUbVNcqcwj3x9YcGzogEj8qrexXKNSjlcIE+m+BB43b2QszMnJ lTp7VA+qALbi9gHBrNH8EIGtOGX771SEZuAgmo9VHclSl6dZpYZBR/CWVKfbJ43LVnJazuKoV8t bgpGC2hkjJQZJcx0zsT372pt/Y9FNMwDUASGx5vo86l65J6MI69XgNWbotbpcvzuvAUYBRRZNJq C00yphQR2jxswDyyhPYzj87V33IxqnxNBNtTIN9fXWdnG1XzrSEhBr1z2p8zVbDOYCnQsPCmEzY 0ugaN4SwyUDK7uya+JrN/DoMhDFzTrdgaeHx/luQY5gfncXmQp1p6Uw47sJ6onayiYYsIDPN/Pp VdOdmBXvxq4ESXsV8gF5xql8fdfCM X-Received: by 2002:a05:620a:45a9:b0:936:9525:e952 with SMTP id af79cd13be357-93704bb48d5mr47261785a.41.1786974044845; Mon, 17 Aug 2026 06:40:44 -0700 (PDT) X-Received: by 2002:a05:620a:45a9:b0:936:9525:e952 with SMTP id af79cd13be357-93704bb48d5mr47257085a.41.1786974044359; Mon, 17 Aug 2026 06:40:44 -0700 (PDT) Received: from t14s.vakwerkhuis.com ([78.108.130.194]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a3d8517181sm772179a12.1.2026.08.17.06.40.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 06:40:43 -0700 (PDT) From: Hans de Goede <johannes.goede@oss.qualcomm.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com>, =?utf-8?q?Niklas_S=C3=B6?= =?utf-8?q?derlund?= <niklas.soderlund+renesas@ragnatech.se>, Loic Poulain <loic.poulain@oss.qualcomm.com>, Hans de Goede <johannes.goede@oss.qualcomm.com> Subject: [PATCH v8 0/8] ipa: Allow IPA creation by name Date: Mon, 17 Aug 2026 15:40:34 +0200 Message-ID: <20260817134042.277168-1-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODE3MDEwNCBTYWx0ZWRfXxYW7avVnRcSt IbnUAQuDz8yzPRopisBmFeXa9pJXxroHivlGyVTvU5VtuMNvVMR7i8xZVVuwZatXv4i0vbkdmoQ gv+4KMoqBYn68GOMCAmi37sGjbW/fT5nUWtZ72UeIqPM7BrWnqDTSfShcjn05fhK5Ps+dPIKr99 wCbljrZNGmfdn9nYQzPQUo6s9gmSvDNlnztKapFpPqqDxKHz/EdeRDMiYoaHyhM2UlKojYq2u5P QjCvXVSVR7YqsAv0JkJuUsYgMWXVTgzwC+UChBk8ZQlf+DZ4H510g5qZIiAGOhWAbB+0HajkYJz LPKEKTvlNG+p9l00+2JuJ1yX06QqpKsB0I1DbB4sbowzgnB+8BKY+cU0TayvsKdNYykT1pJX2F1 u1T138YzouMRdDOLkQvcqBXFVTdieRKjVDCPTO9PAfL4ALvLt0St2gbTpYi8JjpRCBzdgyFESOk uUoSsh2Qu33aTFRotAw== X-Proofpoint-ORIG-GUID: Eax-vYv3j9Z5hzGcIwvjfMELUOE3rLbE X-Proofpoint-Spam-Info: AW1haW4tMjYwODE3MDEwNCBTYWx0ZWRfX9emklZ1uCVI0 AeHRcNbFaMSn9vRD+szOSJ68klvYFWhmmoHJ5cn43AX5V2k4jtRVCbBqsLoBaqbntcvXyOu+3tw lS+LLMYvW9IgnBoNXPeED8fbPyrjBC4= X-Proofpoint-GUID: Eax-vYv3j9Z5hzGcIwvjfMELUOE3rLbE X-Authority-Analysis: v=2.4 cv=WNhPmHsR c=1 sm=1 tr=0 ts=6a830f5d cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=rrvG0T/C2D967D07Ol03YQ==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=YAyIRdgMAAAA:8 a=e5mUnYsNAAAA:8 a=CKVvlwrLKzUR3mb9K40A:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=o1rO4XtwZBNj6n05oSJ_:22 a=Vxmtnl_E_bksehYqCbjh:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1176, Hydra:6.1.134, FMLib:17.12.100.49 definitions=2026-08-17_01,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 phishscore=0 impostorscore=0 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608170104 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
| Series |
|
| Related |
show
|
Hi All, This is v6 of my / Jacopo's "ipa: Allow IPA creation by name" series, This new version switches all pipeline handlers over to creating their IPA by IPA proxy type rather then by name, with the exception of the raspberry pi pipeline handlers which are switched to creating the IPA by explicitly passing the pipeline handler name since the rpi/vc4 and rpi/pisp IPAs share the same IPA proxy type. Use-cases for this / series blocked by this are: 1. Using a differently named IPA with the rcar-gen4 pipeline handler: https://patchwork.libcamera.org/project/libcamera/list/?series=6003 2. Using the softISP stats + IPA with the atomisp pipeline handler: https://patchwork.libcamera.org/project/libcamera/list/?series=5169 3. The new camss pipeline handler will use the softISP as a fallback on platforms where there is no hardware ISP support yet (so most platforms) the softISP needs to be able to load its IPA from both the "simple" and "camss" pipeline handlers, requiring something like this series. https://patchwork.libcamera.org/project/libcamera/list/?series=6070 This has been tested by Jacopo on R-Car Gen4 and on Mali-C55 and by me on Qualcomm Agetti and Hamoa SoCs with both the simple and camss pipeline handlers. I believe that this is ready for merging now. Changes in v8: - Fix CI failure caused by extra trailing ';' https://gitlab.freedesktop.org/camera/libcamera-softisp/-/pipelines/1728425 Changes in v7: - Add a comment explaining why pipe()->name() is explicitly passed for the RPi IPA creation - Rename the softISP IPA from "simple" to "softisp" instead of "soft" - Mark PipelineHandler::createIPA() overload with an explicit IPA name argument as deprecated - 2 new patches to finish the IPA renaming to softisp / IPASoftIsp "ipa: softisp: Rename IPASoftSimple to IPASoftIsp" "ipa: softisp: Rename ipa::soft namespace to ipa::softisp" - Moved one patch from camss series here, it fits here better since this is all about making the Software ISP usuable from more places: "ipa: softisp: Rename setIspParams signal to paramsComputed" Changes in v6: - Drop patch switching softISP to create its IPA by name - Switch raspberry-pi pipeline-handlers to creating IPA by name - Switch all other pipeline-handlers to creating IPA by proxy type name - Rename "simple" softISP IPA to "soft" to match its proxy type name Changes in v5: - Rebase on top of db998e618aaa ("libcamera: pipeline_handler: Add createIPA() function") which moved the createIPA() wrapper for pipeline-handlers into the PipelineHandler class - https://patchwork.libcamera.org/project/libcamera/list/?series=5940 Changes in v4: - Rebase, change author of first patch to my new email address - https://patchwork.libcamera.org/project/libcamera/list/?series=5876&state=* Changes in v3: - Add "ipa: Allow pipelines to have differently named IPA" patch - https://lists.libcamera.org/pipermail/libcamera-devel/2025-October/053821.html Changes in v2: - Update tags, fix stray blank line Changes in v1 from Hans' original patch: - Slightly different approach addressing the review comments on Hans' v1 by creating an overload for IPAManager::createIPA() that allows pipelines to specify the IPA module name. Regards, Hans Hans de Goede (6): libcamera: Create IPA by name pipeline: rpi: Explictly pass pipe()->name() when creating IPA libcamera: Create IPA by IPA proxy type name ipa: softisp: Rename IPASoftSimple to IPASoftIsp ipa: softisp: Rename ipa::soft namespace to ipa::softisp ipa: softisp: Rename setIspParams signal to paramsComputed Jacopo Mondi (2): ipa: ipa_module: Remove pipelineName ipa: Allow pipelines to have differently named IPA Documentation/Doxyfile-internal.in | 2 +- include/libcamera/internal/ipa_manager.h | 6 +- include/libcamera/internal/ipa_module.h | 4 +- include/libcamera/internal/pipeline_handler.h | 9 +- .../internal/software_isp/software_isp.h | 10 +-- include/libcamera/ipa/ipa_module_info.h | 1 - include/libcamera/ipa/meson.build | 2 +- .../ipa/{soft.mojom => softisp.mojom} | 8 +- meson_options.txt | 4 +- src/ipa/ipu3/ipu3.cpp | 1 - src/ipa/mali-c55/mali-c55.cpp | 1 - src/ipa/meson.build | 40 ++++++--- src/ipa/rkisp1/rkisp1.cpp | 1 - src/ipa/rpi/pisp/pisp.cpp | 1 - src/ipa/rpi/vc4/vc4.cpp | 1 - .../{simple => softisp}/algorithms/adjust.cpp | 12 +-- .../{simple => softisp}/algorithms/adjust.h | 4 +- .../{simple => softisp}/algorithms/agc.cpp | 12 +-- src/ipa/{simple => softisp}/algorithms/agc.h | 4 +- .../algorithms/algorithm.h | 4 +- .../{simple => softisp}/algorithms/awb.cpp | 20 ++--- src/ipa/{simple => softisp}/algorithms/awb.h | 12 +-- .../{simple => softisp}/algorithms/blc.cpp | 10 +-- src/ipa/{simple => softisp}/algorithms/blc.h | 4 +- .../{simple => softisp}/algorithms/ccm.cpp | 6 +- src/ipa/{simple => softisp}/algorithms/ccm.h | 4 +- .../algorithms/meson.build | 2 +- src/ipa/{simple => softisp}/data/meson.build | 2 +- .../data/uncalibrated.yaml | 0 src/ipa/{simple => softisp}/ipa_context.cpp | 4 +- src/ipa/{simple => softisp}/ipa_context.h | 6 +- src/ipa/{simple => softisp}/meson.build | 10 +-- src/ipa/{simple => softisp}/module.h | 6 +- .../soft_simple.cpp => softisp/softisp.cpp} | 85 +++++++++---------- src/ipa/vimc/vimc.cpp | 1 - src/libcamera/ipa_manager.cpp | 8 +- src/libcamera/ipa_module.cpp | 29 +++---- .../pipeline/rpi/common/pipeline_base.cpp | 8 +- src/libcamera/pipeline/simple/simple.cpp | 2 +- src/libcamera/pipeline_handler.cpp | 27 +++++- src/libcamera/software_isp/software_isp.cpp | 8 +- test/ipa/ipa_interface_test.cpp | 2 +- test/ipa/ipa_module_test.cpp | 3 - .../module_ipa_proxy.h.tmpl | 2 + 44 files changed, 216 insertions(+), 172 deletions(-) rename include/libcamera/ipa/{soft.mojom => softisp.mojom} (88%) rename src/ipa/{simple => softisp}/algorithms/adjust.cpp (91%) rename src/ipa/{simple => softisp}/algorithms/adjust.h (93%) rename src/ipa/{simple => softisp}/algorithms/agc.cpp (95%) rename src/ipa/{simple => softisp}/algorithms/agc.h (87%) rename src/ipa/{simple => softisp}/algorithms/algorithm.h (84%) rename src/ipa/{simple => softisp}/algorithms/awb.cpp (88%) rename src/ipa/{simple => softisp}/algorithms/awb.h (85%) rename src/ipa/{simple => softisp}/algorithms/blc.cpp (93%) rename src/ipa/{simple => softisp}/algorithms/blc.h (91%) rename src/ipa/{simple => softisp}/algorithms/ccm.cpp (94%) rename src/ipa/{simple => softisp}/algorithms/ccm.h (93%) rename src/ipa/{simple => softisp}/algorithms/meson.build (75%) rename src/ipa/{simple => softisp}/data/meson.build (79%) rename src/ipa/{simple => softisp}/data/uncalibrated.yaml (100%) rename src/ipa/{simple => softisp}/ipa_context.cpp (97%) rename src/ipa/{simple => softisp}/ipa_context.h (95%) rename src/ipa/{simple => softisp}/meson.build (78%) rename src/ipa/{simple => softisp}/module.h (82%) rename src/ipa/{simple/soft_simple.cpp => softisp/softisp.cpp} (81%)