From patchwork Sat Nov 22 20:55:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 25153 Return-Path: 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 8578AC0F1B for ; Sat, 22 Nov 2025 20:55:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6913160A8A; Sat, 22 Nov 2025 21:55:16 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="XzAOUcgr"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BT8qtpq7"; 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 60CCD60A8A for ; Sat, 22 Nov 2025 21:55:14 +0100 (CET) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AMKRnqO3667976 for ; Sat, 22 Nov 2025 20:55:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=y+JY/jyAgi0 i8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=; b=XzAOUcgrTZdDUzVyJiG18xeP874 lVzYN3cZhF4FA2HxegvVuLB8QIdPh7G5NSpc4u25JyuV5kVpXsngXBP/iaNFkeue Xs0/euBdoJyruUdbE9xlOdMrgkpTAX3YABCMbmuLF+ep2a04fMvdt5GMTPX1Vj/s 7KuR63cJpUSSwYwNbSE2VopEWH4vHAFqTsBD8bbJPJp4wGugjQvU37rVO3jo5Wex weTMV6Me5gszIgwjDg7EK3b+HXtzcM6oyeWiyWQJBnyL8nHLXhIocQ8otj5tHAos FHKRbHpB3bL812lc76mzpcTKkhc/15r7zReAUD0ZPmtee3gi83U+YDpicOg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ak691ha83-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 22 Nov 2025 20:55:13 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4ee04f4c632so68630821cf.3 for ; Sat, 22 Nov 2025 12:55:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763844912; x=1764449712; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=y+JY/jyAgi0i8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=; b=BT8qtpq78V4qCoS7Lk1rx9awHNUYs5obkkDt9+XasPRW4Ep22vO9tRPd7X4tCSQHKL +2KCDH02uGiw8/Cg2hfG3L4nKyRdnCcMa5fVAyeoN3n8jjXWigQYsEIiTLwLrl5yIFN+ wALnxXxrx0N8x5rKcP7KOnR7XXB9TPcJQGMmu/qbixJnq5LN9ISw6uvUF4Kw9Fxk7M+Z aFXJtsox+sU/QabL5qfsBKFF/X2qyjOhGks2kT1vpyMLgOs3nFn4Qyy/EAKoN1qlyHfZ 4v1AIwM4BSPzjvUwDMB66nrKdwHAwMA/fmlQjG5qg0SKbg/kxHYgHDO5UeiaFWd4Btrj whPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763844912; x=1764449712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=y+JY/jyAgi0i8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=; b=Q+vUe8ohwaoZyRebUmcfOfWenq+qOn6wvrDtV565BQlKpXHq0BxvdRavMhZLXrj+AI Pfmil2CZ+ijv29YGb/ZqeAS1s6EqMhRPcnOCOx8y9g0S1ZubE2URc9+JdQZhtcJ0YNY5 E1ebw4Swli2fwOIu2GSw8WhNVPMKltnl3XTtAK9kAZEzwSUmPSntpLbOgenNZGMDby3h tkoPLY8x23wIoBigA99IehpcsfLSm4luRnHklbv2R2md7Qwen4AUczMy6+Ud7n8IOGWd mu6X4E7pbCveJyuu8ASzAS/q4tnhZpp8e03lC3BnAmI2qq2SHuaN4X+OgvXoZz1WJHql MlDA== X-Gm-Message-State: AOJu0Yy3YOAjtyq1oaxeILKnnEjGI/FNhe3eRg/e0r/5kIWXi9eQHV87 TL1uc49pb8TGZCZSoTYJNG6DKogI+jakqhxONXMxOkVVMsZXVD9Nil0xlKtJSnUS/WXQ8revGAb f+2zdPFambwZSvpWVjojYXAmYTivMtoZcH9XLrKHaLx/Qnqt63MJyUt8J0aQr0mo2F+6AA63iau AKGCO3RM6O X-Gm-Gg: ASbGncvKjX6uVmXT/37vXocahjV5mVXfuh13F9KgLlalS8I5WtdIwrQ4egSIqOAuCgC Jk4U7rmgU9kmxtm0WjZAMSqbl0QeE5MK5kKFA5W4NrFSfzcNBDFgUHo0RFtdat3Um6HRbcGkUlb 73RYEqtcbDNy4hKlT9AMH9XTMLX8uq/h6M9ja9FF5leT4FfM1ydkcAh+vjDcSSlVloDySEX2NMC kwQzWdNiWJdbntlpp9CkxUfcTlrN81rj0QPercp7SjhTjn1uR1WDAMdOPxJJveqBriRRWBqerWy zUXPs3fRIpAf/VUB071wPOu764aBNeuE2PWeta/+VHtjQOy/Vyz30bAnWAtl3mFXXuJDxDXV2Np zCh6bM3/TBdXm/LH338MxVD2+ftQDYHTZ1zh/XGFKiwCtYPxjilLAoVBf08zANnN5R3n4ognXqK PcdCsqLvpN++lDx/aWoTn8a+2W X-Received: by 2002:a05:622a:1b8b:b0:4ed:aa7b:db82 with SMTP id d75a77b69052e-4ee58aa250fmr76017541cf.24.1763844912405; Sat, 22 Nov 2025 12:55:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IEOmirYVljqREqx+5kh5MOo5dEdIBQHkqEz0b3ZSXsv7g2JOiWmqEMMo+820eXpxM6BuAP35A== X-Received: by 2002:a05:622a:1b8b:b0:4ed:aa7b:db82 with SMTP id d75a77b69052e-4ee58aa250fmr76017411cf.24.1763844911963; Sat, 22 Nov 2025 12:55:11 -0800 (PST) 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 a640c23a62f3a-b7655050c53sm822745966b.68.2025.11.22.12.55.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Nov 2025 12:55:10 -0800 (PST) From: Hans de Goede To: libcamera-devel@lists.libcamera.org, Bryan O'Donoghue Cc: Hans de Goede Subject: [PATCH 1/3] libcamera: swstats_cpu: Stop doing unnecessary work in processFrame() Date: Sat, 22 Nov 2025 21:55:05 +0100 Message-ID: <20251122205507.37387-2-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> References: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=Be3VE7t2 c=1 sm=1 tr=0 ts=69222331 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=gsdx_oV6CcUgYg5htLIA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: zwfWRem5R5-A6nQ5WkdSG0uMjbHtfjZ_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDE3NCBTYWx0ZWRfX38U9vFzYsa7z leZOjPKW7GW29qSyYNvjjI1mXLDnUMAH78qIy7AqCNWfTA3cZR8Kcv+krihtTaej4tb2Ok6xe8g vn25p1yoGZKhM1fx6Z2/gdhKYI/LJ51m01Gea9DPOlwZuRpuKR7qJZ3P4X36l2meft15KpLMPJJ A8Q4CibmIHfBYKuO5cxBrZ6onksRqG5l1awZiKG96XpQga55llnhmAFEauJFNU/gpXEYwzjSwpJ D635cFe+8dxwrBUQZ+Teb+ze3r2tYF/qj5/aFN5ntWEZXBleaJ7oNbn5klGw/co1wPj9lFQ6tD0 rRc1bhyiX5epbE6wqW9eDmbAuIbQa8BEujBPOB1BUVRuRJVaxRJUqh1P4Ea75qNXND6VWReoYIC kjWmouFBrlVdtQ90KM69IqCCRQHPlA== X-Proofpoint-GUID: zwfWRem5R5-A6nQ5WkdSG0uMjbHtfjZ_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.9, FMLib:17.12.100.49 definitions=2025-11-22_08,2025-11-21_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511220174 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Since commit c28bb6a6a48e ("libcamera: software_isp: Run sw-statistics once every 4th frame) CPU based software-statistics are supposed to only run every 4th frame. And processFrame() already honors this in the sense that endFrame() call will mark the generated statistics as not valid just like it does when called from debayer_cpu.cpp, which does the statistics line by line rather then calling processFrame(). But before marking the statistics as invalid processFrame() still does the actual work of dma-syncing and mapping the input-buffer and then generating the statistics, only to mark them invalid in the end. Remove all the unnecesary work for every 3 of 4 frames by skipping everything and just marking the statistics as not valid right away. Signed-off-by: Hans de Goede --- This should be squashed into "libcamera: swstats_cpu: Add processFrame() method" for the next version of the "[PATCH 00/22] GPUISP precursor series" --- src/libcamera/software_isp/swstats_cpu.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp index f5906197..c931edb4 100644 --- a/src/libcamera/software_isp/swstats_cpu.cpp +++ b/src/libcamera/software_isp/swstats_cpu.cpp @@ -521,6 +521,11 @@ void SwStatsCpu::processBayerFrame2(MappedFrameBuffer &in) */ void SwStatsCpu::processFrame(uint32_t frame, uint32_t bufferId, FrameBuffer *input) { + if (frame % kStatPerNumFrames) { + finishFrame(frame, bufferId); + return; + } + bench_.startFrame(); startFrame(frame); From patchwork Sat Nov 22 20:55:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 25154 Return-Path: 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 E3908C0F1B for ; Sat, 22 Nov 2025 20:55:19 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 92BAC60AA4; Sat, 22 Nov 2025 21:55:19 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="ffgG9U6x"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XVEcgC/F"; 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 38994609E0 for ; Sat, 22 Nov 2025 21:55:16 +0100 (CET) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AMGcAiE3253455 for ; Sat, 22 Nov 2025 20:55:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=xAZhZamYdPv muJpD7wA18v7dx3lZ5EUv1YVdXphtjbs=; b=ffgG9U6xKRtGt9bwkHODVxBfLoZ 7VEmGpJSGzkWxsB3dCIbuO+bbdKp2VPozvtBWCXG8lw2lM4Z4fXgA5Z1Cuqcl1Ac bzLatwDCEpqdzz1As1xKj85fycNKf6wfX737FSR1fUMvDitQNTlrDcHHalskLwHl ePX8gXg9E2zN+zfyh2/Hn8T65nHCoK90/KNsf8b98gJ1v/fb58B/UzMnWfZpCpHa vxMH0Dife3j5zkoVq8AvOR7YhxaxrCRwiKCqh/5c6XACzBQ0TUMhX2KMTvlSvKNO Pid2x6qCOGkFcO/tuJ+mkGaDmLahfsli0Iv+U1zSdRV/noEBYE+1zL5tvSg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ak6a51amk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 22 Nov 2025 20:55:15 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ee416413a8so30264471cf.1 for ; Sat, 22 Nov 2025 12:55:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763844914; x=1764449714; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xAZhZamYdPvmuJpD7wA18v7dx3lZ5EUv1YVdXphtjbs=; b=XVEcgC/FVAoQUPG19bDavHuGHF/BGLn/O7wQ+9s0qAB8IB9sRSgZ87Jb8jTkUpq8BM 7AKzRNHOy1iotgQ+JNHamwSqi34vswyTg6Gdw3RHd3TYh2z6giwH6s/O4UNMNQS1nJx1 LVVkTwiF0EkwcFvdI3iJ8FZxXdw8YO43k3RDiZk7TbN1P8zteWQLBwwq1iMUT52PBzzC F/qqeAnmR6aDghHtVS/qXiaF80LCbLcKQXUJ9pOFpoSDg+SWh4G6H8o6QLDji06TmPM1 dRUe2W2D6EonuprlLz4hLhrKPraHRyCnh+p4aT1uFFhQYrdEDnpJ8vW1DBqKOboIzrfh BT/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763844914; x=1764449714; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xAZhZamYdPvmuJpD7wA18v7dx3lZ5EUv1YVdXphtjbs=; b=FDDBsSW21QPvHjszfDd4Je5uN+9U0C3rCwXvHJrtJmz5ae0VHLKhJD51EKLUe7bGYE csZaKqaVdf5T5JJHr8SxaCAX7YxV6s5pd8JghTUUh+zyEZvwiPRwth1QnBozmBFzRK/Q ZvwYpO+H6QdGFdEpPjH6w0s0O5EKC2vxsoAUfIDPuEUI46Toxd5hufR77hg0twUbxSjD s5EwXWyv3lUFBqcD6x2POalaguU03umNXpI6GTbkfef4/6/5BQ76Tvc7Mp8CivpV4/tj 6HjsiJTy1BdWHimVMoKgF08ujg02ZJyawhybwZ2O4zdT3s6oj0XayM/7EOjOIxX6qG0i J6jQ== X-Gm-Message-State: AOJu0YwmL0KAlYoXhAhy3x9kt4GNHeThibGie3FzX5ne9MpFO7IAW6jD g9spMQ010LMMx9MZ5WdbBfbiS1E3cYsEEhmCygSUUVnhOZEr2aaPftP2xb6raU5AkIkNGDM532a Jpb1HylQa2SG6w+nyGO3TT0/0NE8oKh1vptbryNdVNpA9ohUMitatHpf3UNbU8HLMC9weJUT3NA FxUM7ad2R6 X-Gm-Gg: ASbGncvY2xEGZiJGmFWTmnPyfm0HatEVbvWqXzAYWe19sh2ti9ie2L7jzVnawZEqpsl zXFlNzqDM1QmFjPcOuU9Q8S6lFtRg1q/BvW3HPDpQOUEj9Ru4Po/DdSWTqyVDtBGyVs7ObColPw 1YBaCdVE6hl06E4BcScqeSdcmw5YWs4k6EmeI7byp2eS/NVYNCBTiKI2sJd64IJGBhYGfAGSKtn QY2+/dlUae+Jt/TwnLvhtGXgV0H+FIuugrvao2FHevT23Amfab/h07pyh6I0OkLh1jLE5nMbV0k x5oNUJipLtxEMuVVJzMeGDVd2MaHMP1hePLIt0/p+YZu/KIb4/LhZXCxbu1ixSrvyDLVNZJjjzD 7zC/QqfSq/hmIQSxxg3vijCC8XZrgZs/zbSTSdse2cWvCeNLCUJvKUACkxzHThoPLvM5+8QXuVe QfhRDtFSl05zBf7CRBJrjDk+6n X-Received: by 2002:a05:622a:24f:b0:4d8:531e:f896 with SMTP id d75a77b69052e-4ee58862e12mr90266511cf.27.1763844914101; Sat, 22 Nov 2025 12:55:14 -0800 (PST) X-Google-Smtp-Source: AGHT+IE88ljn2E0f0+NPTy3gyM0DhKHfeFO8hsM/Cx15PSag34gD1bcKPU/p6VcZVPIHb1alf0N9aw== X-Received: by 2002:a05:622a:24f:b0:4d8:531e:f896 with SMTP id d75a77b69052e-4ee58862e12mr90266231cf.27.1763844913536; Sat, 22 Nov 2025 12:55:13 -0800 (PST) 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 a640c23a62f3a-b7655050c53sm822745966b.68.2025.11.22.12.55.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Nov 2025 12:55:12 -0800 (PST) From: Hans de Goede To: libcamera-devel@lists.libcamera.org, Bryan O'Donoghue Cc: Hans de Goede Subject: [PATCH 2/3] libcamera: software_isp: debayer_egl: Fix input sampling when width != stride Date: Sat, 22 Nov 2025 21:55:06 +0100 Message-ID: <20251122205507.37387-3-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> References: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=Hup72kTS c=1 sm=1 tr=0 ts=69222333 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=ss4-n0EdsD2TUQPG-kIA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: e-IYa5thtcdumddVErsJzKxVsgQF8ryk X-Proofpoint-ORIG-GUID: e-IYa5thtcdumddVErsJzKxVsgQF8ryk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDE3NCBTYWx0ZWRfXzG4fboD7BitN pO6SXqkVEnYzMlw4DwgUH34Na08CAlfl1BRXF9QEC0R6FZGpJ6yA7OUjWTW9CVXDAmL7Al8tIil GRlxMt5gVIgNX1QnUTEIIblZ4AM6rXA0Qa9pBMRNm0rbo8dqhJRhIJyBqL+DLwg2iuFjtUNsw3b weCgbZGbMTI4mWX91mM79JnXNwllSiycZmqHiLCivHsdYfrgL4ZDF3+n0ygzm/P10n1wyw3spt1 7isd+3Gq+c7e+hi+fgkAmZVk8Uyrt+gFTCtrZMUa5ZbH0uSg+jsMdh9hlHD+K10ICRNHD8rmw7S 1zU01E80BmEh3Duxl42d1XvseuMUQb6fCvK9yiV1M6ubV3MnWB/X4aiTbq340TmDhYe5HLIgBCd rOn2uPz/ZTwVZq2Jh5VmJUGVQQFMGQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.9, FMLib:17.12.100.49 definitions=2025-11-22_08,2025-11-21_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511220174 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" When bayer_unpacked.vert is calculating the center and x/yCoord values stride != width is taken into account for x/yCoord deltas since it is taken into account by debayer_egl when setting the x part of tex_step uniform. But it is not taken into account for the center.x which is just directly copied from textureIn, leading to the input width sampling covering the entire input stride instead of just covering the input width. Use the existing and currently unused stride_factor uniform to pass the width/stride ratio and correct center.x for this. This fixes the misrendering seen on x86 laptops which is caused by the CSI2 receiver there requiring a stride which is a multiple of 32 often leading to stride != width. Signed-off-by: Hans de Goede --- Besides using stride_factor to correct center.x this also requires debayer_egl to actuall set stride_factor instead of hardcoding it to 1.0, this last part should be squashed into "libcamera: software_isp: debayer_egl: Add an eGL debayer class" --- include/libcamera/internal/shaders/bayer_unpacked.vert | 4 +++- src/libcamera/software_isp/debayer_egl.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/libcamera/internal/shaders/bayer_unpacked.vert b/include/libcamera/internal/shaders/bayer_unpacked.vert index fb5109ee..1425b449 100644 --- a/include/libcamera/internal/shaders/bayer_unpacked.vert +++ b/include/libcamera/internal/shaders/bayer_unpacked.vert @@ -40,8 +40,10 @@ varying vec4 xCoord; /** of the adjacent pixels.*/ varying vec4 yCoord; +uniform float stride_factor; + void main(void) { - center.xy = textureIn; + center.xy = vec2(textureIn.x * stride_factor, textureIn.y); center.zw = textureIn * tex_size + tex_bayer_first_red; xCoord = center.x + vec4(-2.0 * tex_step.x, diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp index cf40478f..29a8ae70 100644 --- a/src/libcamera/software_isp/debayer_egl.cpp +++ b/src/libcamera/software_isp/debayer_egl.cpp @@ -455,7 +455,7 @@ void DebayerEGL::setShaderVariableValues(DebayerParams ¶ms) (GLfloat)height_ }; GLfloat Step[] = { static_cast(bytesPerPixel_) / (inputConfig_.stride - 1), 1.0f / (height_ - 1) }; - GLfloat Stride = 1.0f; + GLfloat Stride = (GLfloat)width_ / (inputConfig_.stride / bytesPerPixel_); GLfloat scaleX = (GLfloat)window_.width / width_; GLfloat scaleY = (GLfloat)window_.height / height_; GLfloat transX = -(1.0f - scaleX); From patchwork Sat Nov 22 20:55:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 25155 Return-Path: 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 1C0E5C3334 for ; Sat, 22 Nov 2025 20:55:21 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A0F4C60AA1; Sat, 22 Nov 2025 21:55:20 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.b="SeyNm/Wu"; dkim=pass (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Hil755mH"; 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 033FE606E6 for ; Sat, 22 Nov 2025 21:55:17 +0100 (CET) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AMKPmnl3626695 for ; Sat, 22 Nov 2025 20:55:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=5sMGVwnGbnv PIoikCtB+aUp3FLBN0seGy74Gac56oBQ=; b=SeyNm/Wuq3Q2kPuAgDWFgOjMTZC 6AjOD6ouqH+g7d7cMADlnyo2u5BG5y4M8VgNjE7sX45XnQdvd8GIu83bkShEpvda e7TQ+27eOJX2kHcBSN72yAaRhJlGuyRBSw6vnawG4aXsEK+xpofnAI/d+wF6S6L3 61BzSbGpAI/Ww3ZM1DAaCFFX1uTpX0thKX+GOq29pQJVivBzxDZB0kKOLGNtkdec dro48somJbB7HIwf1bBQcjUQTgY4Uu3AIQfdAMkKN0FqBIxlD3A2YHfyNkfytxl3 56IJzhj6+uEq0CVgqc0K/+v0a0KL8HLypKAd30Cv/LMQCa/WPNabUzeiHEg== 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 4ak6cds9bg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 22 Nov 2025 20:55:16 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-4ee42d99125so88289041cf.3 for ; Sat, 22 Nov 2025 12:55:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763844916; x=1764449716; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5sMGVwnGbnvPIoikCtB+aUp3FLBN0seGy74Gac56oBQ=; b=Hil755mHPyzK68zLArFlP3olyyjLfHvLk+oL8qyS3r0HtwB3ouMoVr6LGaWpiND2Yv vz9s4N+jIYEi9i0ASmbgwMZ8FYDxeM8+Ak2aO07Txj0KPkGc90CuMi21d1Q5UH1XyokD 0lUTGp8+XR+xc8pVpA7GILKw1knhkVhHJyntGhbO5hQswEdEsPV/52RU8AIRnp5tXlay D6zCQLIfwlAa9tYpGRmJfKk9j/YRPcxPkI2bxmJyIVJWvLj1YbASrNpxmgeumB2ljIkA 2JvwlZQktVpCTOGZMUmjG6Jtg+9bpcT040Ct9aos4kIh3uDccJplHtTDSo9vCgcpc6Rt GBbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763844916; x=1764449716; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5sMGVwnGbnvPIoikCtB+aUp3FLBN0seGy74Gac56oBQ=; b=PtaW4ciFyPd5Wvyi00SS3HNDZ71Ie+tGZh0qTlS3YYTfJuRPhQLNiBw5aAsZ2KxWaM SXczH9BOV8Qq64YVS/N3J9/8+RfQskCMYKUZiRznuil9xYyTEs4cWXgQ7vtHKAvmVcve gtyyafotMPezjgKGbTIYJ+2MDtnj26+4KhE7h7KvUhYyiQO0z9srpwepI0ZdQvgCIQJr tSx48vbqc7uc6NhPgVw57ubTWxk0iDLFvkaLp03Y3DafFMQCoghYu3TREZdLzi+zo9+J innJrXLk9fymD+CXdoLBB0lyXmrZHIIhWZvWkeR9VtKm3yoZWciFgqfLmT0Dm9TRpIWE VXfQ== X-Gm-Message-State: AOJu0YxI9iAxnluSqCGPJWRO6fJUMSXEmah9aOnlBgjVZCFIuf2J21p5 sFs81gZ3arWxvmprkVTb3cS6rzWeB2H3adAPbCtoN/F8HujAGHLLacqTm77hSvw/2mLVw9oh+dh 0Hk1kwD6dbXPoqDy/TU4oLUBC63eNf3Cs0DgJrLxqRReX0/5dwpk855k9pdZ9+DDG054yr/ryw0 ofzKDTKwhx X-Gm-Gg: ASbGncuxjfN62/2/YDhot3IoBGJfYlvethKVdrttZd664oQJapm/T5NOzoUMb/j0Scv f/sowVZF3huwNbVgJymi8/Hfq5XGuzN9J6y0z9sVXeWYbsjKpO7PbTHv1OloCCmkxrNIEdrwT/X xh7dTv4a/zL7/jgodN4dvaiXGnLfh1tJA63praQ1kcGO8rHQSHhfyXRdrcwgO7glt2VOHWOEC1B GQfHd+K4kh+VsPpOXyXc3cIgm/Nh1+CPPA9WFL3XV7mZofUfHy26jzy6Ved+h2vQkIhp+arD0Tr SUmR2PF+vWQPiLdOUG+PVbSxiMVYfK1GEjhDw/Xm8CsI/QY7dSzrBZeg59k2Q9BcfN17g/z/e2Z 1y3lUr9LwPZO8lmim5E4G1yfhMZeWbjy2dpde7TJwW91qmUAbjoyjG+rxdVOnQYr79j0MLO5Eic 7j55eocZ0Lx3F3zxf2y9iBlZ2Z X-Received: by 2002:a05:622a:1207:b0:4ee:1563:2829 with SMTP id d75a77b69052e-4ee58b04a99mr101402161cf.72.1763844916020; Sat, 22 Nov 2025 12:55:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IEVSOAD8w9X872h4azfrf5ZRjN32WQKK/R5ogJH8W0J82nJMRH3Qa61CdAFv3Fyr8ssAgDLdw== X-Received: by 2002:a05:622a:1207:b0:4ee:1563:2829 with SMTP id d75a77b69052e-4ee58b04a99mr101401761cf.72.1763844915343; Sat, 22 Nov 2025 12:55:15 -0800 (PST) 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 a640c23a62f3a-b7655050c53sm822745966b.68.2025.11.22.12.55.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Nov 2025 12:55:14 -0800 (PST) From: Hans de Goede To: libcamera-devel@lists.libcamera.org, Bryan O'Donoghue Cc: Hans de Goede Subject: [PATCH 3/3] libcamera: egl: Fix eGLImage() constructor stride calculation Date: Sat, 22 Nov 2025 21:55:07 +0100 Message-ID: <20251122205507.37387-4-johannes.goede@oss.qualcomm.com> X-Mailer: git-send-email 2.51.1 In-Reply-To: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> References: <20251122205507.37387-1-johannes.goede@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=bsdBxUai c=1 sm=1 tr=0 ts=69222334 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=nKa267-EdcKCvconACgA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: oDnFUWblp7zHi6QdXp8Q8kmPiDjZ8peW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIyMDE3NCBTYWx0ZWRfX37Jw0aVs7yOr ZiOP6qf4oBba1akx07DRc6BDszdNJNVIjazI1OZ6aw5gitV0wlzcer/4WYfc2wazUZHvqGVX4Zw wTQ0ZnlDqAfBKe2aQc980wDg9XVbfF97SA77hmhEwrK/L9U+aHt1ya4phbenMXKUWOgWOwxS/l3 y4wj8+N/oKO1NEV42hjXGCzl8NLlw6BaaKsc7f4EPtDHG4yLgd0aMS4N4Aw1ip3XCFy5mUkqD7I 6wD02vKVdLCEtKTr4JkV6rW+k/wAlH3iVtc0aShSzpfC3o+bhBWn2XKXLpK9yWZxe0WVc56k3mD 9JOU6l7RTga55oJF2LpHY6f95iZXjmgOGPmGE27TRmCyc+dICVc/COKfG1ZfhtMmXzdt1p1DmAR WMwcpTMPO56ft34t8PnmaCGxGd6++g== X-Proofpoint-GUID: oDnFUWblp7zHi6QdXp8Q8kmPiDjZ8peW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.9, FMLib:17.12.100.49 definitions=2025-11-22_08,2025-11-21_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 clxscore=1015 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0 impostorscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511220174 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The mimimum stride is width * bpp / 8 not width * bpp. Correct this to fix setting the stride to a value which is 8 times too large. Signed-off-by: Hans de Goede --- This can be squashed into "libcamera: software_isp: egl: Add a eGL base helper class" --- include/libcamera/internal/egl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/libcamera/internal/egl.h b/include/libcamera/internal/egl.h index e61a394a..5b7cb248 100644 --- a/include/libcamera/internal/egl.h +++ b/include/libcamera/internal/egl.h @@ -75,7 +75,7 @@ public: */ eGLImage(uint32_t width, uint32_t height, uint32_t bpp, GLenum texture_unit, uint32_t texture_unit_uniform_id) { - uint32_t stride = libcamera::utils::alignUp(width * bpp, 256); + uint32_t stride = libcamera::utils::alignUp(width * bpp / 8, 256); init(width, height, bpp, stride, texture_unit, texture_unit_uniform_id); }