[{"id":29725,"web_url":"https://patchwork.libcamera.org/comment/29725/","msgid":"<042af200-d6de-415c-b4c2-bfd3b4132aac@ideasonboard.com>","date":"2024-06-01T22:44:42","subject":"Re: [PATCH v2 6/6] pipeline: vimc: Don't hardcode scaling factor\n\twith recent kernels","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Laurent\n\nOn 29/05/2024 16:43, Laurent Pinchart wrote:\n> Starting in kernel v5.16, the vimc driver stopped hardcoding the scaler\n> factor. Use this to lift constraints on the camera configuration, and in\n> particular on the exotic output size alignment to a multiple of 6. As a\n> result, vimc-based cameras can more easily match common display\n> resolutions.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\nLooks good to me too: Daniel Scally <dan.scally@ideasonboard.com>\n\n> ---\n>   src/libcamera/pipeline/vimc/vimc.cpp | 47 +++++++++++++++++++---------\n>   1 file changed, 33 insertions(+), 14 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp\n> index c7650432ddcc..0ec9928eec23 100644\n> --- a/src/libcamera/pipeline/vimc/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc/vimc.cpp\n> @@ -114,6 +114,9 @@ static const std::map<PixelFormat, uint32_t> pixelformats{\n>   \t{ formats::BGR888, MEDIA_BUS_FMT_RGB888_1X24 },\n>   };\n>   \n> +static constexpr Size kMinSize{ 16, 16 };\n> +static constexpr Size kMaxSize{ 4096, 2160 };\n> +\n>   } /* namespace */\n>   \n>   VimcCameraConfiguration::VimcCameraConfiguration(VimcCameraData *data)\n> @@ -153,14 +156,20 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()\n>   \tconst Size size = cfg.size;\n>   \n>   \t/*\n> -\t * The scaler hardcodes a x3 scale-up ratio, and the sensor output size\n> -\t * is aligned to two pixels in both directions. The output width and\n> -\t * height thus have to be multiples of 6.\n> +\t * The sensor output size is aligned to two pixels in both directions.\n> +\t * Additionally, prior to v5.16, the scaler hardcodes a x3 scale-up\n> +\t * ratio, requiring the output width and height to be multiples of 6.\n>   \t */\n> -\tcfg.size.width = std::max(48U, std::min(4096U, cfg.size.width));\n> -\tcfg.size.height = std::max(48U, std::min(2160U, cfg.size.height));\n> -\tcfg.size.width -= cfg.size.width % 6;\n> -\tcfg.size.height -= cfg.size.height % 6;\n> +\tSize minSize{ kMinSize };\n> +\tunsigned int alignment = 2;\n> +\n> +\tif (data_->media_->version() < KERNEL_VERSION(5, 16, 0)) {\n> +\t\tminSize *= 3;\n> +\t\talignment *= 3;\n> +\t}\n> +\n> +\tcfg.size.expandTo(minSize).boundTo(kMaxSize)\n> +\t\t.alignDownTo(alignment, alignment);\n>   \n>   \tif (cfg.size != size) {\n>   \t\tLOG(VIMC, Debug)\n> @@ -216,10 +225,12 @@ PipelineHandlerVimc::generateConfiguration(Camera *camera,\n>   \t\t\t}\n>   \t\t}\n>   \n> -\t\t/* The scaler hardcodes a x3 scale-up ratio. */\n> -\t\tstd::vector<SizeRange> sizes{\n> -\t\t\tSizeRange{ { 48, 48 }, { 4096, 2160 } }\n> -\t\t};\n> +\t\t/* Prior to v5.16, the scaler hardcodes a x3 scale-up ratio. */\n> +\t\tSize minSize{ kMinSize };\n> +\t\tif (data->media_->version() < KERNEL_VERSION(5, 16, 0))\n> +\t\t\tminSize *= 3;\n> +\n> +\t\tstd::vector<SizeRange> sizes{ { minSize, kMaxSize } };\n>   \t\tformats[pixelformat.first] = sizes;\n>   \t}\n>   \n> @@ -242,10 +253,18 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config)\n>   \tStreamConfiguration &cfg = config->at(0);\n>   \tint ret;\n>   \n> -\t/* The scaler hardcodes a x3 scale-up ratio. */\n> +\t/*\n> +\t * Prior to v5.16, the scaler hardcodes a x3 scale-up ratio. For newer\n> +\t * kernels, use a sensor resolution of 1920x1080 and let the scaler\n> +\t * produce the requested stream size.\n> +\t */\n> +\tSize sensorSize{ 1920, 1080 };\n> +\tif (data->media_->version() < KERNEL_VERSION(5, 16, 0))\n> +\t\tsensorSize = { cfg.size.width / 3, cfg.size.height / 3 };\n> +\n>   \tV4L2SubdeviceFormat subformat = {};\n>   \tsubformat.code = MEDIA_BUS_FMT_SGRBG8_1X8;\n> -\tsubformat.size = { cfg.size.width / 3, cfg.size.height / 3 };\n> +\tsubformat.size = sensorSize;\n>   \n>   \tret = data->sensor_->setFormat(&subformat);\n>   \tif (ret)\n> @@ -293,7 +312,7 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config)\n>   \t * vimc driver will fail pipeline validation.\n>   \t */\n>   \tformat.fourcc = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8);\n> -\tformat.size = { cfg.size.width / 3, cfg.size.height / 3 };\n> +\tformat.size = sensorSize;\n>   \n>   \tret = data->raw_->setFormat(&format);\n>   \tif (ret)","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 046E3BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  1 Jun 2024 22:44:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 099C4634C9;\n\tSun,  2 Jun 2024 00:44:48 +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 3247561A46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  2 Jun 2024 00:44:46 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 33A3F675\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  2 Jun 2024 00:44:40 +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=\"AQW9OXFd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717281880;\n\tbh=1vGOhM9rZZf6Ycaxfd4JsmjAQCCcxZNs6wHp6s1LsB8=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=AQW9OXFdmu7fHWcmAYWxdBqDkPe2s+zCW1A/VOMDcaQv81rFzdkSTa32utxhbAEBi\n\tbM+adWgmrv6hTNKfwze2FszD2A400ihaqt1zJBktZWFUkefFe07djzuXbLt+Bjs2uz\n\tDzyWvVPI4gG0q8e8fjF9aR2aAuvGj098EIldnI0k=","Message-ID":"<042af200-d6de-415c-b4c2-bfd3b4132aac@ideasonboard.com>","Date":"Sat, 1 Jun 2024 23:44:42 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 6/6] pipeline: vimc: Don't hardcode scaling factor\n\twith recent kernels","To":"libcamera-devel@lists.libcamera.org","References":"<20240529154341.10426-1-laurent.pinchart@ideasonboard.com>\n\t<20240529154341.10426-7-laurent.pinchart@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<20240529154341.10426-7-laurent.pinchart@ideasonboard.com>","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":29729,"web_url":"https://patchwork.libcamera.org/comment/29729/","msgid":"<1bcb22d2-e686-4626-a563-ef3c46e5207d@ideasonboard.com>","date":"2024-06-01T23:17:56","subject":"Re: [PATCH v2 6/6] pipeline: vimc: Don't hardcode scaling factor\n\twith recent kernels","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"On 01/06/2024 23:44, Dan Scally wrote:\n> Hi Laurent\n>\n> On 29/05/2024 16:43, Laurent Pinchart wrote:\n>> Starting in kernel v5.16, the vimc driver stopped hardcoding the scaler\n>> factor. Use this to lift constraints on the camera configuration, and in\n>> particular on the exotic output size alignment to a multiple of 6. As a\n>> result, vimc-based cameras can more easily match common display\n>> resolutions.\n>>\n>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n>\n> Looks good to me too: Daniel Scally <dan.scally@ideasonboard.com>\n\n\nErr, supposed to be a \"Reviewed-by: \" in there somewhere...\n\n>\n>> ---\n>>   src/libcamera/pipeline/vimc/vimc.cpp | 47 +++++++++++++++++++---------\n>>   1 file changed, 33 insertions(+), 14 deletions(-)\n>>\n>> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp\n>> index c7650432ddcc..0ec9928eec23 100644\n>> --- a/src/libcamera/pipeline/vimc/vimc.cpp\n>> +++ b/src/libcamera/pipeline/vimc/vimc.cpp\n>> @@ -114,6 +114,9 @@ static const std::map<PixelFormat, uint32_t> pixelformats{\n>>       { formats::BGR888, MEDIA_BUS_FMT_RGB888_1X24 },\n>>   };\n>>   +static constexpr Size kMinSize{ 16, 16 };\n>> +static constexpr Size kMaxSize{ 4096, 2160 };\n>> +\n>>   } /* namespace */\n>> VimcCameraConfiguration::VimcCameraConfiguration(VimcCameraData *data)\n>> @@ -153,14 +156,20 @@ CameraConfiguration::Status VimcCameraConfiguration::validate()\n>>       const Size size = cfg.size;\n>>         /*\n>> -     * The scaler hardcodes a x3 scale-up ratio, and the sensor output size\n>> -     * is aligned to two pixels in both directions. The output width and\n>> -     * height thus have to be multiples of 6.\n>> +     * The sensor output size is aligned to two pixels in both directions.\n>> +     * Additionally, prior to v5.16, the scaler hardcodes a x3 scale-up\n>> +     * ratio, requiring the output width and height to be multiples of 6.\n>>        */\n>> -    cfg.size.width = std::max(48U, std::min(4096U, cfg.size.width));\n>> -    cfg.size.height = std::max(48U, std::min(2160U, cfg.size.height));\n>> -    cfg.size.width -= cfg.size.width % 6;\n>> -    cfg.size.height -= cfg.size.height % 6;\n>> +    Size minSize{ kMinSize };\n>> +    unsigned int alignment = 2;\n>> +\n>> +    if (data_->media_->version() < KERNEL_VERSION(5, 16, 0)) {\n>> +        minSize *= 3;\n>> +        alignment *= 3;\n>> +    }\n>> +\n>> +    cfg.size.expandTo(minSize).boundTo(kMaxSize)\n>> +        .alignDownTo(alignment, alignment);\n>>         if (cfg.size != size) {\n>>           LOG(VIMC, Debug)\n>> @@ -216,10 +225,12 @@ PipelineHandlerVimc::generateConfiguration(Camera *camera,\n>>               }\n>>           }\n>>   -        /* The scaler hardcodes a x3 scale-up ratio. */\n>> -        std::vector<SizeRange> sizes{\n>> -            SizeRange{ { 48, 48 }, { 4096, 2160 } }\n>> -        };\n>> +        /* Prior to v5.16, the scaler hardcodes a x3 scale-up ratio. */\n>> +        Size minSize{ kMinSize };\n>> +        if (data->media_->version() < KERNEL_VERSION(5, 16, 0))\n>> +            minSize *= 3;\n>> +\n>> +        std::vector<SizeRange> sizes{ { minSize, kMaxSize } };\n>>           formats[pixelformat.first] = sizes;\n>>       }\n>>   @@ -242,10 +253,18 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration \n>> *config)\n>>       StreamConfiguration &cfg = config->at(0);\n>>       int ret;\n>>   -    /* The scaler hardcodes a x3 scale-up ratio. */\n>> +    /*\n>> +     * Prior to v5.16, the scaler hardcodes a x3 scale-up ratio. For newer\n>> +     * kernels, use a sensor resolution of 1920x1080 and let the scaler\n>> +     * produce the requested stream size.\n>> +     */\n>> +    Size sensorSize{ 1920, 1080 };\n>> +    if (data->media_->version() < KERNEL_VERSION(5, 16, 0))\n>> +        sensorSize = { cfg.size.width / 3, cfg.size.height / 3 };\n>> +\n>>       V4L2SubdeviceFormat subformat = {};\n>>       subformat.code = MEDIA_BUS_FMT_SGRBG8_1X8;\n>> -    subformat.size = { cfg.size.width / 3, cfg.size.height / 3 };\n>> +    subformat.size = sensorSize;\n>>         ret = data->sensor_->setFormat(&subformat);\n>>       if (ret)\n>> @@ -293,7 +312,7 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config)\n>>        * vimc driver will fail pipeline validation.\n>>        */\n>>       format.fourcc = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8);\n>> -    format.size = { cfg.size.width / 3, cfg.size.height / 3 };\n>> +    format.size = sensorSize;\n>>         ret = data->raw_->setFormat(&format);\n>>       if (ret)","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 BBD1CBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  1 Jun 2024 23:18:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AE4A7634C9;\n\tSun,  2 Jun 2024 01:18: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 E637D61A46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  2 Jun 2024 01:17:59 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CF78A1BA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun,  2 Jun 2024 01:17:53 +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=\"FYHHK0pD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717283873;\n\tbh=QTP4CTN3kX+WclQXFpkL04eq0TV86+kHJ+qhUyiBQ5g=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=FYHHK0pDEweOBkVqS3YD+F3g/BfPnriplbZSz+Q0ksB2sOy/2fSrDyFhgS69RdhXR\n\tK8/jC83WXQLgrnooDeMmFh3/DyOK32VIGq/xTLz3pRFUGcDqAgKv8koEkVv4OLv+3H\n\tuY2ewSnEfgDRvluc4McNNO9E0bxaPGCP8H2qix48=","Message-ID":"<1bcb22d2-e686-4626-a563-ef3c46e5207d@ideasonboard.com>","Date":"Sun, 2 Jun 2024 00:17:56 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 6/6] pipeline: vimc: Don't hardcode scaling factor\n\twith recent kernels","To":"libcamera-devel@lists.libcamera.org","References":"<20240529154341.10426-1-laurent.pinchart@ideasonboard.com>\n\t<20240529154341.10426-7-laurent.pinchart@ideasonboard.com>\n\t<042af200-d6de-415c-b4c2-bfd3b4132aac@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<042af200-d6de-415c-b4c2-bfd3b4132aac@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>"}}]