Message ID | 20250611013245.133785-14-bryan.odonoghue@linaro.org |
---|---|
State | New |
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 5E42EC3325 for <parsemail@patchwork.libcamera.org>; Wed, 11 Jun 2025 01:33:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DA9D468DDC; Wed, 11 Jun 2025 03:33:40 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="RUGbdXj6"; 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 8A38468DC9 for <libcamera-devel@lists.libcamera.org>; Wed, 11 Jun 2025 03:33:38 +0200 (CEST) Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so51410865e9.0 for <libcamera-devel@lists.libcamera.org>; Tue, 10 Jun 2025 18:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749605618; x=1750210418; 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=GKpObFN+EgBcQyqBbRGy4fFnCArup6QMMSIFijPSPfA=; b=RUGbdXj6qrDIj7nS+t8duxhwURkuyTq2by7gx0TkHofGyiW8DDZRYUMHj/vGy1izzk LZTd9wMg/OLqKfeV3mmXRKVYwju8gZy/xYWOw2p3EH+v7oUtYyR40JIyGWRrlwsVifQk tPC5MEof30KXvkfnFgjFXVMr/HXm/UZN3//nOdUZCZR1bJ/JFFg/zHajdg4idCkHh7/N iHnwEhq5zE4wnj1Ny4K54fehn83cbF2N41yVJBM0UDGSF1B6U+avVuJI/bOVkVdew4sH 6ueJpA1OI9hBuK9FeBWX/poMhLPPbKaKUk/xzbzJZ4G1l0Uyxzks53jjXDaZLs5EYjiH NQ9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749605618; x=1750210418; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GKpObFN+EgBcQyqBbRGy4fFnCArup6QMMSIFijPSPfA=; b=bDZvuA9METq+tOxGjngc2k3FhoPJ1NRnuMKQMdQEXOblbCbgD8wnQQ7nRDu+CZJNaQ ac+aIPAPgahw+OWSQOecxnQOk8eif7g5WU0+vwp2v7BOzzN7k/YGdCAsBf1ZSJbJkIh7 plEOy9w9LrHl7klN69+qzB3h2BQ+fyrJFi3jhrZfPn+NLRDk8olsqUwZcWQRExyS+xgx coFXDZeYtYLvqmItiSRn313BGTLz/qdyTfhYrLKe+5MKEREJ3Ltf03zwX1XEqzE0RtDq 9r5qCzDgELr+dD5xuuaN7V/+69Xy0nfxS3UpBIV6AlZNck3NYyG54IYQ+mn4u1SuAOO4 GI6w== X-Gm-Message-State: AOJu0YzO1h5D0pQOMNapVZMvY6iJkICQuMWMbwGizcpik1uzY9PAzNvC U4luJ2COOVZ9IYuqKYO9iuCui8QLPgpC9cUOqzStceJFRNdbiy/tyXgLzmvS5cXBiw0O0HqOT7L fOiZmUAY= X-Gm-Gg: ASbGnct0gHCgkhqvm1T5ZethbqY8OUL38QZO610F6/tl9UiTK1bmRgV4wAmrd/8sPXt p5KbihQNuO9MNsz35k03tQEGcRBgvRovQ5oaOKSg0GoZ5IsA8+JcOYQy6k33WzAev6APJVVkACq 2eWa289vUiRYhBb+5XFHZKEqhYCNi1RYuiz6Pna7NhH2lecuAfs54teh+4cta5R3hsMnmgUdrCf NruH5iiD+7H6QO2pqxLuHg78eqcOh/CiDV76vAlPiL8V8al4D9Tqa+vsUX29VzxJTCyl+5cdvPh yagJ2D1HPpa2gP4+J/AFVh2rj9d1Prb7VA64CFb5dP15qyPzeWgad3MtCCrdsZ7uhZJ3Cs5AV1Z 2WWAtBQEO1bOWTLsWJdOvn2NthlQ/MpvitLo3Oaf4cQ== X-Google-Smtp-Source: AGHT+IE9p03Zk5THt1Eqr79NheVJlXFqjchU2l+c3hdHz65PA6lX0ZVL/vV1CrDTr7MsN0KHrW49Mg== X-Received: by 2002:a05:600c:83c6:b0:450:d5a5:e6c5 with SMTP id 5b1f17b1804b1-45324f4906dmr5725615e9.26.1749605617844; Tue, 10 Jun 2025 18:33:37 -0700 (PDT) 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-4532514138asm5680625e9.3.2025.06.10.18.33.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jun 2025 18:33:37 -0700 (PDT) From: Bryan O'Donoghue <bryan.odonoghue@linaro.org> To: libcamera-devel@lists.libcamera.org Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Subject: [PATCH 13/35] libcamera: software_isp: Move configure to worker thread Date: Wed, 11 Jun 2025 02:32:23 +0100 Message-ID: <20250611013245.133785-14-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250611013245.133785-1-bryan.odonoghue@linaro.org> References: <20250611013245.133785-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>, <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
|
diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp index 7bee8f06..e8fa8a17 100644 --- a/src/libcamera/software_isp/software_isp.cpp +++ b/src/libcamera/software_isp/software_isp.cpp @@ -263,7 +263,15 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg, debayer_->moveToThread(&ispWorkerThread_); ispWorkerThread_.start(); - return debayer_->configure(inputCfg, outputCfgs, ccmEnabled_); + ret = debayer_->invokeMethod(&Debayer::configure, + ConnectionTypeBlocking, inputCfg, + outputCfgs, ccmEnabled_); + if (ret) { + ispWorkerThread_.exit(); + ispWorkerThread_.wait(); + } + + return ret; } /** @@ -386,7 +394,7 @@ void SoftwareIsp::stop() void SoftwareIsp::process(uint32_t frame, FrameBuffer *input, FrameBuffer *output) { ipa_->computeParams(frame); - debayer_->invokeMethod(&DebayerCpu::process, + debayer_->invokeMethod(&Debayer::process, ConnectionTypeQueued, frame, input, output, debayerParams_); }
OpenGL requires both configure() and process() to operate on the same thread. As preparation for that, move current CPU configure into the WorkerThread with a ConnectionTypeBlocking invocation of &DebayerCpu::configure. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> --- src/libcamera/software_isp/software_isp.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)