| Message ID | 20251127022256.178929-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 019B4C3260 for <parsemail@patchwork.libcamera.org>; Thu, 27 Nov 2025 02:23:03 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id F309B60A85; Thu, 27 Nov 2025 03:23:02 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="n09jw80o"; dkim-atps=neutral Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 88516609D8 for <libcamera-devel@lists.libcamera.org>; Thu, 27 Nov 2025 03:23:01 +0100 (CET) Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-47775fb6c56so2183475e9.1 for <libcamera-devel@lists.libcamera.org>; Wed, 26 Nov 2025 18:23:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1764210181; x=1764814981; 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=j9lPPBftwHyjpPiikhT4QWcXct2IQ2yb1kqvP1ZxjWo=; b=n09jw80o3RWnlG6AX2iXDsinZTNx0x0TJgkWOxUcqJwvb5Age76mPcUXCsymDy7Gaw JtH4iCk0/JywyWrDaVK6R3GQKEopwR3k+HuGR0fKYG2y0eN3RzXoLs0zWDc4N1c2F1Up s6qoFAfUs5VBVECalHS1kXjEzVBGcC1iwA3ioe6WvF26mAb/Ev0MzNx5vUM4oBbsG6pE Su5LaNJeEEC5pLw2PZvAZnnOwvevV69ewAvDJo6poLd79cg/9Meiq44UY+BOk6eRB04B EVrCnwr/rQHW7dV5kcHmm0LHatk7bNCKjg0A450CWU9/H+yC4s3CF8q0v1Zf7BeAKHiQ iaQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764210181; x=1764814981; 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=j9lPPBftwHyjpPiikhT4QWcXct2IQ2yb1kqvP1ZxjWo=; b=Bt6nUpaMcTUvpyUKGFzPCcxJ7vXipxW9W5nx4qHUziDnVhPtnvjnLW4/41mbrF/hGx xQXqkljN3SlJ89QV95mBLfeQSU2dfwJJLfQHvDhPSgoM7FTAAmyttyde26L5bJsB4ztR LWyh+7sU9LHUZSkfuXSdjYghG7X2T7CKT++B8Ea9gaHSv4f1fMD/Sk0w7U/JS7o8tZBF fEH9C2AAQX3jXZePTXPuSJY/tbBoEkysDPe0Drq37D5w0cwKqbacTLbBLMSytHUQlGMU luATKHLCweb+fpdaq4Y5secr9oPzXfypYDssv92F1/uclHb4S2zSROYKbQG55xgf7rIK B9tw== X-Gm-Message-State: AOJu0YzKa06vfrbzbRQh+qIg3h282/FpDojHTRZiTCQ/m+fpJ3+rqYL8 kRrdx9W6ivYwbSVqQlKmhjQBNUwzMdagWZd1xaF5Q8Z7h3rzKVcmP9qppM7ZqtRNHz2s9aIvoC6 KL743L9o= X-Gm-Gg: ASbGncutbMxEEsBhfa41WJLW75R+w8x9ybGw7P1IS3ptDuiwiescoJ2Nt0HJmjZTX7q 8wODMtbTfEe3SahSGtBOfIF6RcKfNYC3iR0uaAWYBAgviu0oO0x4+wUjtxv+Iht1kTdlL6Fr434 9uPIksITgAVvAWqcvbToHwNGoSCEjZnhD8/o6kIjxHUtiQ6GlgBPFuv+dxFMx6FMQrKAVwJWDfv vt8aUh5bcPihRMAIxOUUhPZQ+pX9w2Ldw7m27RU7pTuzSB4EvWa0IDjC/30+f5ybC5L3tMMMHmn s1Ux38N/PHLR1Sbe1vf64nO8FvEhZuRHCJqoAoPfneiAdDtrbbUK/1bJGGMcpHRoI/ed9BmR+id hH7ghRLalU8GZbeOELep299V04OJna2WMlWIzOTYiMX4EabaYToILn6fo7XSu+PBL4ehifReEhE nE+RjN9/d6UqYk1eegYPfE7dBBM/DJl9n8Efz0JyGfzbCMwZ7seLkTCfbc0lyVViJPeWw= X-Google-Smtp-Source: AGHT+IG8jsXgqPpksrrzHcfBYSTJlVW7iu3WdUoviRt+NJKNDYvkrT7LaKpdYCPHGTdjyzDHHCR7XA== X-Received: by 2002:a05:600c:4515:b0:477:3f35:66d5 with SMTP id 5b1f17b1804b1-47904b1fb79mr76267375e9.26.1764210180821; Wed, 26 Nov 2025 18:23: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 5b1f17b1804b1-4790b0e21e8sm71549495e9.15.2025.11.26.18.22.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Nov 2025 18:22: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 v2 00/22] GPUISP precursor series Date: Thu, 27 Nov 2025 02:22:32 +0000 Message-ID: <20251127022256.178929-1-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.51.2 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
|
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 | 233 ++++++++++++++++++ src/libcamera/software_isp/debayer.h | 43 +++- src/libcamera/software_isp/debayer_cpu.cpp | 99 ++------ src/libcamera/software_isp/debayer_cpu.h | 46 +--- src/libcamera/software_isp/meson.build | 1 + src/libcamera/software_isp/software_isp.cpp | 23 +- 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, 735 insertions(+), 188 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