{"id":23224,"url":"https://patchwork.libcamera.org/api/patches/23224/?format=json","web_url":"https://patchwork.libcamera.org/patch/23224/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/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":"<20250422215920.4297-12-bryan.odonoghue@linaro.org>","date":"2025-04-22T21:59:04","name":"[11/27] libcamera: software_isp: Move configure to worker thread","commit_ref":null,"pull_url":null,"state":"rfc","archived":false,"hash":"73fd7855399ae15b4458c898d91bc54d8d64be32","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/?format=json","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/23224/mbox/","series":[{"id":5142,"url":"https://patchwork.libcamera.org/api/series/5142/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5142","date":"2025-04-22T21:58:53","name":"RFC: Add in a eGL based GPUISP in libcamera","version":1,"mbox":"https://patchwork.libcamera.org/series/5142/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/23224/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/23224/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 93202C32A2\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Apr 2025 21:59:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0267868B3C;\n\tTue, 22 Apr 2025 23:59:42 +0200 (CEST)","from mail-wm1-x330.google.com (mail-wm1-x330.google.com\n\t[IPv6:2a00:1450:4864:20::330])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2D22568B2B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 23:59:34 +0200 (CEST)","by mail-wm1-x330.google.com with SMTP id\n\t5b1f17b1804b1-43cec5cd73bso36789445e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Apr 2025 14:59:34 -0700 (PDT)","from inspiron14p-linux.ht.home (188-141-3-146.dynamic.upc.ie.\n\t[188.141.3.146]) by smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-44092d2eccesm2726615e9.20.2025.04.22.14.59.32\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 22 Apr 2025 14:59:32 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"IMyfQDKD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1745359173; x=1745963973;\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=JZAXC64SF7x+tdFk+QdWciV7YnJqIucxPuLyTZBOoB0=;\n\tb=IMyfQDKDN/gTLC2PTnZw5zRaVLdj9L7ig+Ef+HSoJbepEeFDHUoErWio8ZMF5CPyGa\n\tDm9BRYnAlTMCfE/QNwrbr8K2S336ccU2N1xZswPlJcJy/9ytPwoCPFUHFtzU8BalIdiY\n\t7NkLo2/Hs/L22dZwUV7XU/7h25JBjBlYSAZ89gkVsu9jldjBRm5jfX/TYQ8TKW7B8kmJ\n\tRImFu9UBUM1gIxtB9saxsyrpuN54N3YVlOdHpS9bcodcP6mEicbLnbcqgcofa9GXLtlM\n\tGvZ4qZ6DFAMTCT9j/vxCsmyLAGShhXJqy4eU28AJRXxKQSAEV3LWqyETr7hvMPPAaDPN\n\tjrsw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1745359173; x=1745963973;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=JZAXC64SF7x+tdFk+QdWciV7YnJqIucxPuLyTZBOoB0=;\n\tb=khvvfqCclxVc92kVmBt3lyFVnHKJtFOEaAVHeQ7iS/qm1Sq2XS5EywAUgqkl9eXxK9\n\tGphDRbM2iiUYNkeA+vWuavIDHFNOt2+MgnPbhoLBkbeCuXxY0soQFknMutz7Kr3y7OU1\n\t1Y/RzmdJNQw++xcg1DZcDmojioY0i7iEG0AqvBKCvTr/TJGA/jgALuSpau8S/1HjZpLB\n\tyKojddghVrjhKY4fXx87NIcrxa+NArvUfmrfo9+ZEugvtCpQ8WjsLjSPRsj7MYUw0jEp\n\tIU3E/+CqQ0nOzFZUjbeOpLznVYrIjTeshwdHJStustEePrbiM103gIOoJBxBBguXn4ZT\n\tI3MA==","X-Gm-Message-State":"AOJu0YxRoJfXbpApg5uFqkYOZsyOfmBxXgoaU0ZSBWxkDJeZ1hVdllI1\n\tdfkbtJhtV8GH4FT9CbSqz9vGf80GE9vXnDyWBElXYGXymMinRJYKgfOFZXFQZwVjYgPr0ri920P\n\tiFeA=","X-Gm-Gg":"ASbGncvXi39NfDYU3rpD4Zz7Gxy62CnrnOedPVUoKxO0lbXXk/wEVTQeQ2psqI5sa58\n\t2gN2sR9jmig1A8MWwyRxPwMA6+YFrCtifvurKigLspbQ93Efeq8pZwhIdY1hZZZalEZEQpb+y/L\n\tPk/mT5qlPxZuQRWLXI1zCZtm+HN8skfmTxN11wDJuObL4bCK79kn3a+yWMCnfk2ESPk9VqqKC6O\n\tM4U1hpHz4XSLzwowTL/u18tLkKpjI6Y3qQKYkha3X6k6+mOjWTTN6cNCNsJ70uICtmaCUsk6mTI\n\trPn+cj0kJmbaqQ4LPJFLZaNBOvk2Zc4bnl0WrZAWZ3D3Gcn0/RXwVqo5yl5LaleO3HfNgPWPZu1\n\td351XpYB/jktiVl6mWR+6","X-Google-Smtp-Source":"AGHT+IE4eoEIb+FUPEKdYVaNv69yaImxYFh6cymcfpC4HucULbXK3xKiFi8u5uwLytf9BOpk4sUQtg==","X-Received":"by 2002:a05:600c:3c9b:b0:43c:ec4c:25b1 with SMTP id\n\t5b1f17b1804b1-4406abfbcd7mr137550675e9.23.1745359173450; \n\tTue, 22 Apr 2025 14:59:33 -0700 (PDT)","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","To":"libcamera-devel@lists.libcamera.org","Cc":"hdegoede@redhat.com, mzamazal@redhat.com, bryan.odonoghue@linaro.org,\n\tbod.linux@nxsw.ie","Subject":"[PATCH 11/27] libcamera: software_isp: Move configure to worker\n\tthread","Date":"Tue, 22 Apr 2025 22:59:04 +0100","Message-ID":"<20250422215920.4297-12-bryan.odonoghue@linaro.org>","X-Mailer":"git-send-email 2.49.0","In-Reply-To":"<20250422215920.4297-1-bryan.odonoghue@linaro.org>","References":"<20250422215920.4297-1-bryan.odonoghue@linaro.org>","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>,\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":"OpenGL requires both configure() and process() to operate on the same\nthread. As preparation for that, move current CPU configure into the\nWorkerThread with a ConnectionTypeBlocking invocation of\n&DebayerCpu::configure.\n\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n src/libcamera/software_isp/software_isp.cpp | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)","diff":"diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\nindex 7bee8f06..e36aa246 100644\n--- a/src/libcamera/software_isp/software_isp.cpp\n+++ b/src/libcamera/software_isp/software_isp.cpp\n@@ -263,7 +263,9 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg,\n \tdebayer_->moveToThread(&ispWorkerThread_);\n \tispWorkerThread_.start();\n \n-\treturn debayer_->configure(inputCfg, outputCfgs, ccmEnabled_);\n+\treturn debayer_->invokeMethod(&DebayerCpu::configure,\n+\t\t\t\t      ConnectionTypeBlocking, inputCfg,\n+\t\t\t\t      outputCfgs, ccmEnabled_);\n }\n \n /**\n","prefixes":["11/27"]}