[{"id":38651,"web_url":"https://patchwork.libcamera.org/comment/38651/","msgid":"<20260424205600.GB3219146@killaraus.ideasonboard.com>","date":"2026-04-24T20:56:00","subject":"Re: [RFC PATCH v3 1/7] libcamera: software_isp: egl: Add\n\tgl_scale_param to createTexture2D()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Milan,\n\nThank you for the patch.\n\nOn Fri, Apr 24, 2026 at 10:02:47PM +0200, Milan Zamazal wrote:\n> From: Xander Pronk <xander.c.pronk@gmail.com>\n> \n> Add a gl_scale_param to createTexture2D() to allow overriding\n\ns/gl_scale_param/glFilterParam/\n\nAlthough I wonder if the parameter shouldn't be called just filter. The\n\"gl\" prefix is quite redundant as the function is part of a class called\n\"eGL\", and the \"param\" suffix seems redundant too. Up to you.\n\n> the currently hardcoded GL_NEAREST value.  This is needed for\n> grid-based lens shading interpolation, which is implemented in followup\n> patches.\n> \n> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> Co-developed-by: Rick ten Wolde <rick_libcamera@wolde.info>\n> Signed-off-by: Rick ten Wolde <rick_libcamera@wolde.info>\n> Signed-off-by: Xander Pronk <xander.c.pronk@gmail.com>\n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>  include/libcamera/internal/egl.h           | 3 ++-\n>  src/libcamera/egl.cpp                      | 8 +++++---\n>  src/libcamera/software_isp/debayer_egl.cpp | 4 +++-\n>  3 files changed, 10 insertions(+), 5 deletions(-)\n> \n> diff --git a/include/libcamera/internal/egl.h b/include/libcamera/internal/egl.h\n> index 0ad2320b1..2496679b2 100644\n> --- a/include/libcamera/internal/egl.h\n> +++ b/include/libcamera/internal/egl.h\n> @@ -103,7 +103,8 @@ public:\n>  \n>  \tint createInputDMABufTexture2D(eGLImage &eglImage, int fd);\n>  \tint createOutputDMABufTexture2D(eGLImage &eglImage, int fd);\n> -\tvoid createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data);\n> +\tvoid createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height,\n> +\t\t\t     const void *data, GLint glFilterParam);\n>  \n>  \tvoid pushEnv(std::vector<std::string> &shaderEnv, const char *str);\n>  \tvoid makeCurrent();\n> diff --git a/src/libcamera/egl.cpp b/src/libcamera/egl.cpp\n> index f65929470..9b50111a4 100644\n> --- a/src/libcamera/egl.cpp\n> +++ b/src/libcamera/egl.cpp\n> @@ -212,13 +212,15 @@ int eGL::createOutputDMABufTexture2D(eGLImage &eglImage, int fd)\n>   * \\param[in] width Texture width in pixels\n>   * \\param[in] height Texture height in pixels\n>   * \\param[in] data Pointer to pixel data, or nullptr for uninitialised texture\n> + * \\param[in] glFilterParam GL texture filter setting\n>   *\n>   * Creates a 2D texture from a CPU-accessible memory buffer. The texture\n>   * is configured with nearest filtering and clamp-to-edge wrapping. This\n\nThis is not true any more.\n\n>   * is useful for uploading static data like lookup tables or uniform color\n>   * matrices to the GPU.\n>   */\n> -void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data)\n> +void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height,\n> +\t\t\t  const void *data, GLint glFilterParam)\n>  {\n>  \tASSERT(tid_ == Thread::currentId());\n>  \n> @@ -229,8 +231,8 @@ void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint\n>  \tglTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);\n>  \n>  \t// Nearest filtering\n> -\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);\n> -\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);\n> +\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glFilterParam);\n> +\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glFilterParam);\n>  \n>  \t// Wrap to edge to avoid edge artifacts\n>  \tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);\n> diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp\n> index 2ad258bca..08e513eaf 100644\n> --- a/src/libcamera/software_isp/debayer_egl.cpp\n> +++ b/src/libcamera/software_isp/debayer_egl.cpp\n> @@ -502,7 +502,9 @@ int DebayerEGL::debayerGPU(MappedFrameBuffer &in, int out_fd, const DebayerParam\n>  \tegl_.makeCurrent();\n>  \n>  \t/* Create a standard texture input */\n> -\tegl_.createTexture2D(*eglImageBayerIn_, glFormat_, inputConfig_.stride / bytesPerPixel_, height_, in.planes()[0].data());\n> +\tegl_.createTexture2D(*eglImageBayerIn_, glFormat_,\n> +\t\t\t     inputConfig_.stride / bytesPerPixel_, height_,\n> +\t\t\t     in.planes()[0].data(), GL_NEAREST);\n>  \n>  \t/* Generate the output render framebuffer as render to texture */\n>  \tegl_.createOutputDMABufTexture2D(*eglImageBayerOut_, out_fd);","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 A61F0BDCB5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Apr 2026 20:56:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9BCBF62F83;\n\tFri, 24 Apr 2026 22:56:03 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8CC2A62E6A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Apr 2026 22:56:02 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1E194986;\n\tFri, 24 Apr 2026 22:54:22 +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=\"N+tX5iw6\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1777064062;\n\tbh=5r9yB4yOF5FXvFfoqI4uAqnNwlLYB4Y9HjVHZjRN+LU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=N+tX5iw6kAtIswbAG5TLu+4AK8z8aeWY/1L6iBnc1DvYoOEAUG6M4880jXLBVPjyl\n\tMfSmtgJ53m5xeJnLE0NFTh9iqYcz62TveHVkq+5iuaUdwc2ikqABig7k5D30NHZkB3\n\t9p4fel1CW9B+IG+OAPUDLs20YATtaBYPRPgnHD50=","Date":"Fri, 24 Apr 2026 23:56:00 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tXander Pronk <xander.c.pronk@gmail.com>,\n\tBryan O'Donoghue <bod.linux@nxsw.ie>,\n\tHans de Goede <johannes.goede@oss.qualcomm.com>,\n\tBryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tRick ten Wolde <rick_libcamera@wolde.info>","Subject":"Re: [RFC PATCH v3 1/7] libcamera: software_isp: egl: Add\n\tgl_scale_param to createTexture2D()","Message-ID":"<20260424205600.GB3219146@killaraus.ideasonboard.com>","References":"<20260424200255.356798-1-mzamazal@redhat.com>\n\t<20260424200255.356798-2-mzamazal@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260424200255.356798-2-mzamazal@redhat.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":38718,"web_url":"https://patchwork.libcamera.org/comment/38718/","msgid":"<854ikn58t0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2026-05-04T18:27:55","subject":"Re: [RFC PATCH v3 1/7] libcamera: software_isp: egl: Add\n\tgl_scale_param to createTexture2D()","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Laurent,\n\nthank you for review.\n\nLaurent Pinchart <laurent.pinchart@ideasonboard.com> writes:\n\n> Hi Milan,\n>\n> Thank you for the patch.\n>\n> On Fri, Apr 24, 2026 at 10:02:47PM +0200, Milan Zamazal wrote:\n>> From: Xander Pronk <xander.c.pronk@gmail.com>\n>> \n>> Add a gl_scale_param to createTexture2D() to allow overriding\n>\n> s/gl_scale_param/glFilterParam/\n>\n> Although I wonder if the parameter shouldn't be called just filter. The\n> \"gl\" prefix is quite redundant as the function is part of a class called\n> \"eGL\", and the \"param\" suffix seems redundant too. Up to you.\n\nI think `filter' is just fine.  Done in v4.\n\n>> the currently hardcoded GL_NEAREST value.  This is needed for\n>> grid-based lens shading interpolation, which is implemented in followup\n>> patches.\n>> \n>> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n>> Co-developed-by: Rick ten Wolde <rick_libcamera@wolde.info>\n>> Signed-off-by: Rick ten Wolde <rick_libcamera@wolde.info>\n>> Signed-off-by: Xander Pronk <xander.c.pronk@gmail.com>\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>  include/libcamera/internal/egl.h           | 3 ++-\n>>  src/libcamera/egl.cpp                      | 8 +++++---\n>>  src/libcamera/software_isp/debayer_egl.cpp | 4 +++-\n>>  3 files changed, 10 insertions(+), 5 deletions(-)\n>> \n>> diff --git a/include/libcamera/internal/egl.h b/include/libcamera/internal/egl.h\n>> index 0ad2320b1..2496679b2 100644\n>> --- a/include/libcamera/internal/egl.h\n>> +++ b/include/libcamera/internal/egl.h\n>> @@ -103,7 +103,8 @@ public:\n>>  \n>>  \tint createInputDMABufTexture2D(eGLImage &eglImage, int fd);\n>>  \tint createOutputDMABufTexture2D(eGLImage &eglImage, int fd);\n>> -\tvoid createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data);\n>> +\tvoid createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height,\n>> +\t\t\t     const void *data, GLint glFilterParam);\n>>  \n>>  \tvoid pushEnv(std::vector<std::string> &shaderEnv, const char *str);\n>>  \tvoid makeCurrent();\n>> diff --git a/src/libcamera/egl.cpp b/src/libcamera/egl.cpp\n>> index f65929470..9b50111a4 100644\n>> --- a/src/libcamera/egl.cpp\n>> +++ b/src/libcamera/egl.cpp\n>> @@ -212,13 +212,15 @@ int eGL::createOutputDMABufTexture2D(eGLImage &eglImage, int fd)\n>>   * \\param[in] width Texture width in pixels\n>>   * \\param[in] height Texture height in pixels\n>>   * \\param[in] data Pointer to pixel data, or nullptr for uninitialised texture\n>> + * \\param[in] glFilterParam GL texture filter setting\n>>   *\n>>   * Creates a 2D texture from a CPU-accessible memory buffer. The texture\n>>   * is configured with nearest filtering and clamp-to-edge wrapping. This\n>\n> This is not true any more.\n>\n>>   * is useful for uploading static data like lookup tables or uniform color\n>>   * matrices to the GPU.\n>>   */\n>> -void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height, void *data)\n>> +void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint32_t height,\n>> +\t\t\t  const void *data, GLint glFilterParam)\n>>  {\n>>  \tASSERT(tid_ == Thread::currentId());\n>>  \n>> @@ -229,8 +231,8 @@ void eGL::createTexture2D(eGLImage &eglImage, GLint format, uint32_t width, uint\n>>  \tglTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, GL_UNSIGNED_BYTE, data);\n>>  \n>>  \t// Nearest filtering\n>> -\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);\n>> -\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);\n>> +\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glFilterParam);\n>> +\tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, glFilterParam);\n>>  \n>>  \t// Wrap to edge to avoid edge artifacts\n>>  \tglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);\n>> diff --git a/src/libcamera/software_isp/debayer_egl.cpp b/src/libcamera/software_isp/debayer_egl.cpp\n>> index 2ad258bca..08e513eaf 100644\n>> --- a/src/libcamera/software_isp/debayer_egl.cpp\n>> +++ b/src/libcamera/software_isp/debayer_egl.cpp\n>> @@ -502,7 +502,9 @@ int DebayerEGL::debayerGPU(MappedFrameBuffer &in, int out_fd, const DebayerParam\n>>  \tegl_.makeCurrent();\n>>  \n>>  \t/* Create a standard texture input */\n>> -\tegl_.createTexture2D(*eglImageBayerIn_, glFormat_, inputConfig_.stride / bytesPerPixel_, height_, in.planes()[0].data());\n>> +\tegl_.createTexture2D(*eglImageBayerIn_, glFormat_,\n>> +\t\t\t     inputConfig_.stride / bytesPerPixel_, height_,\n>> +\t\t\t     in.planes()[0].data(), GL_NEAREST);\n>>  \n>>  \t/* Generate the output render framebuffer as render to texture */\n>>  \tegl_.createOutputDMABufTexture2D(*eglImageBayerOut_, out_fd);","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 0FDADBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  4 May 2026 18:28:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A2EA86303C;\n\tMon,  4 May 2026 20:28:04 +0200 (CEST)","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 D242D63025\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  4 May 2026 20:28:02 +0200 (CEST)","from mail-wr1-f71.google.com (mail-wr1-f71.google.com\n\t[209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-517-YgadlLeLPNGTczXXY8-0zA-1; Mon, 04 May 2026 14:27:59 -0400","by mail-wr1-f71.google.com with SMTP id\n\tffacd0b85a97d-43d721a4858so2424643f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 04 May 2026 11:27:59 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-4.net.vodafone.cz. [77.48.47.4])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-48a81ed6b89sm342987425e9.1.2026.05.04.11.27.56\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 04 May 2026 11:27:56 -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=\"APeOjOQ5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1777919281;\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=yRHdYXurJt3dAIznoWsWelUVgMr6B11kiBiSsa+3Ey0=;\n\tb=APeOjOQ57knwUhvV/B/wmEYSHkP6i/Ln6uVqkZCy64gOxdy2XjkLMZzEO8cFaF/izLbQ2p\n\tPb5oB1Bsf/2LThRDrDvYuYC4LmUwVJ95nuPYITOC06x2ccErVvyJsh7f83s8+b3oVRhorC\n\tovu5lvPQP+PDe0ZDVsdzROotqf8RH2o=","X-MC-Unique":"YgadlLeLPNGTczXXY8-0zA-1","X-Mimecast-MFC-AGG-ID":"YgadlLeLPNGTczXXY8-0zA_1777919278","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1777919278; x=1778524078;\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=yRHdYXurJt3dAIznoWsWelUVgMr6B11kiBiSsa+3Ey0=;\n\tb=qa2ybqd3uq7Ubp7M8RjnXF8c9KgUaL4mt8azSyMIcNp64ApiSDji1a/5oxSPeEQ8MV\n\tOsRhm6yPZOHWT2unriPCzbQ7tgV+WFJ1eM4j5gukRuE+mwpIeMtJPi3x7/MeE8dkCKUC\n\t80zUw+3aydKpUgxu5rzW0cwUscUxadpm4fyhtsKmzkeU5K/ZKR3V5r2ayHgkCY7KRq6u\n\tIA94+35/dJQ1KBsA712sC/rtACOZeufrbaGBriTQuk80hUvuzt4x9PHXKQ5EBce3mzDI\n\tweRzRU0s567gORDGXSD5mFaRoJ+t33ECdjTpG5Af3/PxU59ih7yTyTMNZscHrGdIg+QE\n\t/fgg==","X-Gm-Message-State":"AOJu0Yza3oZ765s+WhyTSDEERQYLh+J9J17B46DyVv9Q3qQJzzs33IB/\n\tx5rQXUQDORUmQB3ZqTEVXoXWpIqS6Pp8yLJeQ3SH06prBCV4wQr1IJmOhlUvhSLkIkTbqf5VQT0\n\tc8qgEW9aYbyNvjiWWudJ2qDgwg5OPCOiz524U8kJtZbJpOqloRMI9izheLmQnpwPgmFNFC50JoG\n\tQ=","X-Gm-Gg":"AeBDievUeu8RzwnU6HwCMdCaUytIHPvyT18QeHK6r98c31YGXg3PZOG9HepOTfXTAW6\n\tv+qXKViP8FUgQ1zx603OAgUX44UtswfQ6W4dXt8n4FGKO3xcxLdxp6JwPlvbeI5Iy4ZtFCAWi4W\n\tcOqBUP1B2DAEmqVaSfrO8exP2vtTpAgbuRi84K+XMpMyLCQ7YQZXjZAp0OKIxbyzOMCcarbLX1Y\n\t7Kcp2sErIyQHmalH5AP49gUfc1aH38fr2zvrwGBECsJWCySMpFzo6mCnM/b5xnm408D73pyQ8Xp\n\t6nQH/5GX0W9+2VdFVfuTzsaZu9y46rIpEOvTOXTJhare6Mtpeo+h2wWPOktUvVkqBuCSI5yrjHr\n\tpItB5hWgwoqHo/GNMHE5IGKLTO/IgbZodPru+58CSs9STntdgsbQk7rHbA9zl1emGJ2BImiDdTQ\n\tSnrg75qs7FAw==","X-Received":["by 2002:a05:600c:628c:b0:489:1ba8:5bf0 with SMTP id\n\t5b1f17b1804b1-48a988be16emr187716585e9.21.1777919278337; \n\tMon, 04 May 2026 11:27:58 -0700 (PDT)","by 2002:a05:600c:628c:b0:489:1ba8:5bf0 with SMTP id\n\t5b1f17b1804b1-48a988be16emr187716135e9.21.1777919277854; \n\tMon, 04 May 2026 11:27:57 -0700 (PDT)"],"From":"Milan Zamazal <mzamazal@redhat.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,  Xander Pronk\n\t<xander.c.pronk@gmail.com>, Bryan O'Donoghue <bod.linux@nxsw.ie>, Hans\n\tde Goede <johannes.goede@oss.qualcomm.com>,  Bryan O'Donoghue\n\t<bryan.odonoghue@linaro.org>, Rick ten Wolde <rick_libcamera@wolde.info>","Subject":"Re: [RFC PATCH v3 1/7] libcamera: software_isp: egl: Add\n\tgl_scale_param to createTexture2D()","In-Reply-To":"<20260424205600.GB3219146@killaraus.ideasonboard.com> (Laurent\n\tPinchart's message of \"Fri, 24 Apr 2026 23:56:00 +0300\")","References":"<20260424200255.356798-1-mzamazal@redhat.com>\n\t<20260424200255.356798-2-mzamazal@redhat.com>\n\t<20260424205600.GB3219146@killaraus.ideasonboard.com>","Date":"Mon, 04 May 2026 20:27:55 +0200","Message-ID":"<854ikn58t0.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":"K9Iyaee_KnAAvHE3UIFEAUcAaz7zTe2eQQGKR67LCSE_1777919278","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>"}}]