From patchwork Wed Dec 10 00:53:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 25435 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 777E9C3257 for ; Wed, 10 Dec 2025 00:55:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3291D61492; Wed, 10 Dec 2025 01:55:04 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="Uuvl52MZ"; dkim-atps=neutral Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3F96561487 for ; Wed, 10 Dec 2025 01:55:02 +0100 (CET) Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-7b9c17dd591so5757379b3a.3 for ; Tue, 09 Dec 2025 16:55:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1765328101; x=1765932901; 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=7oua+zu5TdyXrsQakdxruWuygiutsWPpfC/ccVXxgyg=; b=Uuvl52MZNQ7xQdEfP+MK9PiiYuXdlewWkg3upcO56moJcDfhogeagpQkVF074RkXfo QN2hQMOJrdScWTFQolT0P58Yj+Vkm3XiwpiIZyD8RPjn0uXPHTyTTfvQaslRDOtCASla G4sqc18Jlep9qXkLQM4+HQF5xPzQMQh/WV1nYwo34M44o816PASDyaGIt4GYBNF3sn0j gswMWLf5TsV/zlFTi2oG/OkQUU8Kv3TcKQkEHlDU3IqHUPMY3dCPSHoOdBfrnbzt9fqn aR1IiSpKxpULQeFk7Lnytu3gybZ/Yi9kkwgFYhs/Zbj0wFslbOcM7bEtwk1jDTwgRY+o 5kqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765328101; x=1765932901; 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=7oua+zu5TdyXrsQakdxruWuygiutsWPpfC/ccVXxgyg=; b=TZLofuEg2xkaT+Nu1OO+QnVSmGnq0Tr+Pq5zdRmZGaO9u8SyWgjf1QcIBICw3w2uu/ lplxOBa+L9TjdIb5jh54wZ3k1a1Meqg4YtPKeDkKXk3xYdItC3E+XV8BS0WVwpNhMJWz c9sjW8GqPb/YEct73eT94JqAIF9oJ5cxPzeZcXFeaYDxvfAp6dRZfq2h3BR//ihc7piB VfKTd7jTRCYzHPt6R3pUP51z0qyBeNQ+fk5HHUkgKQQiU0DQHstfqAXn8RqL3nAh6ZAJ RW1hEMcjU1nLyUF9YySP55Uvb2eX3wG2XZX0TsLDd983V2XdVMpBrfFmrOhLWyhC24Gt E1XA== X-Gm-Message-State: AOJu0Yz8eLMuvrYFtSuDj7jqQP6hWHeDss5QPXcBxSK0gTsiyoosN55Z U6rQOi25hH6pOboZtT/TeS1D0a8JsYhqvNY+LLbA/fqC2CEzrHM5x9CkAa7b5f2MuUsR2EvOjxn n9O3p X-Gm-Gg: ASbGnctbUl8QcmD1CPF1/alL4nt1RrDGAC45KZQ3v1rjMlhVC7rLEqUv5/ar81amDEl 881wzO2pQHXTy1C85Gr8s+H4DehmaaPee2mh/JMaOp9nXLe/f/srvTCD3BkZU41kmzxh744OdHG JNvpdtQSSr9m/BDEC3smgv+15Sz/9S/DkGB+GJYppP0n4WAqK1l+p9yCUz+gGvRaksh6vJpVdAm XKZge1snB8vR0MFlmQeXx9/7OGnjSG+tz5sPLoeugdra10Hgh3Mn3HnnMt6qit9LGoldtZMtTmI jD6n9TsBzDaXyypXQ87t5AzWhgfvV3gwvUpVphHXp18hbQAQl5REC/1rMxC43CeXBGd10rhGykt uk1mZVUR5bN1EPEcS4YgvgwPds9ZbgCfpn3Moz4QXFwNeDoyXBAuZkpKGdd2fJd1lmL3C/9ERR5 Yh3A2WC7GvvTIY1FdU/a+lXz7HQGIw/9XuHTm+QBOOX76InhKeQZ5k2oQhVFstIOL2nyv4wNzEV KI= X-Google-Smtp-Source: AGHT+IF66/VkqdYjfVTJxU5FBwbob25ZO7taa+biVvvozgY5mwxNRWEYxjnHuXtFT6kFxAQww6NozA== X-Received: by 2002:a05:6a20:918c:b0:366:14b2:315 with SMTP id adf61e73a8af0-366e35bb9c6mr587131637.72.1765328100492; Tue, 09 Dec 2025 16:55:00 -0800 (PST) Received: from inspiron14p-linux (p96936b06.osaknt01.ap.so-net.ne.jp. [150.147.107.6]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-bf6875cc8eesm16057762a12.16.2025.12.09.16.54.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 16:55:00 -0800 (PST) From: Bryan O'Donoghue To: libcamera-devel@lists.libcamera.org Cc: pavel@ucw.cz, Bryan O'Donoghue Subject: [PATCH v7 18/26] libcamera: software_isp: debayer_egl: Make gpuisp default softisp mode Date: Wed, 10 Dec 2025 00:53:46 +0000 Message-ID: <20251210005354.44726-19-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251210005354.44726-1-bryan.odonoghue@linaro.org> References: <20251210005354.44726-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 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" In some cases the GPU can deliver 15x performance in Debayer with the CCM on, reference hardware Qualcomm RB5 with IMX512 sensor. Given this large performance difference it makes sense to make GPUISP the default for the Software ISP. If LIBCAMERA_SOFTISP_MODE is omitted gpu will be the default. If libcamera is compiled without gpuisp support, CPU Debayer will be used. It is still possible to select CPU mode with LIBCAMERA_SOFISP_MODE=cpu. Signed-off-by: Bryan O'Donoghue --- src/libcamera/software_isp/software_isp.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp index efe44e393..06f93ee0f 100644 --- a/src/libcamera/software_isp/software_isp.cpp +++ b/src/libcamera/software_isp/software_isp.cpp @@ -123,8 +123,15 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor, #if HAVE_DEBAYER_EGL std::optional softISPMode = configuration.envOption("LIBCAMERA_SOFTISP_MODE", { "software_isp", "mode" }); + if (softISPMode) { + if (softISPMode != "gpu" && softISPMode != "cpu") { + LOG(SoftwareIsp, Error) << "LIBCAMERA_SOFISP_MODE " << softISPMode.value() << " invalid. " + << "must be \"cpu\" or \"gpu\""; + return; + } + } - if (softISPMode && softISPMode == "gpu") { + if (!softISPMode || softISPMode == "gpu") { debayer_ = std::make_unique(std::move(stats), configuration); if (!debayer_) { LOG(SoftwareIsp, Error) << "Failed to instantiate GPUISP";