| Message ID | 20251202133157.661407-1-bryan.odonoghue@linaro.org |
|---|---|
| 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 AEFBFBD80A for <parsemail@patchwork.libcamera.org>; Tue, 2 Dec 2025 13:32:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4563C60C77; Tue, 2 Dec 2025 14:32:03 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="vJockvVv"; dkim-atps=neutral Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 464466096B for <libcamera-devel@lists.libcamera.org>; Tue, 2 Dec 2025 14:32:01 +0100 (CET) Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-42e2e239ec0so1934475f8f.0 for <libcamera-devel@lists.libcamera.org>; Tue, 02 Dec 2025 05:32:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764682320; x=1765287120; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=IKAcX0QqWqaGxiVWpPCRUTz+HwO9lyiKPZnrYepitTM=; b=vJockvVvb43bfa0lWJUosytsMqZs4svTI71dhSQsaDHpR28hNmKZ9gj2L35oPX+WVw vT0hN+58bbMoQ8wMp2i+gZqkdjY7gi2LhRbjf3QIMBGk0CbszPOLwLJeIzbYN0fmVCzn JySK7QmpNyedyR3r4/zJBWkd8Qt2hThAN+/7LhMphxWecAKGtAXN1/w0hb4hCRqx6M2Y 0kua7ctd7gxD+mYiKaAzV8Y3S6WWV+49uRqK28INNEL6nSWr0WyFDpk5HicdCVQkZ173 ip41VkgJVo57+ssSFlgtH7BpFLm1cpi+9AgRpEQNzX/+8SKiLWXdlENkQNhVrTzXtrQ6 aPdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764682320; x=1765287120; h=content-transfer-encoding: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; bh=IKAcX0QqWqaGxiVWpPCRUTz+HwO9lyiKPZnrYepitTM=; b=P50VqV2JL0sHuqgQMQhhxTYT3KRNfWycGJFNebIYPHp1UrM8SiLVg/Wdor2dEo38/2 36Lc+cXkWVXBDbXFXApEgk01lzQwhCKJ6iFvpPHUKiTuqUVdS9SdtFQiE0tEPK9dEgW3 jNkxnarLw++ezxy/8+saexQ4YoA5FcdP+F12T0745D3MupNzI9CiExURjphvn3PfcvDT zV8afSqweYimTdQzeEF5Y5EQZOx9KurHcYDcNRgKeRgjOst5+qGkTHPmp9e8csVu8zyZ prhBCnbStUjrNquAd4Fsk8sn8s/Dj+TgFr3DTubcIsR5UWYhi4/SmUh0HFnhRXQSnfpg 2e/g== X-Gm-Message-State: AOJu0YzCeVQor1r75AEBtNkyPxAaRVcaOciM4G6yI7JVibWomV+SFeID brsHuFT2WUZt4MVEbJT6dLzkjULAiMbuqFBYJbP6JubrJldAhwKCulIxcXAzIoGAkS+NkMuiikx cETd9 X-Gm-Gg: ASbGnctunqNHwBF2M0RjgU8+XBEIkWkqhgWum/zAFkYyeswnzQEGnO2g2JT+Y9GVE3m I8O0oEBJ3iUEcTbjljBhoMHE0t8ORZ1g7PMSN71ukWPEI8eNdmqnLllHf+ZdQszyCv7kXrDW4nI Uo8yBW3/RsWkc1ZK5wgw11emCRS18oneX19EcqoA1Ug6FaFUdmDgMTw8m8BBqN0t8/5PFJ5B6Mr 5Kj+2A/rfsfaixMdmrepChuUOqNQbPkGNqeADgH+WSV/BCyv4ryX0TTGaN5jFJUSWrOIvLy7Mpt fALgNTWpmPQpEh3w/ilYYjI302PAcWXQxNVkiXa1Q0sIS14kjGu0AhwawtNSYkVWH3b2GLYyOnY dpEBZe6tUjZlggHq/eULpuisrFxDSKqOTYS72wnBFHxI1gFQHhnGLrnfC8ZZMCtO9cd99/ULBll wDkYs2SPbFN2VT4Xj9CVqigMVX+U4nRkvNr42BheLvCOGTe7nUH7ekNZKAZ2147x78VGr5zB8Zw cKOyA== X-Google-Smtp-Source: AGHT+IGVVU5FN8w62AloHq/LJMensYOTw/0NXVxnn3Hec0vOGx+frHnCLlwAFqta56PCLcvjC5xgOw== X-Received: by 2002:a5d:5f44:0:b0:429:d350:802d with SMTP id ffacd0b85a97d-42cc1d34848mr44985733f8f.45.1764682320338; Tue, 02 Dec 2025 05:32:00 -0800 (PST) Received: from inspiron14p-linux.ht.home (188-141-3-146.dynamic.upc.ie. [188.141.3.146]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42e1c5c30c4sm33363322f8f.9.2025.12.02.05.31.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Dec 2025 05:31:59 -0800 (PST) From: Bryan O'Donoghue <bryan.odonoghue@linaro.org> To: libcamera-devel@lists.libcamera.org Cc: pavel@ucw.cz, Bryan O'Donoghue <bryan.odonoghue@linaro.org> Subject: [PATCH v3 00/22] GPUISP precursor series Date: Tue, 2 Dec 2025 13:31:31 +0000 Message-ID: <20251202133157.661407-1-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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
|
v3: - Adds Kieran's RBs as given - Changes python script - Barnabas - Makes isStandardBayerOrder static earlier in series - Barnabas - Moves from DebayerCpu to Debayer object type in one go for configure(), process() and stop() - Barnabas - Rebases on v0.6.0 v2: - Moves shaders to src/libcamera/shaders - Laurent - Various Doxygen fixes - Kieran/Bryan/Milan - Takes Hans' change to process 1/4 frames in processFrame() - Implements suggested change in blackLevel calc - Milan - Only three patches in this series have no RB I think it would be safe to merge this series - bod v1: This series takes all of the already reviewed-by on-list stuff and parcels it into a more digestable series. Right at the end are some patches which were about making data available in the debayer params strcutre and had some reviewed-by and/or comments from Kiearn and Milan that I didn't apply review-by to because I wasn't 100% sure that was warranted from the list dicussion - CCM was clear enough, AWB got dropped. Adding in blacklevel, gamma and contrast seem to fit-in with these patches and including in this series reduces the overall size of GPUISP as a series from 44 ! patches in total to 22. CI is passing both of this branch and for the aggregate branch so, I've opted to start sending out the broken apart series, even though I'm expecting an IPU6 fix from Hans it shouldn't affect this early code. Bryan O'Donoghue (17): libcamera: shaders: Move GL shader programs to src/libcamera/assets/shader utils: gen-shader-headers: Add a utility to generate headers from shaders meson: Automatically generate glsl_shaders.h from specified shader programs libcamera: software_isp: Move useful items from DebayerCpu to Debayer base class libcamera: software_isp: Move Bayer params init from DebayerCpu to Debayer libcamera: software_isp: Move param select code to Debayer base class libcamera: software_isp: Move DMA Sync code to Debayer base class libcamera: software_isp: Make output DMA sync contingent libcamera: software_isp: Move isStandardBayerOrder to base class libcamera: software_isp: Start the ISP thread in configure libcamera: software_isp: Move configure to worker thread libcamera: software_isp: debayer: Introduce a stop() callback to the debayer object libcamera: software_isp: debayer: Make the debayer_ object of type class Debayer not DebayerCpu libcamera: software_isp: lut: Make CCM available in debayer params libcamera: software_isp: blacklevel: Make black level available in debayer params libcamera: software_isp: lut: Make gamma from lut.cpp available in debayer params libcamera: software_isp: lut: Make contrast available in debayer params Hans de Goede (5): libcamera: swstats_cpu: Update statsProcessFn() / processLine0() documentation libcamera: swstats_cpu: Drop patternSize_ documentation libcamera: swstats_cpu: Move header to libcamera/internal/software_isp libcamera: software_isp: Move benchmark code to its own class libcamera: swstats_cpu: Add processFrame() method .../internal/software_isp/benchmark.h | 39 +++ .../internal/software_isp/debayer_params.h | 11 + .../internal/software_isp/meson.build | 2 + .../internal/software_isp/software_isp.h | 5 +- .../internal}/software_isp/swstats_cpu.h | 15 +- src/apps/qcam/assets/shader/shaders.qrc | 16 +- src/apps/qcam/meson.build | 3 + src/apps/qcam/viewfinder_gl.cpp | 70 ++--- src/ipa/simple/algorithms/blc.cpp | 9 + src/ipa/simple/algorithms/blc.h | 4 + src/ipa/simple/algorithms/lut.cpp | 4 + src/libcamera/meson.build | 11 + .../shader => libcamera/shaders}/RGB.frag | 0 .../shaders}/YUV_2_planes.frag | 0 .../shaders}/YUV_3_planes.frag | 0 .../shaders}/YUV_packed.frag | 0 .../shaders}/bayer_1x_packed.frag | 0 .../shader => libcamera/shaders}/bayer_8.frag | 0 .../shader => libcamera/shaders}/bayer_8.vert | 0 .../shaders}/identity.vert | 0 src/libcamera/shaders/meson.build | 10 + src/libcamera/software_isp/benchmark.cpp | 92 +++++++ src/libcamera/software_isp/debayer.cpp | 242 ++++++++++++++++++ src/libcamera/software_isp/debayer.h | 43 +++- src/libcamera/software_isp/debayer_cpu.cpp | 89 +------ src/libcamera/software_isp/debayer_cpu.h | 45 +--- src/libcamera/software_isp/meson.build | 1 + src/libcamera/software_isp/software_isp.cpp | 24 +- src/libcamera/software_isp/swstats_cpu.cpp | 93 ++++++- utils/gen-shader-header.py | 37 +++ utils/gen-shader-headers.sh | 55 ++++ utils/meson.build | 2 + 32 files changed, 733 insertions(+), 189 deletions(-) create mode 100644 include/libcamera/internal/software_isp/benchmark.h rename {src/libcamera => include/libcamera/internal}/software_isp/swstats_cpu.h (84%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/RGB.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/YUV_2_planes.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/YUV_3_planes.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/YUV_packed.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/bayer_1x_packed.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/bayer_8.frag (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/bayer_8.vert (100%) rename src/{apps/qcam/assets/shader => libcamera/shaders}/identity.vert (100%) create mode 100644 src/libcamera/shaders/meson.build create mode 100644 src/libcamera/software_isp/benchmark.cpp create mode 100755 utils/gen-shader-header.py create mode 100755 utils/gen-shader-headers.sh