[{"id":37197,"web_url":"https://patchwork.libcamera.org/comment/37197/","msgid":"<85wm331ptk.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-12-03T16:40:39","subject":"Re: [PATCH v6 08/24] libcamera: shaders: Add support for black\n\tlevel compensation","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n\n> Add the ability to apply a int blacklevel gain against the demosaiced data\n> prior to application of colour correction data.\n>\n> We calculate the index into the RGB black-level table so that we can apply\n> the black level when we sample the input prior to the demosiac operation.\n\ns/demosiac/demosaic/\n\n>\n> Don't do this when using the lookup tables as the black level is\n> already calculated in those.\n\nThe two paragraphs are confusing, they probably try to say that the\nblack level should be subtracted only in GPU ISP?\n\nWith the commit message improved:\n\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n>  src/libcamera/shaders/bayer_1x_packed.frag | 3 +++\n>  src/libcamera/shaders/bayer_unpacked.frag  | 3 +++\n>  2 files changed, 6 insertions(+)\n>\n> diff --git a/src/libcamera/shaders/bayer_1x_packed.frag b/src/libcamera/shaders/bayer_1x_packed.frag\n> index db8c2a0b3..7036fe278 100644\n> --- a/src/libcamera/shaders/bayer_1x_packed.frag\n> +++ b/src/libcamera/shaders/bayer_1x_packed.frag\n> @@ -66,6 +66,7 @@ uniform vec2 tex_bayer_first_red;\n>  \n>  uniform sampler2D tex_y;\n>  uniform mat3 ccm;\n> +uniform vec3 blacklevel;\n>\n>  void main(void)\n>  {\n> @@ -213,6 +214,8 @@ void main(void)\n>  \t\t\tvec3(patterns.y, C, patterns.x) :\n>  \t\t\tvec3(patterns.wz, C));\n>  \n> +\trgb = rgb - blacklevel;\n> +\n>  \t/*\n>  \t *   CCM is a 3x3 in the format\n>  \t *\n> diff --git a/src/libcamera/shaders/bayer_unpacked.frag b/src/libcamera/shaders/bayer_unpacked.frag\n> index 06d80f3dd..f0d8cd1e2 100644\n> --- a/src/libcamera/shaders/bayer_unpacked.frag\n> +++ b/src/libcamera/shaders/bayer_unpacked.frag\n> @@ -25,6 +25,7 @@ varying vec4            center;\n>  varying vec4            yCoord;\n>  varying vec4            xCoord;\n>  uniform mat3            ccm;\n> +uniform vec3            blacklevel;\n>  \n>  void main(void) {\n>      vec3 rgb;\n> @@ -108,6 +109,8 @@ void main(void) {\n>              vec3(PATTERN.w, C, PATTERN.z) :\n>              vec3(PATTERN.yx, C));\n>  \n> +    rgb = rgb - blacklevel;\n> +\n>      /*\n>       *   CCM is a 3x3 in the format\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 3509DC3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 Dec 2025 16:40:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8486660F74;\n\tWed,  3 Dec 2025 17:40:46 +0100 (CET)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 180C8609D8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 Dec 2025 17:40:44 +0100 (CET)","from mail-wr1-f70.google.com (mail-wr1-f70.google.com\n\t[209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-175-U1H4J9jNMLiwnXGIZZRJfw-1; Wed, 03 Dec 2025 11:40:42 -0500","by mail-wr1-f70.google.com with SMTP id\n\tffacd0b85a97d-42e29783a15so855187f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 03 Dec 2025 08:40:42 -0800 (PST)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-42e1c5d6133sm43436582f8f.16.2025.12.03.08.40.40\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 03 Dec 2025 08:40:40 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"hB0D0A0n\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1764780043;\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=d+4A13W5zAA3pld0oash2ZZiJJmVIf5iekDgBVootp0=;\n\tb=hB0D0A0n5Ut7jwHOZWYPq1iU8akJ0nZg2Qmp/Ag0skpH+Drxiz9wtqkS3Pqc+VYxwN/ozw\n\trq/oo2HMRyvQ12u5eFUMigT4qFcdST0FENp4ju8ZNKx3oadmGE4+0DruPB9A2uopZZz3t/\n\tYlyFmLxX9ILaEQ97/nI7kYKXaI+nP9Q=","X-MC-Unique":"U1H4J9jNMLiwnXGIZZRJfw-1","X-Mimecast-MFC-AGG-ID":"U1H4J9jNMLiwnXGIZZRJfw_1764780041","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1764780041; x=1765384841;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject\n\t:date:message-id:reply-to;\n\tbh=d+4A13W5zAA3pld0oash2ZZiJJmVIf5iekDgBVootp0=;\n\tb=Fxg+8NwYS11QUVGTT+MTV/Ca5HXb7yrduXUDIdnWwbwy8vvEVZVz+kUWhjfsSbwFAN\n\tjn6uRudPt797otgQNtNg4ny5FNfFX1lRdybHkda9t4kOrS6z1s1pAn12O2s7jD9Rj6In\n\t79cNqDAjyOLVDF7HstpsQjT3C4EuQFcVckb3mV6jBU8jEykga39Q65LAZt8IEIFBvRvi\n\tZXuHVUXFaY9f+V3sislTU3C/vcQvefafLkWVJWsC8WjYwv9hRUNbYwbAeTmJUy/lLAl0\n\tJCqKkkxhw7168cBs4JEHDpqpaDk1Rs0oK2SAXrHxJgs2O9vmhfjpIz5Mw6CtkyFhQXUl\n\tGuIw==","X-Gm-Message-State":"AOJu0YyTIpsav8HHJyJPM5pWHPGfhZRNqJQ6HxpPgdzUNLIAx2Hxqus2\n\tjJiswF0Aa0MVwfO3LC7WLFXiowOG0fGl0K30HFNbOAorjwxTiua4ltKCv2iGzyC0i+VcOv6lAPR\n\tPnTCeftOERUkJxbeq9PsJnzjsnxfi5QhcP5os8Ru7IqDmC2rcZXVfD8Ex1+NF6hwgY3xUcgsMY1\n\tk=","X-Gm-Gg":"ASbGnctZ9XAtwUAbUfQJ56hcobAY1jDpecIrW3r1Iz+cRRlnlCbl6bT5r6yS0Ff2WKe\n\t+23vUAfvEOHN0D1d6qbEm+k7rtxeMgyb4O2fZZCwHrcMJqGvntcpL6byhJ0T18IC1Eut54waeIK\n\ttoLyp4Plzlz91G3ycAgA3azYALvR0BAgmm6TPkoLmVqR4Fms+3onYaJ/B4B4KB1D4D/x1u97GtA\n\t3jf7kah16inrkgJEKp+OfeMjYO8BICcPyCrgbTr7EveCAv8JElyniNO0TbpZwNVmXIUoIMGPzIM\n\tQy3kQWGC2gWXlPWXUsJC0r7sUDCJXGY9NiqEYPaR67GEFW/cDnrOQwFJlOliU6ItdNRpvqwIFsh\n\tXL7uOgaCKLMOTgzr6YGGnDN7MsQQOayH1ZjHyByaimUVJVVMGETHsqaeTp8l2n2c=","X-Received":["by 2002:a5d:5f88:0:b0:42b:48bc:49b0 with SMTP id\n\tffacd0b85a97d-42f7887d64amr16763f8f.21.1764780041276; \n\tWed, 03 Dec 2025 08:40:41 -0800 (PST)","by 2002:a5d:5f88:0:b0:42b:48bc:49b0 with SMTP id\n\tffacd0b85a97d-42f7887d64amr16724f8f.21.1764780040845; \n\tWed, 03 Dec 2025 08:40:40 -0800 (PST)"],"X-Google-Smtp-Source":"AGHT+IEsol3PVBU5ZJsRPowpzZ5aMxL7Ir4qSxPd58y3q/LXx6JNhqOLwOPynDvSF3ZUp9Q7pY47JQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  pavel@ucw.cz","Subject":"Re: [PATCH v6 08/24] libcamera: shaders: Add support for black\n\tlevel compensation","In-Reply-To":"<20251202134544.662446-9-bryan.odonoghue@linaro.org> (Bryan\n\tO'Donoghue's message of \"Tue, 2 Dec 2025 13:45:28 +0000\")","References":"<20251202134544.662446-1-bryan.odonoghue@linaro.org>\n\t<20251202134544.662446-9-bryan.odonoghue@linaro.org>","Date":"Wed, 03 Dec 2025 17:40:39 +0100","Message-ID":"<85wm331ptk.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":"mpFcRszJVaNxWuYave79hU7VJlVjiWweH-ju8Lt7JEQ_1764780041","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>"}}]