{"id":9636,"url":"https://patchwork.libcamera.org/api/1.1/covers/9636/?format=json","web_url":"https://patchwork.libcamera.org/cover/9636/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200916145254.1644-1-laurent.pinchart@ideasonboard.com>","date":"2020-09-16T14:52:47","name":"[libcamera-devel,0/7] qcam: Accelerate packed YUV rendering with OpenGL","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/9636/mbox/","series":[{"id":1293,"url":"https://patchwork.libcamera.org/api/1.1/series/1293/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=1293","date":"2020-09-16T14:52:47","name":"qcam: Accelerate packed YUV rendering with OpenGL","version":1,"mbox":"https://patchwork.libcamera.org/series/1293/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/9636/comments/","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 C51BEC3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 16 Sep 2020 14:53:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3DBC862E75;\n\tWed, 16 Sep 2020 16:53:44 +0200 (CEST)","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 6F96F60533\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 16 Sep 2020 16:53:42 +0200 (CEST)","from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D048726B;\n\tWed, 16 Sep 2020 16:53:27 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"vFjOt3S1\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1600268009;\n\tbh=yEgsAs3AzirGL9og+s70y83IpSqif5unamp7nXIbx4g=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=vFjOt3S1fSuNLLAfs8Pm6H4upCHH7PBqt5FLscTq8h2Hy2O+nZpE3tCB2Vx2g0SOt\n\tZNXJ1aVoMqx4CR8iyLlnpOQGyOgA9cAdQgS44hUTOnr7crnZRHJ/Rrud6yyXaRHYkG\n\tpH3B+4363H9QRBuJrBc0ankid9Db5j/KnXbjYGAA=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 16 Sep 2020 17:52:47 +0300","Message-Id":"<20200916145254.1644-1-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.27.0","MIME-Version":"1.0","Subject":"[libcamera-devel] [PATCH 0/7] qcam: Accelerate packed YUV rendering\n\twith OpenGL","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>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Hello,\n\nThis patch series adds a shader to convert packed YUV formats to RGB. It\nhas been developed as I reviewed Show's OpenGL support work, to help me\nunderstand the OpenGL and GLSL code.\n\nThe series starts with a few cleanups in patches 1/7 to 3/7. It then\nrenames shader files in 4/7 to prepare for packed YUV support, and adds\nsupport for preprocessor macros in the shaders in 5/7. Patch 6/7 uses\nmacros to select the YUV pattern in the semi-planar fragment shader,\ninstead of duplicating the shader code. Finally, patch 7/7 adds a\nfragment shader for YUYV.\n\nLaurent Pinchart (7):\n  qcam: Remove unneeded './' file prefix in *.qrc\n  qcam: viewfinder_gl: Don't store texture IDs in class members\n  qcam: viewfinder_gl: Hardcode the vertex shader file name\n  qcam: viewfinder_gl: Rename shader files\n  qcam: viewfinder_gl: Support #define in shaders\n  qcam: viewfinder_gl: Merge the semi-planar UV and VU shaders\n  qcam: viewfinder_gl: Add shader to render packed YUV formats\n\n src/qcam/assets/feathericons/feathericons.qrc |  12 +-\n src/qcam/assets/shader/NV_2_planes_VU_f.glsl  |  32 ----\n .../{NV_vertex_shader.glsl => YUV.vert}       |   2 +-\n ...V_2_planes_UV_f.glsl => YUV_2_planes.frag} |   9 +-\n .../{NV_3_planes_f.glsl => YUV_3_planes.frag} |   2 +-\n src/qcam/assets/shader/YUV_packed.frag        |  82 +++++++++++\n src/qcam/assets/shader/shaders.qrc            |   8 +-\n src/qcam/viewfinder_gl.cpp                    | 137 +++++++++++++-----\n src/qcam/viewfinder_gl.h                      |  18 +--\n 9 files changed, 212 insertions(+), 90 deletions(-)\n delete mode 100644 src/qcam/assets/shader/NV_2_planes_VU_f.glsl\n rename src/qcam/assets/shader/{NV_vertex_shader.glsl => YUV.vert} (79%)\n rename src/qcam/assets/shader/{NV_2_planes_UV_f.glsl => YUV_2_planes.frag} (68%)\n rename src/qcam/assets/shader/{NV_3_planes_f.glsl => YUV_3_planes.frag} (90%)\n create mode 100644 src/qcam/assets/shader/YUV_packed.frag"}