[{"id":34484,"web_url":"https://patchwork.libcamera.org/comment/34484/","msgid":"<12ddf5b9-ea2c-452a-a90a-dfe7e5967fdf@linaro.org>","date":"2025-06-16T19:02:10","subject":"Re: [PATCH 12/35] libcamera: software_isp: Start the ISP thread in\n\tconfigure","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 11/06/2025 02:32, Bryan O'Donoghue wrote:\n> OpenGL is not thread-safe and in fact associates invisible handles with the\n> threadid of the calling context.\ng:/OpenGL/s//Mesa/g\n\n---\nbod","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 A0792BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Jun 2025 19:02:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6B35B68DCB;\n\tMon, 16 Jun 2025 21:02:14 +0200 (CEST)","from mail-wm1-x331.google.com (mail-wm1-x331.google.com\n\t[IPv6:2a00:1450:4864:20::331])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8136468DC0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jun 2025 21:02:12 +0200 (CEST)","by mail-wm1-x331.google.com with SMTP id\n\t5b1f17b1804b1-43ea40a6e98so60533875e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jun 2025 12:02:12 -0700 (PDT)","from [192.168.0.35] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-3a568a7e51esm11662165f8f.40.2025.06.16.12.02.10\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tMon, 16 Jun 2025 12:02:11 -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=\"Q/3D2871\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1750100532; x=1750705332;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=sJfD5jdiJILELGC0yCAWQqef2BmRnGgYlDQR1OYo5xs=;\n\tb=Q/3D2871r9SsJzDcUBtK001CKK1ce/IGTnXAFguqirjvFJnE1Lm5GKusBdWcZDDSXl\n\tJL9kZjjGODFXFHz+yIidSq6Oi2ItjUFGFKxG3G5RvCs6Kay00KDLizoxWZBlKC4rskqR\n\t42mwnXYuuO0B21fTF6hTsGFEu4BaGbFS3NbOQAxhr5d/ADzGHpVzRj5uH8zxhamjllT0\n\tliU97917ebxg4mkQ63xj0NP1WuJCx3K6wIfrtRE0DpkuDVdt/RJClHAf0rCe/6Mh2eU3\n\tmzpsbbgLAU95BSh0mYMAwnW6k1TXZ8syv1+XeTc5uX9S/TpHbPAQBhVRF3K/QqGHhuoK\n\tKytw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1750100532; x=1750705332;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=sJfD5jdiJILELGC0yCAWQqef2BmRnGgYlDQR1OYo5xs=;\n\tb=lxkFrFmRrdXE+QgH81kC8VLhbwizVO3N3ZV+eZfCiEPA7dW8VBYqf782MhRW9gqUwb\n\thAEVfc6oqQlOAU7lB8aQSWNZmZ4lFbhV5Nd9MzcKxxg0ZfbDE3CWm2khC5WdwJfLYcgs\n\tlBDVffDU+7r8IE3q/Ri0mDC+bBt5jKujdp9VJzcJmMqAqzMb5p8nJP6LM2MW6jN9xCFw\n\tQawCQJ8wLSo+A2IypjvKlyfoiYzxaLABo3Q7SbfQ9Dpcl5vsmpEJPASBXs/VSBg7s42Y\n\tZJzVrsw0xYaX+ZdEbwZzNLmgQRivEpYTDftUfoSKVKHC3/wZsSlI0NPx1ieRcjTvj5z+\n\tGIRg==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCX23+CZr9VvrCCOvYLUNshDJKnBqA0lCPObmPw3QChWkDNQNuMPqxDjCt/QvqBV1iS3YA8T6EIRi7aroPxwchM=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YwdhyUDpANutjTy0xBH1e8L42lZ4qvk6GdqjqdBUHbJPjALoodc\n\tx5dlrxmghofRNzcDLA5jCFnsKZ7HumlMqBO3n0SWag4e16H8iy0x6GgcYKdd5TpmJ7A=","X-Gm-Gg":"ASbGncsy1cDWGLJbDPS6LMA6s2lg0vUfrbgXH7GNC0yqqu6c5W4hlS2PZZlVoGOhHlK\n\t5KwvlnPu+wN8rcoS4kz0WTC7pnq01Qr0iHfEUqr1TicqIMGpdHAA8bPt4UR44FqUhSHF+nv64Tg\n\twP6HurJcDdJauqVz6D3cnP4OD2x0McsCnVqT3O6Y2Jsg5+dxrZuRs9eVANOMqQPnz5Nws3cuwSB\n\tjY52IS9Y0XN1HsprLeyLQKujVCmNeJh77Ma/3WOwX6ZUyUhnPu4UPAp/HdNkB7kAoIhNHKV81M4\n\tn+gmhftsJ4KZ5JM8M55u7f5sDO/0Gx/oY662NzQMPTxxn4UDYb8yiPW9ouPIhp7ao6zdseSooPt\n\tWrwzDdCFlfawNN7XuRLPW9UZrWGM=","X-Google-Smtp-Source":"AGHT+IHIgs649jVSwGV+mh1Vd0GNl8Aajq1fEffOJl39IhrZqo8dbCm1yANGuJwCwslc4WvgN5rGDg==","X-Received":"by 2002:a05:600c:1c1b:b0:453:d3d:d9fd with SMTP id\n\t5b1f17b1804b1-4533ca54eccmr97021185e9.12.1750100531785; \n\tMon, 16 Jun 2025 12:02:11 -0700 (PDT)","Message-ID":"<12ddf5b9-ea2c-452a-a90a-dfe7e5967fdf@linaro.org>","Date":"Mon, 16 Jun 2025 20:02:10 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 12/35] libcamera: software_isp: Start the ISP thread in\n\tconfigure","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250611013245.133785-1-bryan.odonoghue@linaro.org>\n\t<kUtqZeBpre8uu7Jvd3yG6QrT31LUn9hJ3bPxY7VHO6JHuI2F-nUFfJVp5LZ_7SFtyya4ItyO52R5mIKQTRGiaA==@protonmail.internalid>\n\t<20250611013245.133785-13-bryan.odonoghue@linaro.org>","Content-Language":"en-US","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<20250611013245.133785-13-bryan.odonoghue@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>"}},{"id":34507,"web_url":"https://patchwork.libcamera.org/comment/34507/","msgid":"<85ldpqbrbf.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-06-17T10:22:44","subject":"Re: [PATCH 12/35] libcamera: software_isp: Start the ISP thread in\n\tconfigure","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Bryan,\n\nBryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n\n> OpenGL is not thread-safe and in fact associates invisible handles with the\n> threadid of the calling context.\n>\n> As a result we need to make configure() and process() in SoftISP execute on\n> the same thread.\n\nYou mean Debayer::configure+process, right?\n\n> Move start thread into configure() as a first step towards this.\n>\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n>  src/libcamera/software_isp/software_isp.cpp | 6 +++---\n>  1 file changed, 3 insertions(+), 3 deletions(-)\n>\n> diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp\n> index 28e2a360..7bee8f06 100644\n> --- a/src/libcamera/software_isp/software_isp.cpp\n> +++ b/src/libcamera/software_isp/software_isp.cpp\n> @@ -159,8 +159,6 @@ SoftwareIsp::SoftwareIsp(PipelineHandler *pipe, const CameraSensor *sensor,\n>  \t\t\t\t\t    metadataReady.emit(frame, metadata);\n>  \t\t\t\t    });\n>  \tipa_->setSensorControls.connect(this, &SoftwareIsp::setSensorCtrls);\n> -\n> -\tdebayer_->moveToThread(&ispWorkerThread_);\n\nWhy is this moved to `configure' too?  To be at the same place as\nmoveToThread?  And should the thread be started here or in `configure'?\n\nI don't say anything from it is wrong but it would be good to add a bit\nmore explanation to the commit message to understand what's needed\nexactly and why.\n\n>  }\n>  \n>  SoftwareIsp::~SoftwareIsp()\n> @@ -262,6 +260,9 @@ int SoftwareIsp::configure(const StreamConfiguration &inputCfg,\n>  \tif (ret < 0)\n>  \t\treturn ret;\n>  \n> +\tdebayer_->moveToThread(&ispWorkerThread_);\n> +\tispWorkerThread_.start();\n> +\n>  \treturn debayer_->configure(inputCfg, outputCfgs, ccmEnabled_);\n>  }\n>  \n> @@ -343,7 +344,6 @@ int SoftwareIsp::start()\n>  \tif (ret)\n>  \t\treturn ret;\n>  \n> -\tispWorkerThread_.start();\n>  \treturn 0;\n>  }","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 A730AC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 Jun 2025 10:22:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E03CC68DCD;\n\tTue, 17 Jun 2025 12:22:50 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2536768DB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Jun 2025 12:22:50 +0200 (CEST)","from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n\t[209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-54-XtmG9VskNcOZQBTzAT_bow-1; Tue, 17 Jun 2025 06:22:47 -0400","by mail-wm1-f70.google.com with SMTP id\n\t5b1f17b1804b1-451d7de4ae3so35942075e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Jun 2025 03:22:47 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb ([85.93.96.130])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-453421fe188sm98030115e9.5.2025.06.17.03.22.45\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 17 Jun 2025 03:22:45 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"RJebSF6s\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1750155769;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=3TNw+hcFCne6lXCB9wDeLj0XDYMnN6g9WLesPHYFS9k=;\n\tb=RJebSF6sBloYcjADWiWyge69qiiInUfH6P2S7Ejg9ysKi9dySAlcaW/S3LdovWeN4rqD0S\n\tqdvFQhxI5nLSmzQxiqqW6k8+kPxToPzrSYVyr3HKX+Fxsma7K6ziesjcrD4raaoytBKsxe\n\tImVRHMilxGaR2F4OVLhVUpbd7NGQdjY=","X-MC-Unique":"XtmG9VskNcOZQBTzAT_bow-1","X-Mimecast-MFC-AGG-ID":"XtmG9VskNcOZQBTzAT_bow_1750155767","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1750155766; x=1750760566;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=3TNw+hcFCne6lXCB9wDeLj0XDYMnN6g9WLesPHYFS9k=;\n\tb=jOTlbG+IxknODbqhg1GOfv+iK+I8mV6Wmj2pRfc+GZIkqHGMkNlczbF16fNA0t931M\n\tXe0OGp+K2SmkYziWtezmteh6PhINOTZCGo6S3LiPTL82/N5jpUse/vh+M3cErTp8khy2\n\tWK2pEM70QlYuBKqq6U8TMF70kL1UNRyU70neyztb+o7Fb1UsULnSv2IHImYvJWM5vz09\n\t7LGfsQV+sNkyI7ZMmjsNDluZB+eptPE9LBYGZ+jLyTgA9ANpXCw7Y362E9qcC5h0uPwr\n\ti95AFGChfsl1SC1rC2yPY98NLxtqrA9M010cz50dloL9Kx9Dg1kEjFx/hgUdE0VpdxAA\n\t3hfQ==","X-Gm-Message-State":"AOJu0YzinaIj9/nsIYQTsB3VGMTdxXJXT0zBJo6e85xx004PUb1Ot2cL\n\t7KSqm2Fi6MVAfULZrsGScBilsf4B/Wc5WW8cjnjng5d4t1CzJs4ySSvsuzBToHpgHeQ6kUcwpep\n\tEq4M4aP08sBbTmK/GQ9q8EbYuTb0eTbUxL2acbffHJQrnyl7Qf6ymGMmNBOznDwM9VMeSDY2mtQ\n\tuUM52bQdkmkFSUQeUBt0Q4GJ5AgqrD5yVPnfcRkU+ISopwihPOUeD8wj4euQA=","X-Gm-Gg":"ASbGnct0AcqgyMGANL8iBsgEcqHRMlLEvGm9eU9OHsJ6XjMbXGVdOLC7vETAsyy75bI\n\t3xb4zeHdN9CjFSAKzal8ukGuLiEvMdM5Vb6DpwTByK6+ifxPFMdc8gpsUwJbCAO7P+S0sAH8XXr\n\tHvCNDklbS490QCJIqB90Hyhh1m3qiSVUnYytAOu62xt8tzYaXUTbbafXF4OeHOrMd7VWS8shNXE\n\tPeQbYJKCj/mOvhqtSKWi2zOMlZqxIOKt0shHqRtgJRKIeXm+V69GR+WlUdhNpjnHg99hl004pOt\n\trFO0rTbH4AzZPmVA01IKjLkxPAlsrPt3cq9bxRdDug3ysLI=","X-Received":["by 2002:a05:600c:c099:b0:43d:45a:8fca with SMTP id\n\t5b1f17b1804b1-4533cce92c8mr88920955e9.30.1750155766369; \n\tTue, 17 Jun 2025 03:22:46 -0700 (PDT)","by 2002:a05:600c:c099:b0:43d:45a:8fca with SMTP id\n\t5b1f17b1804b1-4533cce92c8mr88920705e9.30.1750155765889; \n\tTue, 17 Jun 2025 03:22:45 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHSpp6w+IFlj+7OtomELmVblBGltpiygV77LJxBLAUs9tPTRXulsvYTVGkNwIvL+wy2WQyUWA==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 12/35] libcamera: software_isp: Start the ISP thread in\n\tconfigure","In-Reply-To":"<20250611013245.133785-13-bryan.odonoghue@linaro.org> (Bryan\n\tO'Donoghue's message of \"Wed, 11 Jun 2025 02:32:22 +0100\")","References":"<20250611013245.133785-1-bryan.odonoghue@linaro.org>\n\t<20250611013245.133785-13-bryan.odonoghue@linaro.org>","Date":"Tue, 17 Jun 2025 12:22:44 +0200","Message-ID":"<85ldpqbrbf.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"Eu2c24krgT7P7DonHjCxXnUwlgQ7jWx1Inpb6UVKVss_1750155767","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]