[{"id":38478,"web_url":"https://patchwork.libcamera.org/comment/38478/","msgid":"<baf25b8b-8d1a-45d5-9353-10b2d6507679@ideasonboard.com>","date":"2026-04-01T09:58:57","subject":"Re: [PATCH v7 6/8] libcamera: mali-c55: Do not rely on bufferCount","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2026. 03. 31. 18:36 keltezéssel, Jacopo Mondi írta:\n> Do not rely on bufferCount for the allocation of parameters and stats\n> buffers but add instead kMaliC55BufferCount which is also used to limit\n> the number of in-flight requests supported by the pipeline handler.\n> \n> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> ---\n>   src/libcamera/pipeline/mali-c55/mali-c55.cpp | 14 +++++---------\n>   1 file changed, 5 insertions(+), 9 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> index 566fa0549675..ce1f0b65cd6e 100644\n> --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> @@ -48,6 +48,8 @@\n>   \n>   namespace {\n>   \n> +static constexpr unsigned int kMaliC55BufferCount = 16;\n\nIsn't 16 a bit too much? In any case, this change itself looks good to me.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n\n\n> +\n>   bool isFormatRaw(const libcamera::PixelFormat &pixFmt)\n>   {\n>   \treturn libcamera::PixelFormatInfo::info(pixFmt).colourEncoding ==\n> @@ -778,7 +780,7 @@ private:\n>   };\n>   \n>   PipelineHandlerMaliC55::PipelineHandlerMaliC55(CameraManager *manager)\n> -\t: PipelineHandler(manager), dsFitted_(true)\n> +\t: PipelineHandler(manager, kMaliC55BufferCount), dsFitted_(true)\n>   {\n>   }\n>   \n> @@ -1227,14 +1229,8 @@ int PipelineHandlerMaliC55::allocateBuffers(Camera *camera)\n>   {\n>   \tMaliC55CameraData *data = cameraData(camera);\n>   \tunsigned int ipaBufferId = 1;\n> -\tunsigned int bufferCount;\n>   \tint ret;\n>   \n> -\tbufferCount = std::max({\n> -\t\tdata->frStream_.configuration().bufferCount,\n> -\t\tdata->dsStream_.configuration().bufferCount,\n> -\t});\n> -\n>   \tauto pushBuffers = [&](const std::vector<std::unique_ptr<FrameBuffer>> &buffers,\n>   \t\t\t       std::queue<FrameBuffer *> &queue,\n>   \t\t\t       std::vector<IPABuffer> &ipaBuffers) {\n> @@ -1249,14 +1245,14 @@ int PipelineHandlerMaliC55::allocateBuffers(Camera *camera)\n>   \t\t}\n>   \t};\n>   \n> -\tret = stats_->allocateBuffers(bufferCount, &statsBuffers_);\n> +\tret = stats_->allocateBuffers(kMaliC55BufferCount, &statsBuffers_);\n>   \tif (ret < 0)\n>   \t\treturn ret;\n>   \n>   \tpushBuffers(statsBuffers_, availableStatsBuffers_,\n>   \t\t    data->ipaStatBuffers_);\n>   \n> -\tret = params_->allocateBuffers(bufferCount, &paramsBuffers_);\n> +\tret = params_->allocateBuffers(kMaliC55BufferCount, &paramsBuffers_);\n>   \tif (ret < 0)\n>   \t\treturn ret;\n>   \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 4C6B0BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Apr 2026 09:59:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4B0BC62D50;\n\tWed,  1 Apr 2026 11:59:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1103562781\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Apr 2026 11:59:00 +0200 (CEST)","from [192.168.33.36] (185.221.143.151.nat.pool.zt.hu\n\t[185.221.143.151])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 04F01F52;\n\tWed,  1 Apr 2026 11:57:36 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"eYZGW8pr\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775037457;\n\tbh=J1t9tBM0DXlp5RlbpiJg88COJawYYV+i8CMx4DE7DoA=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=eYZGW8pr5+TpNFo6xL5vZxxA/durRY168GoCEhNR5sawCumO4/i05rvcvYyi0bLnS\n\tm3ilGpO26/kE3hF+vAoQSYMAEC3jh1eRxFojbacu2TJf01ALARtNr14ogvWi1y8kKG\n\tFTikfb7otc4VKevPR92bwSg5liAD7oGcOSXJykEs=","Message-ID":"<baf25b8b-8d1a-45d5-9353-10b2d6507679@ideasonboard.com>","Date":"Wed, 1 Apr 2026 11:58:57 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v7 6/8] libcamera: mali-c55: Do not rely on bufferCount","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20260331-mali-cru-v7-0-4caedc898a0e@ideasonboard.com>\n\t<20260331-mali-cru-v7-6-4caedc898a0e@ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20260331-mali-cru-v7-6-4caedc898a0e@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","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>"}},{"id":38485,"web_url":"https://patchwork.libcamera.org/comment/38485/","msgid":"<ac0W_dir0xFOzjps@zed>","date":"2026-04-01T13:01:23","subject":"Re: [PATCH v7 6/8] libcamera: mali-c55: Do not rely on bufferCount","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Barnabás\n\nOn Wed, Apr 01, 2026 at 11:58:57AM +0200, Barnabás Pőcze wrote:\n> Hi\n>\n> 2026. 03. 31. 18:36 keltezéssel, Jacopo Mondi írta:\n> > Do not rely on bufferCount for the allocation of parameters and stats\n> > buffers but add instead kMaliC55BufferCount which is also used to limit\n> > the number of in-flight requests supported by the pipeline handler.\n> >\n> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n> > ---\n> >   src/libcamera/pipeline/mali-c55/mali-c55.cpp | 14 +++++---------\n> >   1 file changed, 5 insertions(+), 9 deletions(-)\n> >\n> > diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> > index 566fa0549675..ce1f0b65cd6e 100644\n> > --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> > +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp\n> > @@ -48,6 +48,8 @@\n> >   namespace {\n> > +static constexpr unsigned int kMaliC55BufferCount = 16;\n>\n> Isn't 16 a bit too much? In any case, this change itself looks good to me.\n\ngood question. RkISP1 has only 4 ... Should I make it 4 as well ?\n\n>\n> Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>\n>\n> > +\n> >   bool isFormatRaw(const libcamera::PixelFormat &pixFmt)\n> >   {\n> >   \treturn libcamera::PixelFormatInfo::info(pixFmt).colourEncoding ==\n> > @@ -778,7 +780,7 @@ private:\n> >   };\n> >   PipelineHandlerMaliC55::PipelineHandlerMaliC55(CameraManager *manager)\n> > -\t: PipelineHandler(manager), dsFitted_(true)\n> > +\t: PipelineHandler(manager, kMaliC55BufferCount), dsFitted_(true)\n> >   {\n> >   }\n> > @@ -1227,14 +1229,8 @@ int PipelineHandlerMaliC55::allocateBuffers(Camera *camera)\n> >   {\n> >   \tMaliC55CameraData *data = cameraData(camera);\n> >   \tunsigned int ipaBufferId = 1;\n> > -\tunsigned int bufferCount;\n> >   \tint ret;\n> > -\tbufferCount = std::max({\n> > -\t\tdata->frStream_.configuration().bufferCount,\n> > -\t\tdata->dsStream_.configuration().bufferCount,\n> > -\t});\n> > -\n> >   \tauto pushBuffers = [&](const std::vector<std::unique_ptr<FrameBuffer>> &buffers,\n> >   \t\t\t       std::queue<FrameBuffer *> &queue,\n> >   \t\t\t       std::vector<IPABuffer> &ipaBuffers) {\n> > @@ -1249,14 +1245,14 @@ int PipelineHandlerMaliC55::allocateBuffers(Camera *camera)\n> >   \t\t}\n> >   \t};\n> > -\tret = stats_->allocateBuffers(bufferCount, &statsBuffers_);\n> > +\tret = stats_->allocateBuffers(kMaliC55BufferCount, &statsBuffers_);\n> >   \tif (ret < 0)\n> >   \t\treturn ret;\n> >   \tpushBuffers(statsBuffers_, availableStatsBuffers_,\n> >   \t\t    data->ipaStatBuffers_);\n> > -\tret = params_->allocateBuffers(bufferCount, &paramsBuffers_);\n> > +\tret = params_->allocateBuffers(kMaliC55BufferCount, &paramsBuffers_);\n> >   \tif (ret < 0)\n> >   \t\treturn ret;\n> >\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 BCF06BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  1 Apr 2026 13:01:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6ADA962D58;\n\tWed,  1 Apr 2026 15:01:26 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7DF3262D54\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  1 Apr 2026 15:01:25 +0200 (CEST)","from ideasonboard.com (net-93-65-100-155.cust.vodafonedsl.it\n\t[93.65.100.155])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7A3CF156F;\n\tWed,  1 Apr 2026 15:00:02 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"WAhe4yNI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775048402;\n\tbh=V8mepuu24VdacJAIvuj9tBCUz20RX0SuAGN1hxm6ooc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=WAhe4yNIlFpDta4xZPoJQw9wqKmuE59PYCwqR357r1l35aabqIR0qB6Xt26p11yFN\n\t70kpq5i5OA9kPamN1UG+GqoDXxgJOhAVGoKMEpew+ne4l7QigaOUj8YIGJ0bmb/QQt\n\twXeGaVlUjwqrldbEijH3oeOFYXHxG+x/mZgypT8c=","Date":"Wed, 1 Apr 2026 15:01:23 +0200","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tDaniel Scally <dan.scally@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v7 6/8] libcamera: mali-c55: Do not rely on bufferCount","Message-ID":"<ac0W_dir0xFOzjps@zed>","References":"<20260331-mali-cru-v7-0-4caedc898a0e@ideasonboard.com>\n\t<20260331-mali-cru-v7-6-4caedc898a0e@ideasonboard.com>\n\t<baf25b8b-8d1a-45d5-9353-10b2d6507679@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<baf25b8b-8d1a-45d5-9353-10b2d6507679@ideasonboard.com>","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>"}}]