[{"id":35549,"web_url":"https://patchwork.libcamera.org/comment/35549/","msgid":"<9bb735db-5d74-4c72-917a-67ea2f6a6ba6@linaro.org>","date":"2025-08-24T01:06:56","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 24/08/2025 01:48, Bryan O'Donoghue wrote:\n> v2:\n> \n> This version 2 is an incomplete update with-respect-to previous comment\n> feedback, which ordinarily I would not publish however, given OSSEU is\n> starting on Monday and we have talk about this topic, in addition to some\n> pretty good progress in the interregnum I thought a v2 would be\n> appropriate.\n> \n> - V2 drops use of GBM surface in favour of generating a framebuffer from\n>    the dma-buf handle, called render-to-texture.\n> \n>    The conversion from GBM surface + memcpy() including the associated cache\n>    invalidate has a dramatic effect on GPUISP performance.\n> \n>    Some rough stats for a Qualcomm sm8250 \"kona\" device with an imx517\n>    sensor @ 4048 x 3040 ABRG8888 - debug builds\n> \n>      CPUISP + CCM:\n>        2 FPS CPU usage > 100% single core pulls about 9 watts\n> \n>      GPUISP v1 + CCM:\n>        14 FPS - power not measured\n> \n>      GPUISP v2 + CCM:\n>        30 FPS - sensor linerate - CPU usage ~ 70 % pulling 8 Watts.\n> \n>    Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n> \n>      CPUISP 4 FPS\n>      GPUISP v2 - 2 or 3 FPS\n>      GPUISP v2 - 15 FPS == sensor linerate\n> \n>    In other words for these boards we can hit linerate with GPUISP + 3A +\n>    CCM.\nI should also mention\n\n- 24 bit output for the debayer phase is not planned.\n   The reason is gl_FragColor expect to output vec4.\n\n   Basically GPUs architecturally want to write a \"word\" of 32 bits\n   for each bus transaction.\n\n- I'd still propose for a merge that GPUISP becomes the default\n   Because the performance uplift with CCM is night and day.\n\n   It would be interesting to try out sensors with much higher resolution\n   At the moment on a debug build my test system has no problem doing\n   getting linerate.\n\n- I don't propose any large functional changes to this series.\n   Basically taking and implementing review feedback.\n\n- The only caveat to that is perhaps doing a denoise pass.\n   We've already started to discuss exposing different controls\n   CPU v GPU based on what the different implementations declare\n   themselves capable of.\n\n   Actually one very hacky way to implement a simple noise filter\n   would be go resample the output texture applying GL_NEAREST filters.\n\n   The filters pertain to the sampler2D in the GLSL shader not to the\n   output so you'd have to upload your texture and have a shader that\n   did a 1:1 read/write. The read phase would apply the filter and\n   would then do a type of hardware denoising.\n\n   It would be pretty hacky though...\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 E6237BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 24 Aug 2025 01:07:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 95ACA692E2;\n\tSun, 24 Aug 2025 03:07:01 +0200 (CEST)","from mail-wm1-x334.google.com (mail-wm1-x334.google.com\n\t[IPv6:2a00:1450:4864:20::334])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A13C6613BE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 24 Aug 2025 03:06:59 +0200 (CEST)","by mail-wm1-x334.google.com with SMTP id\n\t5b1f17b1804b1-45b49f7aaf5so19384755e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 23 Aug 2025 18:06:59 -0700 (PDT)","from [192.168.0.19] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-3c711211cd3sm5455828f8f.40.2025.08.23.18.06.57\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tSat, 23 Aug 2025 18:06:57 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"iai1aM6E\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1755997619; x=1756602419;\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=M0RHXSaze3IyZ8qkCcSx/008FBxJUupGTJcVwb2Hpfc=;\n\tb=iai1aM6EW9HtfRa4FG5jYgEIMgXq1tK3d85DiuAB+y6vMV3VQNXV7KcBmCwrzkBURi\n\tfJ6VJG7HGaYXUZ1nc71xLhMqnAehmybxbTA4ZGS0wQOUjcIXqPT+DIkXpNJWAJDI5xIs\n\t9gDeU7jehHKtDTHlszv87W89svt3O6BdDCHUmm9GaBhCdEzx31K430gKuC/r3TRLBbDy\n\tF7V5V0FR9cTfAZ3/Nl1bLP5SFwPCs2ZixB9Bj81pnBeY9EFq7LlbmIq13Sv4YYF+S2VM\n\toLwLgn/Q2SYoF6YXKvVXA3uhQ8tDJeeaC/wh2wjL90YADIaG5aAU7Nr/bZsTJy2n7NkQ\n\t3cOw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1755997619; x=1756602419;\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-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=M0RHXSaze3IyZ8qkCcSx/008FBxJUupGTJcVwb2Hpfc=;\n\tb=Ne21XZrlB66tk/y5911hxQi41yDW2XdTbAuOF8vdCXrCaWDk/Kl/28HXMEL5R6UOfi\n\te38i4f79iyqixM3fGBscuL2qdCaZLk0b02wUFZGgMLu0GtgyMSszZAiwlUKNt2Yo9CGW\n\tg3kNRYPSwFY++EgKl8/HR5yxndoIljDdrXsilu7zAcfpJYulgRlReHqU29KpkwIhsj5v\n\tAwgnRDJpMre76ZOw6ovctkaHfL02QNgnF/el8fhT26hqqvTjnRzHfjtavFRbxeGXGnZE\n\t4nyIGeINbFWyVKLEOk41kgJjBckJE8wEme5L5///z5rU03BNAUCCV7YetuhS4/01+tiC\n\ttK7g==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCV2gs+N6v1dUinPVYMAaGQbIualTnKIMMJDZIb7qzTyOeQhUnDvEQo1NUtI/v6NiWyM5Ii+D1uucMJBxNonhcs=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YzfHpWh4zYtUu/3iUQazv1ND0qRFOCOMv04GCEC8seUXyjsd3kA\n\tL+KFLzbqDb8ukMtbcwCAjgSGAh3f3PT/f0/Ofl2dv36vPOvLJ8iMWWr5j/OdFM7zxwM=","X-Gm-Gg":"ASbGncveJ1kXuyM+1canqml5L7k6AseCd+aig4tsTttAhEQH83TH9KKAd4ScXw9R63X\n\tE3uVouWTVkPsuXNZFZUzp9XYlY9FQUdgYFb/6Suww36t6TBT1wz9Ydy7aIBPjRV96ah/QdHNlAu\n\tOwEID3ATjFifTZ30iy3OTN+d8TqIvwvnr+1ROEAgO6oCzGPxsnJchtuKt2Q07DOreYbq6IP4qIo\n\tR+KwY2Q9A/CqbZdXsB/acmOxwtsnel9C8xJ5XKLoG9rDAwjibAvH4FVKZXJ5NM0EMOotewHq3MZ\n\tfARTlQcqg9384CueV/KzpoIWVCrErnst/X2rEiYFXocWMnSaSQx5NYw9ksv4qSr963IITuKixGJ\n\tcvCDVCtvFTeuP7p/n+cVshnIjTkN58U0Gfu2mDNa0WB7eHYga15SSUmM7CpodmfTW3WiH8Ngngo\n\tmjs3RGgi1PVSflQIlBlrs=","X-Google-Smtp-Source":"AGHT+IHxhFh3QU1WWN/S6rHm7a/jawDB7j7bhiAHVDpVehGIvEqRwOcl4BTH7vpYBSz69ZAPCmS9Xg==","X-Received":"by 2002:a05:6000:238a:b0:3b8:d79a:6a60 with SMTP id\n\tffacd0b85a97d-3c5daa27b08mr5962962f8f.3.1755997619008; \n\tSat, 23 Aug 2025 18:06:59 -0700 (PDT)","Message-ID":"<9bb735db-5d74-4c72-917a-67ea2f6a6ba6@linaro.org>","Date":"Sun, 24 Aug 2025 02:06:56 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"Hans de Goede <hdegoede@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<Lxd__A7gzZOnrZAXe2U1qZ7izjuwugWg4xlWALh-kGsHEcmwYcY7vvoyXZb8JfaOB_I6UNGk2X3poKhKOfGhSA==@protonmail.internalid>\n\t<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Content-Language":"en-US","In-Reply-To":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","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":35552,"web_url":"https://patchwork.libcamera.org/comment/35552/","msgid":"<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-08-25T15:34:43","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","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> v2:\n>\n> This version 2 is an incomplete update with-respect-to previous comment\n> feedback, which ordinarily I would not publish however, given OSSEU is\n> starting on Monday and we have talk about this topic, in addition to some\n> pretty good progress in the interregnum I thought a v2 would be\n> appropriate.\n>\n> - V2 drops use of GBM surface in favour of generating a framebuffer from\n>   the dma-buf handle, called render-to-texture.\n>\n>   The conversion from GBM surface + memcpy() including the associated cache\n>   invalidate has a dramatic effect on GPUISP performance.\n>\n>   Some rough stats for a Qualcomm sm8250 \"kona\" device with an imx517\n>   sensor @ 4048 x 3040 ABRG8888 - debug builds\n>\n>     CPUISP + CCM:\n>       2 FPS CPU usage > 100% single core pulls about 9 watts\n>\n>     GPUISP v1 + CCM:\n>       14 FPS - power not measured\n>\n>     GPUISP v2 + CCM:\n>       30 FPS - sensor linerate - CPU usage ~ 70 % pulling 8 Watts.\n>\n>   Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n\nThe resolution is 3280x2464.  I get full speed of 15 fps with GPU, 5-7.5\nfps with CPU (with CCM).\n\nApparently with GPU only, I get occasional horizontal artefacts on my\ndisplay when there is movement in the image -- is this expected?\n\n>     CPUISP 4 FPS\n>     GPUISP v2 - 2 or 3 FPS\n>     GPUISP v2 - 15 FPS == sensor linerate\n>\n>   In other words for these boards we can hit linerate with GPUISP + 3A +\n>   CCM.\n>\n> - Drop GBM surface rendering\n> - Drop swapbuffers\n> - Use eglCreateImageKHR to directly render into the output dma-buf buffer\n>   eglCreateImageKHR lets you specify the FOURCC of the texture which means\n>   we can create the texture in the uncompressed target output pixel format\n>   we want.\n> - Fix stride calculation to 256 bytes\n>   Laurent and Maxime explained to me about GPU stride alignments being\n>   tribal wisdom and that 256 bytes is a good cross-platform value.\n>   This helped to get the render-to-texture command right.\n> - A synchronous blocking wait is used to ensure GPU operations have\n>   completed. Laurent wants this to be made async.\n>   At the moment its not clear to me the eglWaitSyncKHR is really required\n>   and in any case doesn't seem to have any performance impact.\n>   But this part is still TBD - I've included the sync wait for simplicity\n>   and safety.\n> - A Debayer::stop() method has been introduced to ensure we call\n>   eglDestroySyncKHR when the eGL context is valid, as opposed to in the\n>   callchain of destructors triggering eGL::~eGL();\n> - stats move constructor call chain dropped - Branabas\n> - Incorporates Milan's area-of-interest constraint for Bayer stats\n>   i.e. squashes his v3 update into debayer_egl.cpp directly\n> - Moves ALIGN_TO into a common area to facilitate its reuse in\n>   egl.cpp\n> - Rebases on 0.5.2\n>\n> - There are a number of known checks failing on the CI loop right now\n>\n> Link to v1: https://lists.libcamera.org/pipermail/libcamera-devel/2025-June/050692.html\n>\n> v1:\n> This series introduces a GLES 2.0 GPU ISP to libcamera.\n>\n> We have had extensive discussions, meetings and collaborative discussions\n> about this topic over the last year or so.\n>\n> As an overview we want to start to move as much processing of software_isp\n> into the GPU as possible. This is especially advantageous when we are\n> talking about processing a framebuffer's worth of pixels as quickly as\n> possible.\n>\n> The decision to use GLES 2.0 instead of say Vulcan stems from a desire to\n> support as much in the way of older hardware as possible and the fact we\n> already have upstream GLES 2.0 fragment shaders to do debayer.\n>\n> Generally the approach is\n>\n> - Move the fragment shaders out of qcam and into a common location\n> - Update the existing SoftwareISP Debayer/DebayerCPU pair to facilitate\n>   addition of a new class DebayerEGL.\n> - Introduce that class\n> - Then do progressive change of the shaders and DebayerEGL class to make\n>   the modifications as transparent as possible in the git log.\n> - Reuse as much of the SoftIPA data-structures and logic as possible.\n> - Consume the data from SoftIPA in the Debayer Shaders so that CPUISP and\n>   GPUISP give similar - hopefully the same results but with GPUISP going\n>   faster.\n>\n> In order to get untiled and uncompressed pixel data out of the GPU\n> framebuffer we need to tell the GPU how to store the data it is writing to\n> that framebuffer. GPUs can store their framebuffer data in tiled or even\n> compressed formats which is why the naive approach of running your fragment\n> shader and then using glReadPixels(GL_RGBA); will be horrendously slow as\n> glReadPixels must convert from the internal GPU format to the requested\n> output format - an operation that for me takes ~ 10 milliseconds per frame.\n>\n> Instead we get the GPU to store its data as ARGB8888 swap buffers and\n> memcpy() from the swapped buffer to our output frame. Right now this series\n> supports 32 bit output formats only.\n>\n> The memcpy() also entails flushing the cache of the target buffer as per\n> the terms of the dma-buf software contract.\n>\n> This leads us onto the main outstanding TODOs\n>\n> - 24 bit GBM buffer support leading\n> - 24 bit output framebuffer support\n> - Surfaceless GBM and eGL context with no swapbuffer\n> - Render to texture\n>   If we render directly to a buffer provided to the GPU the output\n>   buffer we will not need to memcpy() to the output buffer\n>   nor will we need to invalidate the output buffer cache.\n> - eglCreateImageKHR for the texture upload.\n>\n> This list is of the colour \"make it go faster\" not \"make it work\" which is\n> why we are moving to start to submit a v1 for discussion in the full\n> realisation it will have to go through several cycles of review giving us\n> the opportunity to fix:\n>\n> - Doxygen is missing for new classes and methods\n> - Some of the pipelines don't complete in gitlab\n> - 24 bit output seems doable before merge\n> - Render to texture perhaps even too\n>\n> For me on my Qualcomm hardware GPUISP works very well I get 30fps in qcam\n> with about 75% CPU usage versus > 100% - cam goes faster which to me\n> implies a good bit of time is being consumed in qcam itself.\n>\n> The series starts out with fixes and updates from Hans and finishes it out\n> with shader modifications from Milan both of whom along with Kieran,\n> Laurent and Maxime I'd like to thank for being some helpful and patient.\n>\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n> Bryan O'Donoghue (28):\n>       libcamera: MappedFrameBuffer: Add MappedFrameBuffer::getPlaneFD()\n>       libcamera: software_isp: Move useful items from DebayerCpu to Debayer base class\n>       libcamera: software_isp: Move Bayer params init from DebayerCpu to Debayer\n>       libcamera: software_isp: Move param select code to Debayer base class\n>       libcamera: software_isp: Move DMA Sync code to Debayer base class\n>       libcamera: software_isp: Move isStandardBayerOrder to base class\n>       libcamera: software_isp: Start the ISP thread in configure\n>       libcamera: software_isp: Move configure to worker thread\n>       libcamera: software_isp: debayer: Make the debayer_ object of type class Debayer not DebayerCpu\n>       libcamera: software_isp: debayer: Extend DebayerParams struct to hold a copy of per-frame CCM values\n>       libcamera: software_isp: debayer: Introduce a stop() callback to the debayer object\n>       libcamera: shaders: Move GL shader programs to src/libcamera/assets/shader\n>       utils: gen-shader-headers: Add a utility to generate headers from shaders\n>       meson: Automatically generate glsl_shaders.h from specified shader programs\n>       libcamera: software_isp: ccm: Populate CCM table to Debayer params structure\n>       libcamera: software_isp: lut: Make gain corrected CCM in lut.cpp available in debayer params\n>       libcamera: software_isp: gbm: Add in a GBM helper class for GPU surface access\n>       libcamera: utils: Move ALIGN_TO from camera_metadata.c to utils.h\n>       libcamera: software_isp: egl: Introduce an eGL base helper class\n>       libcamera: software_isp: debayer_egl: Add an eGL debayer class\n>       libcamera: software_isp: debayer_egl: Make DebayerEGL an environment option\n>       libcamera: shaders: Use highp not mediump for float precision\n>       libcamera: shaders: Extend debayer shaders to apply RGB gain values on output\n>       libcamera: software_isp: Switch on uncalibrated CCM to validate eGLDebayer\n>       libcamera: software_isp: Make isStandardBayerOrder static\n>       libcamera: software_isp: debayer_cpu: Make getInputConfig and getOutputConfig static\n>       libcamera: shaders: Extend bayer shaders to support swapping R and B on output\n>       libcamera: software_isp: Add a gpuisp todo list\n>\n> Hans de Goede (5):\n>       libcamera: swstats_cpu: Update statsProcessFn() / processLine0() documentation\n>       libcamera: swstats_cpu: Drop patternSize_ documentation\n>       libcamera: swstats_cpu: Move header to libcamera/internal/software_isp\n>       libcamera: software_isp: Move benchmark code to its own class\n>       libcamera: swstats_cpu: Add processFrame() method\n>\n> Milan Zamazal (4):\n>       libcamera: shaders: Fix neighbouring positions in 8-bit debayering\n>       libcamera: software_isp: GPU support for unpacked 10/12-bit formats\n>       libcamera: shaders: Rename bayer_8 to bayer_unpacked\n>       libcamera: software_isp: Reduce statistics image area\n>\n>  include/libcamera/base/utils.h                     |   3 +\n>  include/libcamera/internal/egl.h                   | 133 +++++\n>  include/libcamera/internal/gbm.h                   |  39 ++\n>  include/libcamera/internal/mapped_framebuffer.h    |   4 +\n>  include/libcamera/internal/meson.build             |  11 +\n>  .../libcamera/internal/shaders}/RGB.frag           |   2 +-\n>  .../libcamera/internal/shaders}/YUV_2_planes.frag  |   2 +-\n>  .../libcamera/internal/shaders}/YUV_3_planes.frag  |   2 +-\n>  .../libcamera/internal/shaders}/YUV_packed.frag    |   2 +-\n>  .../internal/shaders}/bayer_1x_packed.frag         |  62 +-\n>  .../libcamera/internal/shaders/bayer_unpacked.frag |  78 ++-\n>  .../libcamera/internal/shaders/bayer_unpacked.vert |   8 +-\n>  .../libcamera/internal/shaders}/identity.vert      |   0\n>  include/libcamera/internal/shaders/meson.build     |  10 +\n>  .../libcamera/internal/software_isp/benchmark.h    |  36 ++\n>  .../internal/software_isp/debayer_params.h         |   7 +\n>  .../libcamera/internal/software_isp/meson.build    |   2 +\n>  .../libcamera/internal/software_isp/software_isp.h |   5 +-\n>  .../libcamera/internal}/software_isp/swstats_cpu.h |  12 +\n>  src/android/metadata/camera_metadata.c             |   4 +-\n>  src/apps/qcam/assets/shader/shaders.qrc            |  16 +-\n>  src/apps/qcam/viewfinder_gl.cpp                    |  70 +--\n>  src/ipa/simple/algorithms/ccm.cpp                  |   4 +-\n>  src/ipa/simple/algorithms/lut.cpp                  |   1 +\n>  src/ipa/simple/data/uncalibrated.yaml              |  12 +-\n>  src/libcamera/egl.cpp                              | 408 +++++++++++++\n>  src/libcamera/gbm.cpp                              |  61 ++\n>  src/libcamera/mapped_framebuffer.cpp               |  10 +\n>  src/libcamera/meson.build                          |  34 ++\n>  src/libcamera/software_isp/benchmark.cpp           |  93 +++\n>  src/libcamera/software_isp/debayer.cpp             |  61 ++\n>  src/libcamera/software_isp/debayer.h               |  42 +-\n>  src/libcamera/software_isp/debayer_cpu.cpp         |  88 +--\n>  src/libcamera/software_isp/debayer_cpu.h           |  44 +-\n>  src/libcamera/software_isp/debayer_egl.cpp         | 628 +++++++++++++++++++++\n>  src/libcamera/software_isp/debayer_egl.h           | 171 ++++++\n>  src/libcamera/software_isp/gpuisp-todo.txt         |  61 ++\n>  src/libcamera/software_isp/meson.build             |   9 +\n>  src/libcamera/software_isp/software_isp.cpp        |  40 +-\n>  src/libcamera/software_isp/swstats_cpu.cpp         |  89 ++-\n>  utils/gen-shader-header.py                         |  38 ++\n>  utils/gen-shader-headers.sh                        |  44 ++\n>  utils/meson.build                                  |   2 +\n>  43 files changed, 2236 insertions(+), 212 deletions(-)\n> ---\n> base-commit: 1bd66f54a6bc928f99e321630f43d200df4d3579\n> change-id: 20250823-b4-v0-5-2-gpuisp-v2-a-d40b3b78d741\n>\n> Best regards,","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 4E5E7BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 25 Aug 2025 15:34:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 77EDE692E1;\n\tMon, 25 Aug 2025 17:34:52 +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 60D06692CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Aug 2025 17:34:50 +0200 (CEST)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-107-LPVmVWZyN3yXk6OTPMcrCA-1; Mon, 25 Aug 2025 11:34:46 -0400","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-45b4e345ce4so16418705e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Aug 2025 08:34:46 -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\t5b1f17b1804b1-45b5c547ce9sm80118505e9.6.2025.08.25.08.34.43\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 25 Aug 2025 08:34:44 -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=\"A/0X7pI9\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1756136089;\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=YaD1rejs5XHlRN7VwlqgAJjxZocbYHp+oZ7+Gu6xeCs=;\n\tb=A/0X7pI9NNEjODPrY14rx4o42UDpyS+srFf9jeb4rfIS/44Al0QExm/kqi5tCQv728ZK7N\n\tPUXIOhApVkwOhZREyZa20JXSGgqJ886IpkEkKsK3uN/h7KJ3PQpLz8vis2oezq6R0VKibN\n\tD6LWYDg9aXqdFwKWENbYSvTPN56zE0E=","X-MC-Unique":"LPVmVWZyN3yXk6OTPMcrCA-1","X-Mimecast-MFC-AGG-ID":"LPVmVWZyN3yXk6OTPMcrCA_1756136085","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1756136085; x=1756740885;\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=YaD1rejs5XHlRN7VwlqgAJjxZocbYHp+oZ7+Gu6xeCs=;\n\tb=RLgTE6oS6NlKqZie2vNfmveGC3JJM1aP2YGENIwv+I2hzWEdpDam4+VwAl6VfX/SbR\n\tMijyfJJRWh69PcDwnLw3C56hC3XbKYsHCM/OEL5+DayjZkXLdtwVNyBZ8TJl9VyhCbzX\n\tX31TFFCItm0YOy9tZSYiIiYBSkponzR1mCFvJvJmuzRuPWMunwB9yjSZX/XDb3KmXqb6\n\tgE9ImEA67BSaGUr5txJXN15NYEWqMx5BGGsNu8H01C1pzPRuYgXVrVPKSi4GUJqVAhwA\n\txoNuFoSA+535H3OEo+38qjpWt4mkwL8JUzhONb7JOsMYdf3xu2u7AMchQ30Q2ExaTat5\n\t3Zdg==","X-Gm-Message-State":"AOJu0Yy5FSMAqAaDliEdbw9sCv889CKFOMeq/3HsY4FenaYBvHQBlPAA\n\tIwEyTsF7zKENFj3lRA9U3eqJ/uNX8ii0gxCr8pRsW0lYzNRbBI5gtjft+RvsVNwvhFmJ5pHUi4C\n\thpCZbo+ewX2nTEJLyDFekKk+XuCvQFPeVeSYC3KVhRfnJ8jhjr13PLJjc6fL9qlP8HK1n6hvw8B\n\tw=","X-Gm-Gg":"ASbGncvH7t+gNXJsRDW61FRF/9MW7ZcpiWZMOuQUK0mdpJSEEtHhEKmpR/7ePIe1XL2\n\t4NPiU2bkxM3hDITry8FRWr6dtuf/vVM6pYCur3uIC6Oc2Z3f0wGey6nz4UnRtIMsoA0Eb9AXSGs\n\tCrtr4MkXWV4feYPaBT7ZAet8Q+kM1Kq+CZrndJdt4OmUo3Denn8moNsfp9+HQwawWD4Rx9deZpX\n\tG0HmioyTTs5p2aoi/6VMsun/An68yTXGHa0VJzhxV5hIFulOsPFyTzzdBwhO5vqjJGraFzII/Xh\n\t1tUbP3zfnvr2LYykDusQXmmuaMpeMzDDl2x5CUhRWOgazsmkKBMXlWnMn305M5oLeS8svLf3Gjy\n\tFpHncomRRiV74lZzh","X-Received":["by 2002:a05:600c:3152:b0:456:13b6:4b18 with SMTP id\n\t5b1f17b1804b1-45b517cfec6mr136604735e9.31.1756136085315; \n\tMon, 25 Aug 2025 08:34:45 -0700 (PDT)","by 2002:a05:600c:3152:b0:456:13b6:4b18 with SMTP id\n\t5b1f17b1804b1-45b517cfec6mr136604305e9.31.1756136084768; \n\tMon, 25 Aug 2025 08:34:44 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IFe0xop3WbssWem9HNQl+l14NmMbG0i0m1Ohui1nFKzoJtGNaH+nQ9A2AC69NrEp9jhV30/nQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  Hans de Goede\n\t<hdegoede@redhat.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","In-Reply-To":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t(Bryan O'Donoghue's message of \"Sun, 24 Aug 2025 01:48:12 +0100\")","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","Date":"Mon, 25 Aug 2025 17:34:43 +0200","Message-ID":"<85frdf8lf0.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":"u0ftfaDgUvThNP3ZXnf3sGor6r6tdqEqN1b-CKrgAGg_1756136085","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>"}},{"id":35560,"web_url":"https://patchwork.libcamera.org/comment/35560/","msgid":"<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org>","date":"2025-08-26T06:24:54","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 25/08/2025 16:34, Milan Zamazal wrote:\n>>   Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n> The resolution is 3280x2464.  I get full speed of 15 fps with GPU, 5-7.5\n> fps with CPU (with CCM).\n> \n> Apparently with GPU only, I get occasional horizontal artefacts on my\n> display when there is movement in the image -- is this expected?\n\nNot at all.\n\nCan you capture a video of it ?\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 B2FF2BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Aug 2025 06:24:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6C8A2692E9;\n\tTue, 26 Aug 2025 08:24:57 +0200 (CEST)","from mail-ed1-x535.google.com (mail-ed1-x535.google.com\n\t[IPv6:2a00:1450:4864:20::535])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D3962613BA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Aug 2025 08:24:55 +0200 (CEST)","by mail-ed1-x535.google.com with SMTP id\n\t4fb4d7f45d1cf-61c22dceb25so5985801a12.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 25 Aug 2025 23:24:55 -0700 (PDT)","from [172.31.14.217] (static-243-216-117-93.thenetworkfactory.nl.\n\t[93.117.216.243]) by smtp.gmail.com with ESMTPSA id\n\t4fb4d7f45d1cf-61c310ab189sm6613225a12.8.2025.08.25.23.24.54\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tMon, 25 Aug 2025 23:24:54 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"rMrIEoOd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1756189495; x=1756794295;\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=8ldtqT0KOJ95ZHmsk/2OQpgc/JSTURmb82QwOv7SjV4=;\n\tb=rMrIEoOdLWYGsInpYM5ko78amcPAs2bVhxzKzyD29vf4HKi+5+0eBAF5i3LR04sj/u\n\t0CJq6OVNX73rU4y/ehp9Kn92GnifgHHMozaNzt+SklN+TqtP8bQoM0FCJ9XOXsePSIzw\n\tfkhBmUoEW/KRo6IkmVNmfw3RHszW9O94r090paNEK5oh01Iimf2PSKbF51JA08JqLjEx\n\tz4T9SMKiXQz0MDT5hP7lc1MbfUV6Cgo9aXVd95wpRBip/3kKphNY3bU2/2OgLg3yqD+f\n\tuM7BL6ekG45onENcuzTeFtwRsZx5lFzy7EWShpniRHbEBQYSK7/NTMMxVaw3VpyKIFZO\n\tIPeQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1756189495; x=1756794295;\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-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=8ldtqT0KOJ95ZHmsk/2OQpgc/JSTURmb82QwOv7SjV4=;\n\tb=V6Zhsms/ZFen/RcQZPp60SB7hh+35crBSwyLcXNOQDZ6V8hra1JqcVpXm97KFWcYzd\n\tO2TaV3nNanWJxpmBsycCOuAq038ii2c89n6UJq2Hlryo2DlRPTr6Gsh2d8LidaxWrejd\n\tPebpEICPRH4pjMrTXSARWwzyMyI/tn+h1k5ACFxVEkwN13HQzLw+A4XH+U/lVaSqgBY9\n\ttXBhhGMrCcQh1Y+WtDUU82j++Ga2DT0pEXogU1zFo/E5NIcFS+yXsWaEexFIO/pPcEe7\n\ttJ3OIJUfMPskCImBCKT13RJM39bWPjI/WNYoWI2YhQ14XuZ+AhcoLIgcnm01uCd9YDM+\n\t0BNg==","X-Gm-Message-State":"AOJu0YwfTWeg/umegVKZP++JE+o+BLGtdoBsrFio69RrbwNlXtpYzpZY\n\t9IBu6B5+M4jvHaEtVZ9eGlAwg69zTOyuq8kHr34BPV/YddIpHI/BckONhiaxM49Oc7Y=","X-Gm-Gg":"ASbGncsVhnTm+uqoO5EmhbkOODGmcv9qDGVPx1ST2foW0P6SagiTKxu4L9SUoezJbOH\n\tjN66NgyutjNHIWPy9D6QmTI8Bug8KC4+13tRWAzWpvtSqHCfV3/0KA3FnrsAiMOhIJMul4/qe5v\n\tGbHjijC0xdqWNYjSjFmmwGoVI3Js7jY9j2k+iPAnRj04ezPXmplhWsHo85JxcZmV8yvnxvTNEED\n\tDZ2csiVgTTR/kgPKRB3lzZ/m7uUVPc2QZDOpbR3VgQ6FCCC4HuoJNPh3V7qghobJNdqutKBglSn\n\tee3zsQFo68tJDVYV4yABvWtmsOZTwQrcmAUnWJ/pN8j1j18w0HbHKt58qC/ZHhlNQPvxnj2jSbZ\n\tag7cfVXuDBNZ3olsQSFLCW87wAWeaqaT2n+5rJeGgJt/7B7sxmSxobPTW3InDxZtaaVIGYId0dO\n\tMuSV3ChnhOMf+mbnHd3UhoLcb+YGE35CqD8ZgT8bL+JekUaVb8XTnM","X-Google-Smtp-Source":"AGHT+IH5TqxpwZd983Opu3O0DVpvfgzlK/0BaUSWChplyrpDukofIgr5TRqv7aD3/7hTMMlACl2qqg==","X-Received":"by 2002:a05:6402:26d5:b0:61c:8c21:70df with SMTP id\n\t4fb4d7f45d1cf-61c8c2175admr1942232a12.8.1756189495165; \n\tMon, 25 Aug 2025 23:24:55 -0700 (PDT)","Message-ID":"<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org>","Date":"Tue, 26 Aug 2025 08:24:54 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org, Hans de Goede <hdegoede@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Content-Language":"en-US","In-Reply-To":"<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","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":35588,"web_url":"https://patchwork.libcamera.org/comment/35588/","msgid":"<85qzwxrtl0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-08-27T09:40:11","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","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> On 25/08/2025 16:34, Milan Zamazal wrote:\n>>>   Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n>> The resolution is 3280x2464.  I get full speed of 15 fps with GPU, 5-7.5\n>> fps with CPU (with CCM).\n>> Apparently with GPU only, I get occasional horizontal artefacts on my\n>> display when there is movement in the image -- is this expected?\n>\n> Not at all.\n>\n> Can you capture a video of it ?\n\nI haven't succeeded so far.  But my guess is that it is related to\nchanging buffers, like an unfinished writing to a buffer over its\nprevious contents.  There is an occasional horizontal \"line\" near the\nbottom of the image, regardless of the camera orientation.  With a\nstatic scene, there is no such (clearly visible) problem.  But with a\nmoving scene, it looks to me like different images overlap and then\nthere is a visible disruption at the place where one image finishes and\nthe other one starts:\n\n  +--------------+\n  |              |\n  |              |\n  |              |\n  |       -----  |\n  +--------------+\n\nIs there anything I can try in the code to confirm the source of the\nproblem?","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 D6ADFBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Aug 2025 09:40:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8E0BD692EE;\n\tWed, 27 Aug 2025 11:40:21 +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 787E7613C0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 11:40:19 +0200 (CEST)","from mail-wm1-f69.google.com (mail-wm1-f69.google.com\n\t[209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-517-vNbpawOvPYa46wYFJ-aX7w-1; Wed, 27 Aug 2025 05:40:15 -0400","by mail-wm1-f69.google.com with SMTP id\n\t5b1f17b1804b1-45a1b0c5366so39514235e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 02:40:15 -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\t5b1f17b1804b1-45b6f0f64b2sm23706165e9.19.2025.08.27.02.40.12\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 27 Aug 2025 02:40:12 -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=\"NZby1bMu\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1756287618;\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=v1107TIbc/d5MFO8Ri8F5xB3WINwtpZyY50K5LdwoiQ=;\n\tb=NZby1bMuH2rmMir1zK8SgHTyNBZT9WJKCXrL0VlHLXTOtMs1PoCZqvQqcMt6svgXwd9VrD\n\tLmnkQaCQlb+Qv2JxOrMqWnc43R7OTBDT7eA7V9xVwZ94zhH+uPlAwgCCEPz/s6vEJn173A\n\truZxQwVwqWjWf/4fe3bJumdY+clYYLg=","X-MC-Unique":"vNbpawOvPYa46wYFJ-aX7w-1","X-Mimecast-MFC-AGG-ID":"vNbpawOvPYa46wYFJ-aX7w_1756287614","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1756287614; x=1756892414;\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=v1107TIbc/d5MFO8Ri8F5xB3WINwtpZyY50K5LdwoiQ=;\n\tb=C+/yS3Om9ysjooCn5J48t4Fx5l6w0fmWlTN6j0hNB8grBGWal114yU4ugSiDPn+y3L\n\ti2eL99MFvgeW7OSpFgfZq63CeSeLTk/JzeGcnqzOXJ++0Con+l4fN++IyR7hdOBqv1RM\n\trVRRWFllKjFFL1lxZi//PYxSfMyrYagviBjX24z++H2fbNXvrXvqffBJaC7SOyyJMhTp\n\tWd7ZFI/3unXPaWqJ6ocZnzCPpEVU6wGdz21iZyfaW9SBEsaVctZg8E/O95hnlbm+aGbW\n\tziWnmpxFpwpgeEYnFVnpW4dfLzI1vEx5MJJD8DfiWQCj9DOPjQp8+ypB7MCqJFgDedDB\n\tWsZw==","X-Gm-Message-State":"AOJu0YxS6Cv2wTmasHpYVLBRuw9iiuYd6NvWNoPghkeyP3SgBtdt11XD\n\tNWzciia7fctowlh6miAhTuYueNJXdo9S/S8KR/6HHrbWKzdaxaC2Ok8ngEZDh37eAezaAhhVusI\n\tEz3R6AiyMJTLt9rxeb3sQg3GRPMYUXdYxE8hl49tuyZ1qLWO1LHDF0s1DqEpIN8KftD/gqbme/L\n\ttNs+TCXGs=","X-Gm-Gg":"ASbGncsQ8tld+YIEZDxMiXOGggVRXOnw1QLT5mA4UlZr7CzTBfUwRyO6L4v4bZ83fIW\n\tGxQoGYzCFKJnZiXYhK8fBwIOYjLsqioWxPj+O0Dms9pc0i3+60OMaRzfiregcNPpKiaNr8b1ata\n\tq6NXEgVJy9574zrSNE9mBytgxMUm6f9pnxxhdtiw/Rs9dvJPsAIDl5LHopl1U59kFZmQ9TEIbCg\n\tkFZ7LAvB9P/drJ0/MdtxhKSChdNTRxO8U49RGv6TNVo7nx/YBYwivLtj4KQUi54sIyR+aQPV7kk\n\ttzB8VWE5TYqs5t/cAdu0LcAnLLJcp/13hjoSuFR44sAyJ8dyo9wVnHn7d4CGLWZUTfwncEVfAuz\n\tvF3J9IMwa9PU+Gggz","X-Received":["by 2002:a05:600c:5251:b0:455:f380:32e2 with SMTP id\n\t5b1f17b1804b1-45b517ca54cmr172883925e9.18.1756287613765; \n\tWed, 27 Aug 2025 02:40:13 -0700 (PDT)","by 2002:a05:600c:5251:b0:455:f380:32e2 with SMTP id\n\t5b1f17b1804b1-45b517ca54cmr172883685e9.18.1756287613386; \n\tWed, 27 Aug 2025 02:40:13 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IGmAs/s1B1sZqjU45KZ7moznrEfV15QMRAVd4eE0KhHi+zPomcd3D2xZOGpCby+4oYU1sr6jQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  Hans de Goede\n\t<hdegoede@redhat.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","In-Reply-To":"<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org> (Bryan\n\tO'Donoghue's message of \"Tue, 26 Aug 2025 08:24:54 +0200\")","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org>","Date":"Wed, 27 Aug 2025 11:40:11 +0200","Message-ID":"<85qzwxrtl0.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":"6kfb82ojdwYg7LsB0KLd2-oOTZiiDRXwBj0BpIEqEOw_1756287614","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>"}},{"id":35589,"web_url":"https://patchwork.libcamera.org/comment/35589/","msgid":"<f00d2c4f-e2ea-4f46-b2d1-2e7c0921379a@linaro.org>","date":"2025-08-27T09:43:33","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 27/08/2025 10:40, Milan Zamazal wrote:\n> Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n> \n>> On 25/08/2025 16:34, Milan Zamazal wrote:\n>>>>    Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n>>> The resolution is 3280x2464.  I get full speed of 15 fps with GPU, 5-7.5\n>>> fps with CPU (with CCM).\n>>> Apparently with GPU only, I get occasional horizontal artefacts on my\n>>> display when there is movement in the image -- is this expected?\n>>\n>> Not at all.\n>>\n>> Can you capture a video of it ?\n> \n> I haven't succeeded so far.  But my guess is that it is related to\n> changing buffers, like an unfinished writing to a buffer over its\n> previous contents.  There is an occasional horizontal \"line\" near the\n> bottom of the image, regardless of the camera orientation.  With a\n> static scene, there is no such (clearly visible) problem.  But with a\n> moving scene, it looks to me like different images overlap and then\n> there is a visible disruption at the place where one image finishes and\n> the other one starts:\n> \n>    +--------------+\n>    |              |\n>    |              |\n>    |              |\n>    |       -----  |\n>    +--------------+\n> \n> Is there anything I can try in the code to confirm the source of the\n> problem?\n> \n\nI did see temporal artifacts on the qcom system with the base-case \nfragment shaders running inside of qcam, which then magically went away \nwith some of the rebasing we did.\n\nI wonder could you run the fragment shaders inside of qcam with the raw \nstream and test again ?\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 B8C3AC32BB\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Aug 2025 09:43:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AC20C692EE;\n\tWed, 27 Aug 2025 11:43:37 +0200 (CEST)","from mail-ej1-x633.google.com (mail-ej1-x633.google.com\n\t[IPv6:2a00:1450:4864:20::633])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D2115613C0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 11:43:35 +0200 (CEST)","by mail-ej1-x633.google.com with SMTP id\n\ta640c23a62f3a-afebb6d4093so163888466b.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 02:43:35 -0700 (PDT)","from [10.41.24.137] ([213.244.170.152])\n\tby smtp.gmail.com with ESMTPSA id\n\t4fb4d7f45d1cf-61c90ffd677sm3126710a12.46.2025.08.27.02.43.34\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 27 Aug 2025 02:43:34 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"nCltvkZh\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1756287815; x=1756892615;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\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=mac/C9Kkw05xVk0O5BEN7Pjgf3Fv7CQHUZ4GrE/9C8c=;\n\tb=nCltvkZh9L1kAEVEiqFzn6HmzcZa5hUk9xDlpbz3csIV8RYePUG54NdaJ1FtY1LoDq\n\tLwhLSlbBstm9ekHfbucnNKFZKNXDZW8+8w4wYhwDHlbFlpiqm+JV4ZEAr1zwdS6DVrWg\n\thcRakuUdXumsJgMAfQ3+/1Av+V4xe8izTFF2nH1glgIsgJPUaduveG6+vMg/vPKO6W98\n\tzIi0wXHiKEB1blovxkVWCFNUR2+rDX1IMiXMhUgHfljM16U/gVFk8eK45ev2XxY2MgJj\n\tdNv4/01m0pxI/Hk28nI8jDMxryXUlqlS7S8nK2BSrGcV08l3e8E+e0m6ZKOw1bo77i2g\n\tIPvA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1756287815; x=1756892615;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=mac/C9Kkw05xVk0O5BEN7Pjgf3Fv7CQHUZ4GrE/9C8c=;\n\tb=mfYpp7XlpbCLTwvAlddqm0S7e/ZKm92yMrbdOzxFm+kfaWYL/XJq5uvLws4SWkZvKi\n\terhdNcbxGlqsx/EW3u2eLDOM8nkUvrqTP4JqSvCnBOX/c5fmF7jwE66ilkZOuZG/CC9+\n\tDzeXNqXJe2kQVYlkc5vFHzoU58g3NID13pg494PMNoSWMOLgZMMAo48kJmL1hx/hmevr\n\tUcgSzRb9x9fwVB9lQ3ISH9ILycQ56hNoyhmKLZe6QfuuMmrLUf5GG/HABsPuoqzIjgU8\n\t7v5S+I/0++qamRhkpC4GUpfLturk1KpfsZG64w3vfZGD/Zk8QSV3kodusKM/6pTDVwPP\n\t2E0A==","X-Gm-Message-State":"AOJu0Yyenbnfxvuxye6bNnXRnaxV8wbcjMKahx6VJ8lKbpwl6oxA8JL6\n\tXK06oIRu4IK8/ObBCxVG/+vkYAlDUxTUJSe14UtibBzdEjZoXpNRo1dqMWSBSfsYOko=","X-Gm-Gg":"ASbGnctbhlw3jwAkX/D0POAbGojdHyACW0QHT0kYJg6JIPPeuNQ3+2zugeVj6+HWeQJ\n\tDORzCEVcwexKuo3oT6oFGfvPhHh/0/LZQogySrM8nJj8IZBYH1F5ZGPeTbdxP4P39Yn6L9YF+Qt\n\ttKv+in7RyjKKLaRzWjUcFoEkLohtB2alEzYfybmu0Anr/3ex7Q5Q/RT3jkb0Rnv3UhyrKM01uxr\n\t/AbUUWRuxG4hGq/e+SGyV06PTHRj0IG1WyupGtK1VeQe34AnjIvYUvl+br0c4uLSOWDCKvbvQPC\n\tTcFfPoikkBpeamu0Uc+jdf2+fvFFSh/SiMBeuwHukjsMp5P+kfuxL0zprgNI7NSPHIxEe/QOVS6\n\tKcUHUCcF2xrixaR1nbUjpBBxda98ro/T+IQIZ9L+ALHANHTUM4jsc+FwfA1O1so8/f98gR6t4w+\n\tGRCjA=","X-Google-Smtp-Source":"AGHT+IEj2RQm0cJa0cBIGWGE5gr1L+OUcILx3si0aQZqL1bsV0FG3K+ul/MTZF4Ol7diiXFG6FNSxQ==","X-Received":"by 2002:a17:907:3c95:b0:afe:c1de:b3b6 with SMTP id\n\ta640c23a62f3a-afec1debd2bmr171031266b.61.1756287814918; \n\tWed, 27 Aug 2025 02:43:34 -0700 (PDT)","Message-ID":"<f00d2c4f-e2ea-4f46-b2d1-2e7c0921379a@linaro.org>","Date":"Wed, 27 Aug 2025 10:43:33 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org, Hans de Goede <hdegoede@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org>\n\t<85qzwxrtl0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Language":"en-US","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<85qzwxrtl0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","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":35590,"web_url":"https://patchwork.libcamera.org/comment/35590/","msgid":"<85ms7lrrb5.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-08-27T10:29:18","subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","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> On 27/08/2025 10:40, Milan Zamazal wrote:\n>> Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n>> \n>\n>>> On 25/08/2025 16:34, Milan Zamazal wrote:\n>>>>>    Milan Zamal has reported a TI AM69 + imx219 - unknown resolution\n>>>> The resolution is 3280x2464.  I get full speed of 15 fps with GPU, 5-7.5\n>>>> fps with CPU (with CCM).\n>>>> Apparently with GPU only, I get occasional horizontal artefacts on my\n>>>> display when there is movement in the image -- is this expected?\n>>>\n>>> Not at all.\n>>>\n>>> Can you capture a video of it ?\n>> I haven't succeeded so far.  But my guess is that it is related to\n>> changing buffers, like an unfinished writing to a buffer over its\n>> previous contents.  There is an occasional horizontal \"line\" near the\n>> bottom of the image, regardless of the camera orientation.  With a\n>> static scene, there is no such (clearly visible) problem.  But with a\n>> moving scene, it looks to me like different images overlap and then\n>> there is a visible disruption at the place where one image finishes and\n>> the other one starts:\n>>    +--------------+\n>>    |              |\n>>    |              |\n>>    |              |\n>>    |       -----  |\n>>    +--------------+\n>> Is there anything I can try in the code to confirm the source of the\n>> problem?\n>> \n>\n> I did see temporal artifacts on the qcom system with the base-case fragment shaders running inside of\n> qcam, which then magically went away with some of the rebasing we did.\n>\n> I wonder could you run the fragment shaders inside of qcam with the raw stream and test again ?\n\nUnfortunately not, Qt applications don't work with the TI drivers I use.","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 7E8EBBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Aug 2025 10:29:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2C3CE692E7;\n\tWed, 27 Aug 2025 12:29:27 +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 A5867613BA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 12:29:24 +0200 (CEST)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-132-Jz0lVW3LPk-kDrktBub2Uw-1; Wed, 27 Aug 2025 06:29:22 -0400","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-45a1b05b15eso49268825e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Aug 2025 03:29:21 -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\t5b1f17b1804b1-45b6f0c72f8sm25463235e9.3.2025.08.27.03.29.19\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 27 Aug 2025 03:29:19 -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=\"MnyYpa3W\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1756290563;\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=wapF1paKLxlbmdeLQhf0oE8CuOpljxe7ly6nuvFq7vs=;\n\tb=MnyYpa3WroGT1Q19aduxn2EvMSilbJptvzVyOBH54BRluErB8KtS8+Y7ulswat+dQPRKdX\n\tcW/TMX8aj0rcPr2F7ECmwGRKlJ++uHAaM4fTKmfP5MR3wc7oK3HuqbI3YOob6ze9hH0gmu\n\tMa6x59SfQD/Kum81VrtLv9hw5wNhO4E=","X-MC-Unique":"Jz0lVW3LPk-kDrktBub2Uw-1","X-Mimecast-MFC-AGG-ID":"Jz0lVW3LPk-kDrktBub2Uw_1756290561","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1756290561; x=1756895361;\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=wapF1paKLxlbmdeLQhf0oE8CuOpljxe7ly6nuvFq7vs=;\n\tb=d+ZAL26emjzYhM6Kv+lkSO3iMmplOmVahJF2BVx/Hv1w8LF2dn6fMPb27TBPX6zrLh\n\tAiCQWcmjr287WYjjBZB7tnYsSTHNGZhJu3aipSWV7gHfxtF5Nfn7xrnbvAVanqLDXWXb\n\t3Nxxqea52gqf6mX4mSXwdFxJCnxEpPhVNg2blJDLd0zZP1EcgckuJm9thVlDbKRcV9fP\n\tpyBAqhzHpIVuBPPBfbN3cxG/N4DMiMJNcUXQc+zjVafai8jidUeStqvVc8gtZUASSWsV\n\tq005re/fiMmTotPVMCsbK+vuK2RVxUlEfpHfeCc3fX8uTOhq1I9ncRYZV1I2mBlfUrw8\n\t4ImA==","X-Gm-Message-State":"AOJu0YzQjGMd7VyqJtAcUpHLE0gUW7jLi6HEyNLVNsheG7Dus3y4KfNy\n\tPZre+47T7MyUujwXc1JricH33Cq72qhkL0KYyFk7Oo5u3QecQK8pv303UFG3brB5FFSeTfo3lP2\n\tFEVa+5dhjeTOngQdMuhCEYu+xoasyv5xel4zg79tr7mjNkfhhcBu8v6aMKzp3VpAEp3P1KAP5wD\n\tc=","X-Gm-Gg":"ASbGncsztiECTRJtV3rd1CL+3zujQdKqFLaXhL4Sgkkg0XHi0lVF9le48IcGer3aIGi\n\tV50NsRqfAcvgAKwIgJJzVMji4mxaK950sS8zNjllFWzqaqm3/MnYKjNrTo/kfLawlKsDgtajvSU\n\tbmuNVufXtnUwH+nQzVGoOC9RDCjykESYJMteFZRpZvJe/PuYvUoLSWLX/2RRZJacx9JPoXeDsY5\n\tyD1HIlp+qBqa2ooOfdugDBtzrF+H7eDdXUtvwW4ao0sQPWzhMzTF4LtDAHshRBIXxPhKv9eo2eP\n\tYEykDkClxY5YoK/yXvB3ghrCVSfg5Pos4SNAEYMNjl0RaYt+d+D9D+GVgO7RWSI0q2SSXZM149G\n\tl+sN8oYQDd+LAMXZ0","X-Received":["by 2002:a05:600c:4748:b0:45b:47e1:ef66 with SMTP id\n\t5b1f17b1804b1-45b517dae4fmr154678835e9.37.1756290560744; \n\tWed, 27 Aug 2025 03:29:20 -0700 (PDT)","by 2002:a05:600c:4748:b0:45b:47e1:ef66 with SMTP id\n\t5b1f17b1804b1-45b517dae4fmr154678595e9.37.1756290560328; \n\tWed, 27 Aug 2025 03:29:20 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHa+kCeEr65IWi0Ssm1gQoklIfArrUWggKIcLkv6T1AQfuOqXAB3ZOxEXq2cCZr9k6ICLuiUg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org,  Hans de Goede\n\t<hdegoede@redhat.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [PATCH v2 00/37] Add GLES 2.0 GPUISP to libcamera","In-Reply-To":"<f00d2c4f-e2ea-4f46-b2d1-2e7c0921379a@linaro.org> (Bryan\n\tO'Donoghue's message of \"Wed, 27 Aug 2025 10:43:33 +0100\")","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t<85frdf8lf0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<6ed3017d-3d84-4d16-8691-102ecde25675@linaro.org>\n\t<85qzwxrtl0.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<f00d2c4f-e2ea-4f46-b2d1-2e7c0921379a@linaro.org>","Date":"Wed, 27 Aug 2025 12:29:18 +0200","Message-ID":"<85ms7lrrb5.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":"tseY5hZQNRuBcR6icHTs6vIMq4qF5KTKX9r0Ms-Y3EU_1756290561","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>"}},{"id":35617,"web_url":"https://patchwork.libcamera.org/comment/35617/","msgid":"<b547eccd-9065-4d3b-a376-23340599ca24@collabora.com>","date":"2025-08-29T08:29:08","subject":"Running the GPUISP with Pipewire","submitter":{"id":140,"url":"https://patchwork.libcamera.org/api/people/140/","name":"Robert Mader","email":"robert.mader@collabora.com"},"content":"I tried running this series with Pipewire - minus some issues that I'll \naddress in separate mails it seems to work pretty well \\o/\n\nHere's a short howto in case anyone else wants to try:\n\n1. Build PW against this series\n\n2. The LIBCAMERA_SOFTISP_MODE env var can be enabled via a service \ndrop-in override:\n\nsystemctl --user edit pipewire\n\nadd the lines:\n\n[Service] Environment=LIBCAMERA_SOFTISP_MODE=gpu SystemCallFilter=mincore\n\nNote that you can use the Environment variables several times - i.e. you \ncould add\n\nEnvironment=LIBGL_ALWAYS_SOFTWARE=1\n\nit order to test llvmpipe.\n\nAfter saving, restart PW to make the change take effect\n\nsystemctl --user restart pipewire\n\n3. The mincore syscal is needed for Mesas EGL implementation - but not \nfor Vulkan or OpenCL. I haven't looked deeper into it, however assuming \nMesa/EGL really needs it we'll probably want to enable it by default in \nPW - feedback welcome: \nhttps://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2530\n\nRegards","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 623D5BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 29 Aug 2025 08:29:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0B1046931A;\n\tFri, 29 Aug 2025 10:29:19 +0200 (CEST)","from sender4-op-o12.zoho.com (sender4-op-o12.zoho.com\n\t[136.143.188.12])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56396692DF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 29 Aug 2025 10:29:17 +0200 (CEST)","by mx.zohomail.com with SMTPS id 1756456151367150.68640444744642; \n\tFri, 29 Aug 2025 01:29:11 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=collabora.com\n\theader.i=robert.mader@collabora.com header.b=\"fL92cyxD\"; \n\tdkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1756456153; cv=none; \n\td=zohomail.com; s=zohoarc; \n\tb=EC5L4WBUifxvfARmoAMmoCj2aiW9MdWxnPusOjuTsLXeZIFOaIXHXdKBjfuP32nZBzbixDd8Tr+iGOl5RXLqcYKS6VTg0X6r+hV0Y4TkXEKbmEgeXBOWF5qePDwi+inrTApudlZ7+7Hixs04YocgM9w6Bse6XYGhtHsktdoF2UI=","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; \n\ts=zohoarc; t=1756456153;\n\th=Content-Type:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc;\n\tbh=NAzNU6srwPzW+ko/SbytcEKMABGzk9lMi38mynfDWsg=; \n\tb=bvGLEsG1uCDG4xoVcbB063OVBtEXInOKM7CnjCsvDn4T88SJazt232GaUeH/ds5T6ja84ZQcM3ds+TOI/9eg+sUskBqtlLaCcG6bBBiNXQKLAycOcXArp73ZHluTZ2MD/O32HSo4xU1p5wPY9XYZJ+lP+m/tdQ2bpgIK2m6eoy4=","ARC-Authentication-Results":"i=1; mx.zohomail.com;\n\tdkim=pass  header.i=collabora.com;\n\tspf=pass  smtp.mailfrom=robert.mader@collabora.com;\n\tdmarc=pass header.from=<robert.mader@collabora.com>","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1756456153;\n\ts=zohomail; d=collabora.com; i=robert.mader@collabora.com;\n\th=Content-Type:Message-ID:Date:Date:MIME-Version:Subject:Subject:To:To:References:From:From:In-Reply-To:Message-Id:Reply-To:Cc;\n\tbh=NAzNU6srwPzW+ko/SbytcEKMABGzk9lMi38mynfDWsg=;\n\tb=fL92cyxDUqodGzaNoOvSbcKauAbgbJqG38W0JIDnu5BcpJjulEFhUq8WnOrm0ePr\n\tl4D9hB+kD1AgcrDNwJ88r3IiJL+a1cvlUgjzPiITyGpuVQtZtrWtz/n+B+pIHS6iMkM\n\taX5UyS1JofyiascBL1EymCObjwrmkyYuHp/V95mc=","Content-Type":"multipart/alternative;\n\tboundary=\"------------avzHYuQ5ctd7j4a0wh4D5iYv\"","Message-ID":"<b547eccd-9065-4d3b-a376-23340599ca24@collabora.com>","Date":"Fri, 29 Aug 2025 10:29:08 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Running the GPUISP with Pipewire","To":"libcamera-devel@lists.libcamera.org","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>","Content-Language":"en-US, de-DE","From":"Robert Mader <robert.mader@collabora.com>","In-Reply-To":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@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":35625,"web_url":"https://patchwork.libcamera.org/comment/35625/","msgid":"<49327bb1-dc80-46aa-81d3-d25b79dc679f@nxsw.ie>","date":"2025-08-29T12:13:38","subject":"Re: Running the GPUISP with Pipewire","submitter":{"id":226,"url":"https://patchwork.libcamera.org/api/people/226/","name":"Bryan O'Donoghue","email":"bod.linux@nxsw.ie"},"content":"On 29/08/2025 09:29, Robert Mader wrote:\n> I tried running this series with Pipewire - minus some issues that I'll \n> address in separate mails it seems to work pretty well \\o/\n> \n> Here's a short howto in case anyone else wants to try:\n> \n> 1. Build PW against this series\n> \n> 2. The LIBCAMERA_SOFTISP_MODE env var can be enabled via a service drop- \n> in override:\n> \n> systemctl --user edit pipewire\n> \n> add the lines:\n> \n> [Service] Environment=LIBCAMERA_SOFTISP_MODE=gpu SystemCallFilter=mincore\n> \n> Note that you can use the Environment variables several times - i.e. you \n> could add\n> \n> Environment=LIBGL_ALWAYS_SOFTWARE=1\n> \n> it order to test llvmpipe.\n> \n> After saving, restart PW to make the change take effect\n> \n> systemctl --user restart pipewire\n> \n> 3. The mincore syscal is needed for Mesas EGL implementation - but not \n> for Vulkan or OpenCL. I haven't looked deeper into it, however assuming \n> Mesa/EGL really needs it we'll probably want to enable it by default in \n> PW - feedback welcome: https://gitlab.freedesktop.org/pipewire/ \n> pipewire/-/merge_requests/2530\n> \n> Regards\n> \n> --\n> Robert Mader\n> Consultant Software Developer\n\nHey Robert.\n\nGreat news, thanks for testing.\n\nOne thing worth trying is toggling the CCM between GPU and CPU mode.\n\nhttps://patchwork.libcamera.org/patch/24213/\n\nThis is when you start seeing the 4x, 15x or 20x type performance diff \nbetween CPU and GPU.\n\nThat should be the difference between works \"pretty well\" and \"works at \nall\" :)\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 556CCBEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 29 Aug 2025 12:13:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8B726931D;\n\tFri, 29 Aug 2025 14:13:44 +0200 (CEST)","from tor.source.kernel.org (tor.source.kernel.org\n\t[IPv6:2600:3c04:e001:324:0:1991:8:25])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B0C24692E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 29 Aug 2025 14:13:43 +0200 (CEST)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby tor.source.kernel.org (Postfix) with ESMTP id 41DAD60054;\n\tFri, 29 Aug 2025 12:13:42 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 259D2C4CEF0;\n\tFri, 29 Aug 2025 12:13:40 +0000 (UTC)"],"Message-ID":"<49327bb1-dc80-46aa-81d3-d25b79dc679f@nxsw.ie>","Date":"Fri, 29 Aug 2025 13:13:38 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: Running the GPUISP with Pipewire","To":"Robert Mader <robert.mader@collabora.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20250824-b4-v0-5-2-gpuisp-v2-a-v2-0-96f4576c814e@linaro.org>\n\t<0m0tcpWO1AjXIows29hg_Y007InsT9wcoS-zyINSpKoJ0Mog8OgmqCT64MPuZWFaKSD_Xxb_da4STpNOPL0-0A==@protonmail.internalid>\n\t<b547eccd-9065-4d3b-a376-23340599ca24@collabora.com>","From":"Bryan O'Donoghue <bod.linux@nxsw.ie>","Content-Language":"en-US","In-Reply-To":"<b547eccd-9065-4d3b-a376-23340599ca24@collabora.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>"}}]