| Message ID | 20260812185055.289021-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 99346C3264 for <parsemail@patchwork.libcamera.org>; Wed, 12 Aug 2026 18:51:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1CAB0682D5; Wed, 12 Aug 2026 20:51:04 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="kyipeTCG"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FAJHhO6t"; dkim-atps=neutral Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 370C8682BB for <libcamera-devel@lists.libcamera.org>; Wed, 12 Aug 2026 20:51:02 +0200 (CEST) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67CI8UGp000999 for <libcamera-devel@lists.libcamera.org>; Wed, 12 Aug 2026 18:51:00 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=/Q2BN/TCon6KmHPjZRTSm+ Iwd6hVk/z2U6/lxIxmAPI=; b=kyipeTCGmSz8HMZWMe/OjGW3eAng2vwPiFK7Ep aVMaoludEMqG8bQkef5JfK+0EwopG7VfZYPblua+w964gojE7mLnIruLhZ9dit14 YNJt8po0BtoPAMWcTck2ALerniheNwXah29Yq7rycWPH15yRnDn7m2WSNqVitwLq IIH1oUPlsU78EVpyT8hH4awYK1A/ORt3dDS8gEpz1MuqKZ6j2zYX5SK9TlZma42S FgrVyXTKnGE6Rx1+BmH3cBAbiY6iphqrdlgH9iZL38w4zALl3YNfqD5Djd4qVIVI ux4jQp8iK8RKk0By3jQJkG5D2kN9K6jvzgkIIPKDSTQYCSMA== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g0uts0vy8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for <libcamera-devel@lists.libcamera.org>; Wed, 12 Aug 2026 18:51:00 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51ebdfceddcso15252111cf.3 for <libcamera-devel@lists.libcamera.org>; Wed, 12 Aug 2026 11:51:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786560659; x=1787165459; 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=/Q2BN/TCon6KmHPjZRTSm+Iwd6hVk/z2U6/lxIxmAPI=; b=FAJHhO6tYdvL1zSsNH21WP7bhtXd8JfIxpiNqeaFz8pjhQ3RdH/VwVrmk28+YpzWId HVasYYqOl/f8BMlrbF9cM7JIay0Eq7X+aZaMxiXofD0Mv7tpHwBlTYcfxd8SGiatMeWN Rs8v8P/W8Qw3c4fwCs/qMu+UVxAtu9u7l5hqFgj0jubgzX79j8adQ78hWGr3ATguNDZY c217fPruL68arlhCPHncvS98aVOMfEwZXiJ9XxQD91Q8Yo2S2BGifsYl6YE9z1GHu5jq exco8dKIjbokCVQI1ifHY4nGgVjy1x9DfLHy9/aCRXXm08L4ktdYReuXHcxj/NhddCw2 arqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786560659; x=1787165459; 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=/Q2BN/TCon6KmHPjZRTSm+Iwd6hVk/z2U6/lxIxmAPI=; b=nE84ho/voGEQY0XH0YddY/WPMs34Z8LGICXJHH8syzc+KtFfkcu0WwpmGdeu28RBwF 0pQoUqjMb88ovoQVIJCymDAmvSRapT4sQngxlBWMye+OPFuACTc0YBk51GWdtBrApGXO bt8Gc/yB1xNq2MkB/crzrxzUwVSA89k8ckQJ6ka/0CfjmFcK/Q2p+zGPWZu/ycEL4T/g x/0YXVBRyXcdQUFuyr6JITQfqwhdPCStVqrLc8buclp/vmQcd4tQKEofHBqEpVZ/miBL KszkKmVVJJ8ogvv0dKU2rwrTtkxtyjjFjEBUPbUrADRRVReHW6PJX508YfELRD8XF18+ 09hg== X-Gm-Message-State: AOJu0YxQTyNvir9mhWXYk1Tle0yme4S/DWFSBf3BM40xmZ/FHHCICBlI QeFVZdL728oVFxJsQFr4JNmPG/+hS4dJibZeBjdaPN+f+0PkG5W1/kMUMbE/EF60RllqVzT9MjN fAi885b/F4Mhsj9e6qELHvPX0tM3H3AYtQTcQfT0Kuc70qXgk3MJ/Wtt2SjKy81L0ae4Rng1VLN fTX8PQsWgx X-Gm-Gg: AR+sD13TqbaZmRcRXXS549ohiY9E6fLW9Cc4qGWmAJe0/RZ+K2FUR/Aq+s2U9JtWuoF Xf8pb5lNN6tXmQ1DCMZrxwKKzDzwzqo0eVygMRiJPG3FIDRkhrP0SmtHz8KpSpuxrAwLY0vppbu tWokWWBQCoHSyNBglF4tTmf7mtNacihaQSl20QoNfTBRjKTCkZp9vlT+tH5ofdYBkbrhmF9nW/I b7CGqTklEScHuALgqQhd7RIBs9akf/BbK2WSQhJJZ/VO19tqH1VEEtotDlIq4cITLIz36YPbzXy +tAubNRY9utTIFw+HBYrw87A8ACN7AhXBVkmHeo4dbJJIi2LoGLKd8OKAtjVSkRaZvtpuATisdG jg2ZZMPyfhlbsfpdwUWMTprWIsJ3WyAE2KgsSUSWMwQEpw27qBusKIVidYBWTC76GQ2YNeugg+J 2ZNHaz59LzJ9Elsts= X-Received: by 2002:a05:622a:58c5:b0:519:efea:cf41 with SMTP id d75a77b69052e-52d73d93652mr2274571cf.28.1786560659434; Wed, 12 Aug 2026 11:50:59 -0700 (PDT) X-Received: by 2002:a05:622a:58c5:b0:519:efea:cf41 with SMTP id d75a77b69052e-52d73d93652mr2274341cf.28.1786560658975; Wed, 12 Aug 2026 11:50:58 -0700 (PDT) Received: from shalem (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a37f8cd810sm47977a12.26.2026.08.12.11.50.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 11:50:57 -0700 (PDT) From: Hans de Goede <johannes.goede@oss.qualcomm.com> To: libcamera-devel@lists.libcamera.org Cc: Loic Poulain <loic.poulain@oss.qualcomm.com>, Hans de Goede <johannes.goede@oss.qualcomm.com> Subject: [PATCH v7 0/8] ipa: Allow IPA creation by name Date: Wed, 12 Aug 2026 20:50:47 +0200 Message-ID: <20260812185055.289021-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-GUID: DydndbWr9Api7RR_l-m55C1_8wzHS1gO X-Authority-Analysis: v=2.4 cv=aPDAb79m c=1 sm=1 tr=0 ts=6a7cc094 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=YAyIRdgMAAAA:8 a=twXoSTnZPK2vLye3lkkA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 a=o1rO4XtwZBNj6n05oSJ_:22 X-Proofpoint-ORIG-GUID: DydndbWr9Api7RR_l-m55C1_8wzHS1gO X-Proofpoint-Spam-Info: AW1haW4tMjYwODEyMDE1MSBTYWx0ZWRfXzyWov360DMN/ iLMmOo/PajxKlxQ7HdgWLOU+BVtalROw2EbdBeoG5mT/Szi4lMU0RCY4070suiCy9jm0WrnPM5f ViaXHzC3Pgznf9XqqQk+o5UrA1XyQW8= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODEyMDE1MSBTYWx0ZWRfX0+AZZirU2WrT BQLT9lo98z7TiGVKYXk+JYJJ0PsjEPJCoh4ky3UdA5/g3wrGFGmczH85Z6/LnJek9VS8gB4Rqm+ bejy05brTvMhakFz1XsSHTun9BEw9z5qQ1S6GUDAd8dE8w5BrMbLRkafe/tCKdDCECsLe0v1C9i c4hg5W6B3EYrBe5CdUagNINhTZRYojwsYlNxboOTNHn6D4045tzoDzolb4YZUq31bunkqneV8Wa rMAb4J2a5V4UiJbo+aFyQWVTRS1AsXVTKP/1oPkydHejShYi/O10NFYBnTOrxFjmtI+Utpd/D4i boWzelLZ411Iugdmswr7Wd6fRp7NBDnG1o7JnoIsP8owAid08DFFP6L5wZss+AgOUUblIdQh9ud HvdFnXoRwwIB5ODocJBp2HVkslYPoxc5HWJI6drrTvgr3cV87z63aJPQEM61hcr+qwxxLXYWxi1 91AaDvSMjKnfctzGyMg== 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-12_05,2026-08-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 bulkscore=0 suspectscore=0 malwarescore=0 adultscore=0 phishscore=0 priorityscore=1501 clxscore=1015 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608120151 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 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%)