[{"id":34546,"web_url":"https://patchwork.libcamera.org/comment/34546/","msgid":"<85tt4dxm5s.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-06-18T12:35:27","subject":"Re: [PATCH 31/35] libcamera: shaders: Extend bayer shaders to\n\tsupport swapping R and B on output","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> We can easily facilitate swapping R and B on output. Pivot on an\n> environment define for this purpose.\n>\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\n(But see my related comment in\n\"libcamera: software_isp: debayer_egl: Add an eGL debayer class\".)\n\n> ---\n>  include/libcamera/internal/shaders/bayer_1x_packed.frag | 4 ++++\n>  include/libcamera/internal/shaders/bayer_8.frag         | 6 +++++-\n>  2 files changed, 9 insertions(+), 1 deletion(-)\n>\n> diff --git a/include/libcamera/internal/shaders/bayer_1x_packed.frag b/include/libcamera/internal/shaders/bayer_1x_packed.frag\n> index 90bd6457..c0632eb1 100644\n> --- a/include/libcamera/internal/shaders/bayer_1x_packed.frag\n> +++ b/include/libcamera/internal/shaders/bayer_1x_packed.frag\n> @@ -268,5 +268,9 @@ void main(void)\n>  \trgb.b = texture2D(blue_param, vec2(rgb.b, 0.5)).b;\n>  #endif\n>  \n> +#if defined (SWAP_BLUE)\n> +\tgl_FragColor = vec4(rgb.bgr, 1.0);\n> +#else\n>  \tgl_FragColor = vec4(rgb, 1.0);\n> +#endif\n>  }\n> diff --git a/include/libcamera/internal/shaders/bayer_8.frag b/include/libcamera/internal/shaders/bayer_8.frag\n> index 5955c2ea..74ce1509 100644\n> --- a/include/libcamera/internal/shaders/bayer_8.frag\n> +++ b/include/libcamera/internal/shaders/bayer_8.frag\n> @@ -163,5 +163,9 @@ void main(void) {\n>  \trgb.b = texture2D(red_param, vec2(rgb.b, 0.5)).b;\n>  #endif\n>  \n> -    gl_FragColor.rgb = rgb;\n> +#if defined (SWAP_BLUE)\n> +\tgl_FragColor = vec4(rgb.bgr, 1.0);\n> +#else\n> +\tgl_FragColor = vec4(rgb, 1.0);\n> +#endif\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 8C7F0BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 18 Jun 2025 12:35:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B9BD168DCE;\n\tWed, 18 Jun 2025 14:35:37 +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 6AF2768DC1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 18 Jun 2025 14:35:36 +0200 (CEST)","from mail-ej1-f70.google.com (mail-ej1-f70.google.com\n\t[209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-230-5oF4780ROqW2Fn-fsP9qhw-1; Wed, 18 Jun 2025 08:35:34 -0400","by mail-ej1-f70.google.com with SMTP id\n\ta640c23a62f3a-addfe17eb89so698171466b.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 18 Jun 2025 05:35:34 -0700 (PDT)","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\ta640c23a62f3a-ae02abf9f8csm44823666b.183.2025.06.18.05.35.28\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 18 Jun 2025 05:35:28 -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=\"dIbRC+de\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1750250135;\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=64TPZaMoaUyjPnJRK98X7un5fIDK5ZK2BZnHyKXMJVs=;\n\tb=dIbRC+deDOMwaMeldxxCffmnT9qSz0FwvLC0MjteIc1XrZ5ChXt3dtHnfZig+iJtsCnwAD\n\twXhmRJhtw+vbqBsxU7DEHIY/iH3XlS9A9CyMXFbN3Ao7QmaSVm6RQFj5Fd/4OpeDQ0OypX\n\teuQUfEEjh2akkz8RMTFOQiobXkQPDbc=","X-MC-Unique":"5oF4780ROqW2Fn-fsP9qhw-1","X-Mimecast-MFC-AGG-ID":"5oF4780ROqW2Fn-fsP9qhw_1750250133","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1750250132; x=1750854932;\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=64TPZaMoaUyjPnJRK98X7un5fIDK5ZK2BZnHyKXMJVs=;\n\tb=ZV7bfYr2i4w80Om+0tIpVDLDydfCXa9d4a/RFOHIbj66TeoAkIWViPduyP8CxI3LwT\n\tkm2mLGaAEj4g/pXQ3ObO8A58ZEVRn9GB33N35t1ASkC1clMfChRkes1JrA7e1NzXfNpU\n\tM+7oUWXYxjZyPuq+rnAfpDe2CgteSZ7AkQjjq0Ts9PZMciO9SLN062gJ/H3+UrddVupw\n\tNsJRBYOohWxTouvBE8GXt999mZrifi23R1XvTndY1njFXJx6E3Xnt1hB6VoUQDSiysts\n\tFQDRI6EFuVaPsRgX9zkHJQiMswJ5hpA3iG6RadlPab7VOz/NXdP7lxWVVsOy9nN7ryvo\n\tPXgQ==","X-Gm-Message-State":"AOJu0YwyRqYbWMVUsys5q6MXlpc1/QL1B++hzO737uaKuhWlSlY51drR\n\tgOwBVgstYFkL4hFd7/HT5zr8fc4Wirjcd6B41IuQsfI9cKB1zL3boTEmkSZGIxy4Vm0a1DYQaSA\n\tWkC+nN0lXQHi7FFNkfmmar8pgCCIPMyms3eZ+/wayMDsyMZ+EfEhYk/cUyYbDtVyufynt7rxxoD\n\tRT72D34Jmc4QXA67HTo5kCxmtwCey9EqDBmvQwuvaq9yOnm8Z5ukvT0WMgnUo=","X-Gm-Gg":"ASbGncuq9YcNN72yb6+lSMflo0r2o+QgqWR1h/fYDJf2OvHnvYIfF62rSdY97s1FATS\n\tGf8YiHOXqIRzhbGdf8ZiDKcGFdATF5HyyTbrI4yx89/U/ZelKYtoSZWtCqGMGldhMsr1wNyfCAO\n\tMmT1TtMW2/3XjKP5ZdEw/XaP+ZL9/fsqi7RVUbQMZkxeU/2tOQQh1q7oLdL1hnC7/X6rjEUiFUY\n\typbWZdr/6eRmNUViX/0tRP0t65UiSO0gz0/JxXoGvaQHJDtA8rUA6AzdbxODyZ0kQVaG9cWD7UK\n\tYeguEEJmKoQkyGg8uCUVhSawQxPCY/l8ectuHTPfeiVwfuaTCWYMFlO4BhKGUXSX7VMuL11NPSc\n\t=","X-Received":["by 2002:a17:907:3cd6:b0:ad5:2e5b:d16b with SMTP id\n\ta640c23a62f3a-adfad398e6fmr1612321366b.27.1750250132166; \n\tWed, 18 Jun 2025 05:35:32 -0700 (PDT)","by 2002:a17:907:3cd6:b0:ad5:2e5b:d16b with SMTP id\n\ta640c23a62f3a-adfad398e6fmr1612318566b.27.1750250131616; \n\tWed, 18 Jun 2025 05:35:31 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHF0AnRC2md1V9FxGVuKjrlZ6rYWMQDJ29oN3pwINIYJYuPHAw7DnNW+haVoh3a6md3IQWgVg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 31/35] libcamera: shaders: Extend bayer shaders to\n\tsupport swapping R and B on output","In-Reply-To":"<20250611013245.133785-32-bryan.odonoghue@linaro.org> (Bryan\n\tO'Donoghue's message of \"Wed, 11 Jun 2025 02:32:41 +0100\")","References":"<20250611013245.133785-1-bryan.odonoghue@linaro.org>\n\t<20250611013245.133785-32-bryan.odonoghue@linaro.org>","Date":"Wed, 18 Jun 2025 14:35:27 +0200","Message-ID":"<85tt4dxm5s.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":"pXP0o7U_V3vImuX9BAA87RGJd_Q-RGSV-SJP8VXVvCA_1750250133","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>"}}]