{"id":25153,"url":"https://patchwork.libcamera.org/api/1.1/patches/25153/?format=json","web_url":"https://patchwork.libcamera.org/patch/25153/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251122205507.37387-2-johannes.goede@oss.qualcomm.com>","date":"2025-11-22T20:55:05","name":"[1/3] libcamera: swstats_cpu: Stop doing unnecessary work in processFrame()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"fe079219d414074e0812e37db3243c8fb764d4b6","submitter":{"id":242,"url":"https://patchwork.libcamera.org/api/1.1/people/242/?format=json","name":"Hans de Goede","email":"johannes.goede@oss.qualcomm.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/25153/mbox/","series":[{"id":5605,"url":"https://patchwork.libcamera.org/api/1.1/series/5605/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5605","date":"2025-11-22T20:55:04","name":"GPUISP fixes","version":1,"mbox":"https://patchwork.libcamera.org/series/5605/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/25153/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/25153/checks/","tags":{},"headers":{"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\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 8578AC0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 22 Nov 2025 20:55:17 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6913160A8A;\n\tSat, 22 Nov 2025 21:55:16 +0100 (CET)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n\t[205.220.180.131])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 60CCD60A8A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Nov 2025 21:55:14 +0100 (CET)","from pps.filterd (m0279872.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n\t5AMKRnqO3667976 for <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Nov 2025 20:55:13 GMT","from mail-qt1-f197.google.com (mail-qt1-f197.google.com\n\t[209.85.160.197])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ak691ha83-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Nov 2025 20:55:13 +0000 (GMT)","by mail-qt1-f197.google.com with SMTP id\n\td75a77b69052e-4ee04f4c632so68630821cf.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 22 Nov 2025 12:55:13 -0800 (PST)","from shalem\n\t(2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl.\n\t[2001:1c00:c32:7800:5bfa:a036:83f0:f9ec])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-b7655050c53sm822745966b.68.2025.11.22.12.55.09\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 22 Nov 2025 12:55:10 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=qualcomm.com header.i=@qualcomm.com\n\theader.b=\"XzAOUcgr\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n\theader.b=\"BT8qtpq7\"; dkim-atps=neutral","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=qcppdkim1; bh=y+JY/jyAgi0\n\ti8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=; b=XzAOUcgrTZdDUzVyJiG18xeP874\n\tlVzYN3cZhF4FA2HxegvVuLB8QIdPh7G5NSpc4u25JyuV5kVpXsngXBP/iaNFkeue\n\tXs0/euBdoJyruUdbE9xlOdMrgkpTAX3YABCMbmuLF+ep2a04fMvdt5GMTPX1Vj/s\n\t7KuR63cJpUSSwYwNbSE2VopEWH4vHAFqTsBD8bbJPJp4wGugjQvU37rVO3jo5Wex\n\tweTMV6Me5gszIgwjDg7EK3b+HXtzcM6oyeWiyWQJBnyL8nHLXhIocQ8otj5tHAos\n\tFHKRbHpB3bL812lc76mzpcTKkhc/15r7zReAUD0ZPmtee3gi83U+YDpicOg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=oss.qualcomm.com; s=google; t=1763844912; x=1764449712;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=y+JY/jyAgi0i8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=;\n\tb=BT8qtpq78V4qCoS7Lk1rx9awHNUYs5obkkDt9+XasPRW4Ep22vO9tRPd7X4tCSQHKL\n\t+2KCDH02uGiw8/Cg2hfG3L4nKyRdnCcMa5fVAyeoN3n8jjXWigQYsEIiTLwLrl5yIFN+\n\twALnxXxrx0N8x5rKcP7KOnR7XXB9TPcJQGMmu/qbixJnq5LN9ISw6uvUF4Kw9Fxk7M+Z\n\taFXJtsox+sU/QabL5qfsBKFF/X2qyjOhGks2kT1vpyMLgOs3nFn4Qyy/EAKoN1qlyHfZ\n\t4v1AIwM4BSPzjvUwDMB66nrKdwHAwMA/fmlQjG5qg0SKbg/kxHYgHDO5UeiaFWd4Btrj\n\twhPw=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1763844912; x=1764449712;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=y+JY/jyAgi0i8cwx794i8ga3+7I0QwtfnqeCDFL2Q7Y=;\n\tb=Q+vUe8ohwaoZyRebUmcfOfWenq+qOn6wvrDtV565BQlKpXHq0BxvdRavMhZLXrj+AI\n\tPfmil2CZ+ijv29YGb/ZqeAS1s6EqMhRPcnOCOx8y9g0S1ZubE2URc9+JdQZhtcJ0YNY5\n\tE1ebw4Swli2fwOIu2GSw8WhNVPMKltnl3XTtAK9kAZEzwSUmPSntpLbOgenNZGMDby3h\n\ttkoPLY8x23wIoBigA99IehpcsfLSm4luRnHklbv2R2md7Qwen4AUczMy6+Ud7n8IOGWd\n\tmu6X4E7pbCveJyuu8ASzAS/q4tnhZpp8e03lC3BnAmI2qq2SHuaN4X+OgvXoZz1WJHql\n\tMlDA==","X-Gm-Message-State":"AOJu0Yy3YOAjtyq1oaxeILKnnEjGI/FNhe3eRg/e0r/5kIWXi9eQHV87\n\tTL1uc49pb8TGZCZSoTYJNG6DKogI+jakqhxONXMxOkVVMsZXVD9Nil0xlKtJSnUS/WXQ8revGAb\n\tf+2zdPFambwZSvpWVjojYXAmYTivMtoZcH9XLrKHaLx/Qnqt63MJyUt8J0aQr0mo2F+6AA63iau\n\tAKGCO3RM6O","X-Gm-Gg":"ASbGncvKjX6uVmXT/37vXocahjV5mVXfuh13F9KgLlalS8I5WtdIwrQ4egSIqOAuCgC\n\tJk4U7rmgU9kmxtm0WjZAMSqbl0QeE5MK5kKFA5W4NrFSfzcNBDFgUHo0RFtdat3Um6HRbcGkUlb\n\t73RYEqtcbDNy4hKlT9AMH9XTMLX8uq/h6M9ja9FF5leT4FfM1ydkcAh+vjDcSSlVloDySEX2NMC\n\tkwQzWdNiWJdbntlpp9CkxUfcTlrN81rj0QPercp7SjhTjn1uR1WDAMdOPxJJveqBriRRWBqerWy\n\tzUXPs3fRIpAf/VUB071wPOu764aBNeuE2PWeta/+VHtjQOy/Vyz30bAnWAtl3mFXXuJDxDXV2Np\n\tzCh6bM3/TBdXm/LH338MxVD2+ftQDYHTZ1zh/XGFKiwCtYPxjilLAoVBf08zANnN5R3n4ognXqK\n\tPcdCsqLvpN++lDx/aWoTn8a+2W","X-Received":["by 2002:a05:622a:1b8b:b0:4ed:aa7b:db82 with SMTP id\n\td75a77b69052e-4ee58aa250fmr76017541cf.24.1763844912405; \n\tSat, 22 Nov 2025 12:55:12 -0800 (PST)","by 2002:a05:622a:1b8b:b0:4ed:aa7b:db82 with SMTP id\n\td75a77b69052e-4ee58aa250fmr76017411cf.24.1763844911963; \n\tSat, 22 Nov 2025 12:55:11 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IEOmirYVljqREqx+5kh5MOo5dEdIBQHkqEz0b3ZSXsv7g2JOiWmqEMMo+820eXpxM6BuAP35A==","From":"Hans de Goede <johannes.goede@oss.qualcomm.com>","To":"libcamera-devel@lists.libcamera.org,\n\tBryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"Hans de Goede <johannes.goede@oss.qualcomm.com>","Subject":"[PATCH 1/3] libcamera: swstats_cpu: Stop doing unnecessary work in\n\tprocessFrame()","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","Content-Transfer-Encoding":"8bit","X-Authority-Analysis":"v=2.4 cv=Be3VE7t2 c=1 sm=1 tr=0 ts=69222331 cx=c_pps\n\ta=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=6UeiqGixMTsA:10\n\ta=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8\n\ta=gsdx_oV6CcUgYg5htLIA:9 a=a_PwQJl-kcHnX1M80qC6:22","X-Proofpoint-ORIG-GUID":"zwfWRem5R5-A6nQ5WkdSG0uMjbHtfjZ_","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjUxMTIyMDE3NCBTYWx0ZWRfX38U9vFzYsa7z\n\tleZOjPKW7GW29qSyYNvjjI1mXLDnUMAH78qIy7AqCNWfTA3cZR8Kcv+krihtTaej4tb2Ok6xe8g\n\tvn25p1yoGZKhM1fx6Z2/gdhKYI/LJ51m01Gea9DPOlwZuRpuKR7qJZ3P4X36l2meft15KpLMPJJ\n\tA8Q4CibmIHfBYKuO5cxBrZ6onksRqG5l1awZiKG96XpQga55llnhmAFEauJFNU/gpXEYwzjSwpJ\n\tD635cFe+8dxwrBUQZ+Teb+ze3r2tYF/qj5/aFN5ntWEZXBleaJ7oNbn5klGw/co1wPj9lFQ6tD0\n\trRc1bhyiX5epbE6wqW9eDmbAuIbQa8BEujBPOB1BUVRuRJVaxRJUqh1P4Ea75qNXND6VWReoYIC\n\tkjWmouFBrlVdtQ90KM69IqCCRQHPlA==","X-Proofpoint-GUID":"zwfWRem5R5-A6nQ5WkdSG0uMjbHtfjZ_","X-Proofpoint-Virus-Version":"vendor=baseguard\n\tengine=ICAP:2.0.293, Aquarius:18.0.1121, Hydra:6.1.9,\n\tFMLib:17.12.100.49\n\tdefinitions=2025-11-22_08,2025-11-21_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tsuspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 clxscore=1015\n\tlowpriorityscore=0 priorityscore=1501 impostorscore=0 adultscore=0\n\tphishscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n\troute=outbound adjust=0 reason=mlx scancount=1\n\tengine=8.22.0-2510240001\n\tdefinitions=main-2511220174","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>,\n\t<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>,\n\t<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>"},"content":"Since commit c28bb6a6a48e (\"libcamera: software_isp: Run sw-statistics\nonce every 4th frame) CPU based software-statistics are supposed to\nonly run every 4th frame.\n\nAnd processFrame() already honors this in the sense that endFrame()\ncall will mark the generated statistics as not valid just like it does\nwhen called from debayer_cpu.cpp, which does the statistics line by line\nrather then calling processFrame().\n\nBut before marking the statistics as invalid processFrame() still does\nthe actual work of dma-syncing and mapping the input-buffer and then\ngenerating the statistics, only to mark them invalid in the end.\n\nRemove all the unnecesary work for every 3 of 4 frames by skipping\neverything and just marking the statistics as not valid right away.\n\nSigned-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>\n---\nThis should be squashed into \"libcamera: swstats_cpu: Add processFrame()\nmethod\" for the next version of the \"[PATCH 00/22] GPUISP precursor series\"\n---\n src/libcamera/software_isp/swstats_cpu.cpp | 5 +++++\n 1 file changed, 5 insertions(+)","diff":"diff --git a/src/libcamera/software_isp/swstats_cpu.cpp b/src/libcamera/software_isp/swstats_cpu.cpp\nindex f5906197..c931edb4 100644\n--- a/src/libcamera/software_isp/swstats_cpu.cpp\n+++ b/src/libcamera/software_isp/swstats_cpu.cpp\n@@ -521,6 +521,11 @@ void SwStatsCpu::processBayerFrame2(MappedFrameBuffer &in)\n  */\n void SwStatsCpu::processFrame(uint32_t frame, uint32_t bufferId, FrameBuffer *input)\n {\n+\tif (frame % kStatPerNumFrames) {\n+\t\tfinishFrame(frame, bufferId);\n+\t\treturn;\n+\t}\n+\n \tbench_.startFrame();\n \tstartFrame(frame);\n \n","prefixes":["1/3"]}