[{"id":36958,"web_url":"https://patchwork.libcamera.org/comment/36958/","msgid":"<20251121031045.GR10711@pendragon.ideasonboard.com>","date":"2025-11-21T03:10:45","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n> allow for reuse of these inside of the SoftISP.\n\nThe commit message doesn't match the patch.\n\nWhy did you pick include/ ? Shaders are not headers.\n\n> A comment has been added to src/apps/qcom/meson.build to force a\n> rebuild.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n>  .../libcamera/internal/shaders}/RGB.frag      |  0\n>  .../internal/shaders}/YUV_2_planes.frag       |  0\n>  .../internal/shaders}/YUV_3_planes.frag       |  0\n>  .../internal/shaders}/YUV_packed.frag         |  0\n>  .../internal/shaders}/bayer_1x_packed.frag    |  0\n>  .../libcamera/internal/shaders}/bayer_8.frag  |  0\n>  .../libcamera/internal/shaders}/bayer_8.vert  |  0\n>  .../libcamera/internal/shaders}/identity.vert |  0\n>  src/apps/qcam/assets/shader/shaders.qrc       | 16 ++---\n>  src/apps/qcam/meson.build                     |  3 +\n>  src/apps/qcam/viewfinder_gl.cpp               | 70 +++++++++----------\n>  11 files changed, 46 insertions(+), 43 deletions(-)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/RGB.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_2_planes.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_3_planes.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/YUV_packed.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_1x_packed.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.frag (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/bayer_8.vert (100%)\n>  rename {src/apps/qcam/assets/shader => include/libcamera/internal/shaders}/identity.vert (100%)\n> \n> diff --git a/src/apps/qcam/assets/shader/RGB.frag b/include/libcamera/internal/shaders/RGB.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/RGB.frag\n> rename to include/libcamera/internal/shaders/RGB.frag\n> diff --git a/src/apps/qcam/assets/shader/YUV_2_planes.frag b/include/libcamera/internal/shaders/YUV_2_planes.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/YUV_2_planes.frag\n> rename to include/libcamera/internal/shaders/YUV_2_planes.frag\n> diff --git a/src/apps/qcam/assets/shader/YUV_3_planes.frag b/include/libcamera/internal/shaders/YUV_3_planes.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/YUV_3_planes.frag\n> rename to include/libcamera/internal/shaders/YUV_3_planes.frag\n> diff --git a/src/apps/qcam/assets/shader/YUV_packed.frag b/include/libcamera/internal/shaders/YUV_packed.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/YUV_packed.frag\n> rename to include/libcamera/internal/shaders/YUV_packed.frag\n> diff --git a/src/apps/qcam/assets/shader/bayer_1x_packed.frag b/include/libcamera/internal/shaders/bayer_1x_packed.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/bayer_1x_packed.frag\n> rename to include/libcamera/internal/shaders/bayer_1x_packed.frag\n> diff --git a/src/apps/qcam/assets/shader/bayer_8.frag b/include/libcamera/internal/shaders/bayer_8.frag\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/bayer_8.frag\n> rename to include/libcamera/internal/shaders/bayer_8.frag\n> diff --git a/src/apps/qcam/assets/shader/bayer_8.vert b/include/libcamera/internal/shaders/bayer_8.vert\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/bayer_8.vert\n> rename to include/libcamera/internal/shaders/bayer_8.vert\n> diff --git a/src/apps/qcam/assets/shader/identity.vert b/include/libcamera/internal/shaders/identity.vert\n> similarity index 100%\n> rename from src/apps/qcam/assets/shader/identity.vert\n> rename to include/libcamera/internal/shaders/identity.vert\n> diff --git a/src/apps/qcam/assets/shader/shaders.qrc b/src/apps/qcam/assets/shader/shaders.qrc\n> index 96c709f92..04f9d7061 100644\n> --- a/src/apps/qcam/assets/shader/shaders.qrc\n> +++ b/src/apps/qcam/assets/shader/shaders.qrc\n> @@ -1,13 +1,13 @@\n>  <!-- SPDX-License-Identifier: LGPL-2.1-or-later -->\n>  <!DOCTYPE RCC><RCC version=\"1.0\">\n>  <qresource>\n> -\t<file>RGB.frag</file>\n> -\t<file>YUV_2_planes.frag</file>\n> -\t<file>YUV_3_planes.frag</file>\n> -\t<file>YUV_packed.frag</file>\n> -\t<file>bayer_1x_packed.frag</file>\n> -\t<file>bayer_8.frag</file>\n> -\t<file>bayer_8.vert</file>\n> -\t<file>identity.vert</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/RGB.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/YUV_2_planes.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/YUV_3_planes.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/YUV_packed.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/bayer_1x_packed.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/bayer_8.frag</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/bayer_8.vert</file>\n> +\t<file>../../../../../include/libcamera/internal/shaders/identity.vert</file>\n>  </qresource>\n>  </RCC>\n> diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build\n> index 9ca047b0f..33600095f 100644\n> --- a/src/apps/qcam/meson.build\n> +++ b/src/apps/qcam/meson.build\n> @@ -64,3 +64,6 @@ qcam  = executable('qcam', qcam_sources, resources,\n>                         qt6_dep,\n>                     ],\n>                     cpp_args : qt6_cpp_args)\n> +\n> +# Note: qt6.preprocess does not automatically rebuild when the\n> +# qcam_resources dependency chain is updated.\n> diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp\n> index f31956ff0..70f600650 100644\n> --- a/src/apps/qcam/viewfinder_gl.cpp\n> +++ b/src/apps/qcam/viewfinder_gl.cpp\n> @@ -141,7 +141,7 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)\n>  \ttextureMinMagFilters_ = GL_LINEAR;\n>  \n>  \t/* Use identity.vert as the default vertex shader. */\n> -\tvertexShaderFile_ = \":identity.vert\";\n> +\tvertexShaderFile_ = \":include/libcamera/internal/shaders/identity.vert\";\n>  \n>  \tfragmentShaderDefines_.clear();\n>  \n> @@ -150,170 +150,170 @@ bool ViewFinderGL::selectFormat(const libcamera::PixelFormat &format)\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 2;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_UV\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::NV21:\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 2;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_VU\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::NV16:\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 1;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_UV\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::NV61:\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 1;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_VU\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::NV24:\n>  \t\thorzSubSample_ = 1;\n>  \t\tvertSubSample_ = 1;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_UV\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::NV42:\n>  \t\thorzSubSample_ = 1;\n>  \t\tvertSubSample_ = 1;\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_VU\");\n> -\t\tfragmentShaderFile_ = \":YUV_2_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_2_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::YUV420:\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 2;\n> -\t\tfragmentShaderFile_ = \":YUV_3_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_3_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::YVU420:\n>  \t\thorzSubSample_ = 2;\n>  \t\tvertSubSample_ = 2;\n> -\t\tfragmentShaderFile_ = \":YUV_3_planes.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_3_planes.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::UYVY:\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_UYVY\");\n> -\t\tfragmentShaderFile_ = \":YUV_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_packed.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::VYUY:\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_VYUY\");\n> -\t\tfragmentShaderFile_ = \":YUV_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_packed.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::YUYV:\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_YUYV\");\n> -\t\tfragmentShaderFile_ = \":YUV_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_packed.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::YVYU:\n>  \t\tfragmentShaderDefines_.append(\"#define YUV_PATTERN_YVYU\");\n> -\t\tfragmentShaderFile_ = \":YUV_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/YUV_packed.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::ABGR8888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN rgb\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::ARGB8888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN bgr\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::BGRA8888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN gba\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::RGBA8888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN abg\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::BGR888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN rgb\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::RGB888:\n>  \t\tfragmentShaderDefines_.append(\"#define RGB_PATTERN bgr\");\n> -\t\tfragmentShaderFile_ = \":RGB.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/RGB.frag\";\n>  \t\tbreak;\n>  \tcase libcamera::formats::SBGGR8:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(1.0);\n> -\t\tvertexShaderFile_ = \":bayer_8.vert\";\n> -\t\tfragmentShaderFile_ = \":bayer_8.frag\";\n> +\t\tvertexShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.vert\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGBRG8:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(1.0);\n> -\t\tvertexShaderFile_ = \":bayer_8.vert\";\n> -\t\tfragmentShaderFile_ = \":bayer_8.frag\";\n> +\t\tvertexShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.vert\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGRBG8:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(0.0);\n> -\t\tvertexShaderFile_ = \":bayer_8.vert\";\n> -\t\tfragmentShaderFile_ = \":bayer_8.frag\";\n> +\t\tvertexShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.vert\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SRGGB8:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(0.0);\n> -\t\tvertexShaderFile_ = \":bayer_8.vert\";\n> -\t\tfragmentShaderFile_ = \":bayer_8.frag\";\n> +\t\tvertexShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.vert\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_8.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SBGGR10_CSI2P:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(1.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW10P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGBRG10_CSI2P:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(1.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW10P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGRBG10_CSI2P:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(0.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW10P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SRGGB10_CSI2P:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(0.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW10P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SBGGR12_CSI2P:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(1.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW12P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGBRG12_CSI2P:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(1.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW12P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SGRBG12_CSI2P:\n>  \t\tfirstRed_.setX(1.0);\n>  \t\tfirstRed_.setY(0.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW12P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tcase libcamera::formats::SRGGB12_CSI2P:\n>  \t\tfirstRed_.setX(0.0);\n>  \t\tfirstRed_.setY(0.0);\n>  \t\tfragmentShaderDefines_.append(\"#define RAW12P\");\n> -\t\tfragmentShaderFile_ = \":bayer_1x_packed.frag\";\n> +\t\tfragmentShaderFile_ = \":include/libcamera/internal/shaders/bayer_1x_packed.frag\";\n>  \t\ttextureMinMagFilters_ = GL_NEAREST;\n>  \t\tbreak;\n>  \tdefault:","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 988BEC3336\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 Nov 2025 03:11:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9CAF760A8B;\n\tFri, 21 Nov 2025 04:11:14 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 98124606A0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 04:11:12 +0100 (CET)","from pendragon.ideasonboard.com (fs276ed015.tkyc509.ap.nuro.jp\n\t[39.110.208.21])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 34959EAE;\n\tFri, 21 Nov 2025 04:09:04 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"OiVlJ9qW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1763694546;\n\tbh=euTha7oyh68KLUKjuONYZNSv/CVn81KTJbuZQ48wZJY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=OiVlJ9qWcJfgcHWl9P6gSU1YiddKYhpXLAZoAUtHDaOUMSEcWVZ1DERWTmLH/OAJc\n\t1WXy3caonXQ7d4w8T9ZgP0ae1W4aMVcZkFleIsdEfYsx/3Sfn6Fbg6xVoPjohAXVMq\n\tr5pR7jvAwSs+lbvxHSjyS8WnaxWs3WTwTovfNEIk=","Date":"Fri, 21 Nov 2025 12:10:45 +0900","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","Message-ID":"<20251121031045.GR10711@pendragon.ideasonboard.com>","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20251120232019.3590-2-bryan.odonoghue@linaro.org>","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":36975,"web_url":"https://patchwork.libcamera.org/comment/36975/","msgid":"<1e1ba669-3968-4d51-88bb-8ada5947a322@linaro.org>","date":"2025-11-21T11:29:59","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 21/11/2025 03:10, Laurent Pinchart wrote:\n> On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n>> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n>> allow for reuse of these inside of the SoftISP.\n> The commit message doesn't match the patch.\n> \n> Why did you pick include/ ? Shaders are not headers.\n\nIts been like this for a while I'm not sure there was/is a good reason \nto have these in an include dir.\n\nDo you have some other preference ?\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 D2FFDC3333\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 Nov 2025 11:30:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6D2D160A8B;\n\tFri, 21 Nov 2025 12:30:03 +0100 (CET)","from mail-wr1-x432.google.com (mail-wr1-x432.google.com\n\t[IPv6:2a00:1450:4864:20::432])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9C05660805\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 12:30:01 +0100 (CET)","by mail-wr1-x432.google.com with SMTP id\n\tffacd0b85a97d-429c48e05aeso1286801f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 03:30:01 -0800 (PST)","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-42cb7fd9b45sm10353020f8f.43.2025.11.21.03.30.00\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tFri, 21 Nov 2025 03:30:00 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"ZexAd5wE\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1763724601; x=1764329401;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=SAgXOy2ak1Ha1/9AlkJMAIv05x84VDnGUfuTL9s8NIE=;\n\tb=ZexAd5wEObN7x2iwZmHxpcSqhAMsCgPJ7BHNAXMm5ld7qRbJ9PkbNDpCslkhYxewGn\n\tJORaui5CxRIUIlkI7CQ1pMiyHuJGQy9tKtDa3mRck9cX0eKPJ1a+Fg0MOyENrboc/rVh\n\tT/W5CdFXA3eQri90xBOk2MWTuy6CMq9oZLzC9IPbsuVtJha8mehDKjlSL+oigypezO8E\n\tw8wdkcEZtMageLwjpAgf45gk6fLRGIE4F8rfz4JDqQ9G/SfaBpKCbncrp8kP/ny5gEJd\n\tr9YZOb6+7uWHvu7CrrDes5o/bpt17u6PxSwkMWRrlYigTfSuGD16TQUpZMIPskBxuCe5\n\tRfNg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1763724601; x=1764329401;\n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=SAgXOy2ak1Ha1/9AlkJMAIv05x84VDnGUfuTL9s8NIE=;\n\tb=rhbA1di8Q6fjqNnKRv/RV+vh2ZFOgTI4y1bnuUNubepebhtKoZzvZTIhuQOjmgDIiB\n\tyO/7nlgzvc1KD4QmceAruVf7njaoWRtZLF3WIWm86f4yNPad5vPXLw88YeiaB3G1TiOK\n\tgYlPsKA2lhXs0gp1oBRnFGEKg0SgPVLZuFVGNa7QXMd25Zt7oryqKfaDW92ukhGa4Klx\n\tMF42x5cIxIG3XMOJ29AzJOnEhHpfrvJae+4nPbClInt/MRmvSXsxgcSbHqjIqeSHuh4I\n\tKPl15xaUEJayI5ybOuDSRDxdV8OBftACseQn6xsj82FfJRIcENTLAeE/jvM2W7KQ5xOr\n\tA5zw==","X-Gm-Message-State":"AOJu0YyWrsAUJ0r+f78F6tqwqMT8SOV3AIYoHmRTF61Y6FYtoa4fG0bX\n\t80oXRbrfM/6vFb5INcO+0xIZpG5zpdz5Eypw8E0r0kr4NBncsJ/p3GFpHY8OqfngTKM=","X-Gm-Gg":"ASbGncvZJh9faEyOY1XiUci6bldf3gqKcEDs5UjDoVYcpGdBE02aujh3Q4v5q3EMjZF\n\tYfPCU1+PPUmq66R+T6sF6g42BcG5MMIDgHpQNdJQK2jyJ7n7Pp7jau3uGuK1pbt08o3gKTI3yBw\n\tmN/JSR9FueqPt0cq7xfXwUMilgPfK9pY0j9Bj+0wqM/A9YJ2HHso5JMgYa5mS+8oX3Q77jhh3t8\n\tt2Jlj5hjdePVRrDG9QiEbqihs8k9/RdN8nQi+sF1QU9Y9NGjpzbv+e0VUeEqVMGWN/Ij7quIxEp\n\tRUiwa92d/GWJjzCCQ2KpYk6cSsLejS7tvHw8VoMKtengYi/NBuc7j8qEJ5BjPNTP5JbV9tqRicq\n\tpD60N+BR9ykWzcv8MBmqiI6tRJBPHIMsV2z2PNN4AUMSM8WSI8F2pZIdKsvs9l/XzDLCFE8edB+\n\tdShMlafejWYTIAjxxFe9ewPCmfcSEwBQF3FEhK3147LH6E/lxQnGVj","X-Google-Smtp-Source":"AGHT+IFgcWoB+4jys8v5mjolOBdNI5S6c/ReYdVsEiCg0VV8h+tjH3RIdTTAoaWz4Orua2CJw/w1DA==","X-Received":"by 2002:a05:6000:288b:b0:426:fb27:974a with SMTP id\n\tffacd0b85a97d-42cba7c4cc9mr6675459f8f.27.1763724601061; \n\tFri, 21 Nov 2025 03:30:01 -0800 (PST)","Message-ID":"<1e1ba669-3968-4d51-88bb-8ada5947a322@linaro.org>","Date":"Fri, 21 Nov 2025 11:29:59 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>\n\t<20251121031045.GR10711@pendragon.ideasonboard.com>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Content-Language":"en-US","In-Reply-To":"<20251121031045.GR10711@pendragon.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":36976,"web_url":"https://patchwork.libcamera.org/comment/36976/","msgid":"<f80c1555-1088-4c5b-92f8-4678ecd0d6e3@ideasonboard.com>","date":"2025-11-21T11:33:07","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 11. 21. 12:29 keltezéssel, Bryan O'Donoghue írta:\n> On 21/11/2025 03:10, Laurent Pinchart wrote:\n>> On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n>>> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n>>> allow for reuse of these inside of the SoftISP.\n>> The commit message doesn't match the patch.\n>>\n>> Why did you pick include/ ? Shaders are not headers.\n> \n> Its been like this for a while I'm not sure there was/is a good reason to have these in an include dir.\n> \n> Do you have some other preference ?\n\nThe title of the commit says \"src/libcamera/assets/shader\".\nTo me that looks like a better location at first glance.\n\n\n> \n> ---\n> bod","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 6CAF5C3333\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 Nov 2025 11:33:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A5ADC609D8;\n\tFri, 21 Nov 2025 12:33:13 +0100 (CET)","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 7EE2160805\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 12:33:11 +0100 (CET)","from [192.168.33.39] (185.221.143.100.nat.pool.zt.hu\n\t[185.221.143.100])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 973EE66B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 12:31:05 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JdPVpvgt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1763724665;\n\tbh=O1+Z/ezqIbjgG1RNBLFKjR3qU5ayhZaKTbUoQcFIYHY=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=JdPVpvgtvx8jsyQO1UWppJh6CxyeTKlX7B44ocvkB3uEco9Nz+JavpqjIG1dRs+65\n\t3vhBGBnXEMYLGTriirHQGpuILkk2KGlywwjGDcIBw2v54lZ3AM6hAZrjHmeFrfM9OI\n\tK8L7xl3fJ6bskRayW/DqGSzJmpZIFsaCppefhl2w=","Message-ID":"<f80c1555-1088-4c5b-92f8-4678ecd0d6e3@ideasonboard.com>","Date":"Fri, 21 Nov 2025 12:33:07 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","To":"libcamera-devel@lists.libcamera.org","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>\n\t<20251121031045.GR10711@pendragon.ideasonboard.com>\n\t<1e1ba669-3968-4d51-88bb-8ada5947a322@linaro.org>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<1e1ba669-3968-4d51-88bb-8ada5947a322@linaro.org>","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":37076,"web_url":"https://patchwork.libcamera.org/comment/37076/","msgid":"<5f51e06f-d065-4d30-9e9f-2a8257d9f7ff@linaro.org>","date":"2025-11-26T12:38:25","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 21/11/2025 03:10, Laurent Pinchart wrote:\n> On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n>> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n>> allow for reuse of these inside of the SoftISP.\n> \n> The commit message doesn't match the patch.\n> \n> Why did you pick include/ ? Shaders are not headers.\n> \nFor the record.\n\nI moved these go src/libcamera/shaders and it appears to work.\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 4C2EEC0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Nov 2025 12:38:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DF7BA60A9E;\n\tWed, 26 Nov 2025 13:38:32 +0100 (CET)","from mail-wm1-x329.google.com (mail-wm1-x329.google.com\n\t[IPv6:2a00:1450:4864:20::329])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9E53F606D5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Nov 2025 13:38:31 +0100 (CET)","by mail-wm1-x329.google.com with SMTP id\n\t5b1f17b1804b1-477b198f4bcso43902385e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Nov 2025 04:38:31 -0800 (PST)","from [192.168.0.27] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4790addeeaasm42213345e9.7.2025.11.26.04.38.27\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 26 Nov 2025 04:38:28 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"ffxxYbSs\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1764160711; x=1764765511;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=yZXO6DgmtgUdchLloOnqDElrWhHrS2w4MQ8qAIW3MXI=;\n\tb=ffxxYbSsCBaip6mnPt6SlLjuWUDP17El9QP/2o0CA5TSKxq056UFOAss+17dlfLuc1\n\tymUdElGT3UF65dGff+fvS+DsFU7mFMRBeFWdH1pJeqq/lcZdiab1K9kzVbd9npc7OK3T\n\tXMYyZPRk8c5d5/dsheLy2b4IP5queoaPH7bwFbUPYP7/sUSla+WyEAbWXG25aP2rM9d9\n\t5kWWdwHKsuZJ/QJsRlXaIdhRDkwJrTvDW4duApU9UfPR9bKtJQKD/wwGyb6vXf4Tsrf1\n\tkqgTQSzWpfLOiNeDmJjcZNjt7FmlAl6D3hgjjRZ3npTw7ZhBqj/V2n3I7AfBKLvdvNj4\n\tMO7Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1764160711; x=1764765511;\n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=yZXO6DgmtgUdchLloOnqDElrWhHrS2w4MQ8qAIW3MXI=;\n\tb=EyzpssMGvdEgtEgIeHe57p7SEOVui07Pw1QkpCeCGc3DdHuUZVKm/7f81bif6J9enp\n\tQjlS/2MYfOrZzLN4mD2jMRPPzTtSHDyc50L6hmDBWlg+954gs3V9NbPjGKyTI2CLKqIc\n\ti+mtyT0lLBM+ZmoyI18xIqAZnGKg+cbo71FKjNUMaUPLKtz/moIA97wRrFRuZXB9p42S\n\tu+ym2clKfN0aRBhZwvRid0HZe6Ymaed958olQESL4/5iIy/uF0MwTBjLmmqw3ejkRQOs\n\tq7dFMDA+iB/epk+0idGZsnO+FV1duAd+Y9MAYxqv+ZmCzVxXn7/BpKUqlZ1NmtDBPf1M\n\t92Ig==","X-Gm-Message-State":"AOJu0Yw7ELpIsC4SBrbpnm/Jzdnptu/nhb2hcc0bZ3c8ossc6YSnB9ib\n\t5lvZIYcw3q3UEeSO3zHM3ae1GbnQ/SzXQ2bR6oiAhvQRj6Zepo39q2yH1+TSkyQzjBQ=","X-Gm-Gg":"ASbGncu8wgBSY23C4iLYNkPNGqzyRHipOgAvCNllTQaj4CFCgMBM1/nJ97bT4oD/zNs\n\tIe1Kdz916mR0nIHb7fp4S2aRuNz7ptSe2gy/RtA2qkYCVna97emYT8/Tb4UFwA8g0GDSWTLYlRr\n\tEPVwGw/8G9qay+0YlDASVva3XQWgsKeitlYO8WyfNJIfI7iye0PHLbVkHhHr4DPMroi0m0hjV2o\n\tqilRdIRS4QXn4SmM1PJgH6TAcKtmsrZqlxgJYckpBTXLUPOpvpVxYTr1imqdkWJMzKr62vsjRPF\n\tLngNfXNA/5lXbJ6VO3hzJYULvojldEEPYTBOYWLBqAw+sqn2jyYfqG86+MvWJ79a6HgH/J8xPeJ\n\tLfFdNx/dhYRsaIOTluyAL0W1Uw3PDczrT1XElvl3kw6M5RTB7CY8/WctRjjkRhd6ArwfubgWWg3\n\tgQMmi7ljPzmsnd86NxFenz7FVlr0rJZsEXYDayF0tH0OMb7IJ35OAc","X-Google-Smtp-Source":"AGHT+IEmlikYL9cmm4QEpyxiRv9QwW1Xook2PEr2P+CaltxjPSEg6+ZkEn0nHkE3EB2ZsZLzUJKzPQ==","X-Received":"by 2002:a05:600c:4588:b0:477:a21c:2066 with SMTP id\n\t5b1f17b1804b1-477c0165d5bmr172137455e9.5.1764160711112; \n\tWed, 26 Nov 2025 04:38:31 -0800 (PST)","Message-ID":"<5f51e06f-d065-4d30-9e9f-2a8257d9f7ff@linaro.org>","Date":"Wed, 26 Nov 2025 12:38:25 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>\n\t<20251121031045.GR10711@pendragon.ideasonboard.com>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Content-Language":"en-US","In-Reply-To":"<20251121031045.GR10711@pendragon.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":37086,"web_url":"https://patchwork.libcamera.org/comment/37086/","msgid":"<20251127033714.GA4301@pendragon.ideasonboard.com>","date":"2025-11-27T03:37:14","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Nov 21, 2025 at 12:33:07PM +0100, Barnabás Pőcze wrote:\n> 2025. 11. 21. 12:29 keltezéssel, Bryan O'Donoghue írta:\n> > On 21/11/2025 03:10, Laurent Pinchart wrote:\n> >> On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n> >>> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n> >>> allow for reuse of these inside of the SoftISP.\n> >> The commit message doesn't match the patch.\n> >>\n> >> Why did you pick include/ ? Shaders are not headers.\n> > \n> > Its been like this for a while I'm not sure there was/is a good reason to have these in an include dir.\n> > \n> > Do you have some other preference ?\n> \n> The title of the commit says \"src/libcamera/assets/shader\".\n> To me that looks like a better location at first glance.\n\nOr src/libcamera/softisp/shaders/ as it's part of the soft ISP ?","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 A95B2C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Nov 2025 03:37:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9D8A460A9E;\n\tThu, 27 Nov 2025 04:37:41 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B4FED609D8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Nov 2025 04:37:39 +0100 (CET)","from pendragon.ideasonboard.com\n\t(202-81-12-167.fp-d.ii-okinawa.ne.jp [202.81.12.167])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 881556DC;\n\tThu, 27 Nov 2025 04:35:28 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"P7pl8kMU\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764214529;\n\tbh=k+lDTh2m8OFa+j1WAjHjYI0bc1JYN+dSf3mXuhJwMSs=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=P7pl8kMUnVUloPILTNzrDjRhTmmqDExTicSXAykl2bEbkEDZXBHvS8F3GokEpcn1T\n\tS9kEOdds6sDDczgT7IPKya8edCi2pJ489ua/Qlpg9iAPntJ/euf7rIncigS6/IgcAy\n\tyY7sBxaOq8k/NMDPet1DnODud7uv4p1SF5oCJMvo=","Date":"Thu, 27 Nov 2025 12:37:14 +0900","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","Message-ID":"<20251127033714.GA4301@pendragon.ideasonboard.com>","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>\n\t<20251121031045.GR10711@pendragon.ideasonboard.com>\n\t<1e1ba669-3968-4d51-88bb-8ada5947a322@linaro.org>\n\t<f80c1555-1088-4c5b-92f8-4678ecd0d6e3@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<f80c1555-1088-4c5b-92f8-4678ecd0d6e3@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>"}},{"id":37087,"web_url":"https://patchwork.libcamera.org/comment/37087/","msgid":"<20251127033819.GB4301@pendragon.ideasonboard.com>","date":"2025-11-27T03:38:19","subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Nov 26, 2025 at 12:38:25PM +0000, Bryan O'Donoghue wrote:\n> On 21/11/2025 03:10, Laurent Pinchart wrote:\n> > On Thu, Nov 20, 2025 at 11:19:58PM +0000, Bryan O'Donoghue wrote:\n> >> Moving the vertex and fragment shaders to src/libcamera/assets/shader to\n> >> allow for reuse of these inside of the SoftISP.\n> > \n> > The commit message doesn't match the patch.\n> > \n> > Why did you pick include/ ? Shaders are not headers.\n> > \n> For the record.\n> \n> I moved these go src/libcamera/shaders and it appears to work.\n\nSounds good. It will be easy to change the location within\nsrc/libcamera/ if needed.","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 E1609C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Nov 2025 03:38:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 94FB860A85;\n\tThu, 27 Nov 2025 04:38:43 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56622609D8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Nov 2025 04:38:42 +0100 (CET)","from pendragon.ideasonboard.com\n\t(202-81-12-167.fp-d.ii-okinawa.ne.jp [202.81.12.167])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 82EF36DC;\n\tThu, 27 Nov 2025 04:36:31 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Hq0qzoS4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764214592;\n\tbh=pGtoIr1SftYV4CE83iFiFVMyxn9gM8vaUTT4ji7ubeg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Hq0qzoS4rpsbDggYR1qWewIVLgPJFjQc4oVmxk0WbDOHRyDZ7APaSjveBirKKmLjW\n\tB/CgIXWlB8g1lohf0xXdwpV+chxGfNT/6p7Rypa8F1DQSMo71fXd+f5QxA9Qu6ZdSd\n\tdmq5Rc4L91+lhrm4/EGqaHeIHjiDO1ZSNRa6KBOE=","Date":"Thu, 27 Nov 2025 12:38:19 +0900","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org, pavel@ucw.cz,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","Subject":"Re: [PATCH 01/22] libcamera: shaders: Move GL shader programs to\n\tsrc/libcamera/assets/shader","Message-ID":"<20251127033819.GB4301@pendragon.ideasonboard.com>","References":"<20251120232019.3590-1-bryan.odonoghue@linaro.org>\n\t<20251120232019.3590-2-bryan.odonoghue@linaro.org>\n\t<20251121031045.GR10711@pendragon.ideasonboard.com>\n\t<5f51e06f-d065-4d30-9e9f-2a8257d9f7ff@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<5f51e06f-d065-4d30-9e9f-2a8257d9f7ff@linaro.org>","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>"}}]