From patchwork Fri Oct 16 20:29:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ray Strode X-Patchwork-Id: 28484 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 4B76EC324C for ; Fri, 16 Oct 2026 20:29:29 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id EBBF268E45; Fri, 16 Oct 2026 22:29:28 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FY7SLc3u"; dkim-atps=neutral Received: from mail-ua1-x92b.google.com (mail-ua1-x92b.google.com [IPv6:2607:f8b0:4864:20::92b]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 025BD68E3D for ; Fri, 16 Oct 2026 22:29:27 +0200 (CEST) Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-99071945aa7so190280241.3 for ; Fri, 16 Oct 2026 13:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1792182566; x=1792787366; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=c+xkTlViEcuzX0gpAX1ajpzKr9kyLjh7KRTq7LZhRAQ=; b=FY7SLc3ukz+z6CExSdH9YGTvxlFfZLEad2vWPPHd/FGh/YjFRJ6bDb9lxLqs2Barb2 ODxsxepItx1/IRnx5b2EQ51/6kQ2jK3Z3IHnHVTDmyDYSQEOIFtu53mGu46xQShzBEFL fG2D5uj+OPppfNuWBjQ53Dev4wk3PZyAeKYc2x2yrSaej09JKF4SgVeLZ/n83tX/ttuK XKUaqhdHp/PRxTnBJscGJmmN5w+XVfrKdADhyeH1z9d2aI1bRSwLYvhDRKus6UeaFVwF bgPInaVl8U+ZUPVa3idbQ2mWSLocmO78ZGjcxP/7h+pXPAjz/wCqwCNXThToOBc45WcL JS8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1792182566; x=1792787366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=c+xkTlViEcuzX0gpAX1ajpzKr9kyLjh7KRTq7LZhRAQ=; b=0Bl0f0ENKZBI+6fk2nsL6rYkVyMPt/SNUwvrsAGQlKDcunRDeW2owgwrKQg/5733t/ FIrc7hn2Dq3B8Dfvb9rlDW9YCe7TZduO/EiphPLwBiJ23smRHiUnFMqNfoaMsVzSu5dZ WUVRrGGEYaE/M1xKBP5YD5/lzSRBW7N1vnIZKWVBs6bDM9eFwURpdtsrovuNlFAYL38+ EoVRQ4QZfNs0H3IMvrNc9DTecwXXkWxVbnPQXtMv94GszlE2ILYfkb5EdgGwc/lfIxFr kDJlT4WBadtvaxQlSasBBMbQ57Rga9XQuSEPM8UBsLKGukmR4d+jQQPi2cGWmlpd5qIc Z01A== X-Gm-Message-State: AFq9FYJIEVBtGBvUl2VYk0GIHWLo5nmBVVxv0tesqX8lWCtE00tT95Q0 C3+qkZwTLof/eyFNy2erqg59bebbT9MXXaFopPffdFyuHb+Mw4bPsmazI+mqDUa/qCY= X-Gm-Gg: AYBFou09HVgKUwkisBy2qMmE8HxHvTqPWPWGzZEeImZm9+gnNhAl5ZspP+wBl2FGcRG UOueVe4sEBiCI4+jJFYDAOE//fKYRQ7hYuRpYpTmgPGpmk8MUJ46NImfKSD1xFCYu7a70pXxKiP 7tNEx3hjFeR67hxszCuzLPUA+ECA1NCCtYrAv8JyjcILA6I+ra5dCK9venIbw9BUKSNYqOxd+Jt 540kj+U91hRUGty5oAI0FXeHS5jhY95DVdBfDlwxDfjQpL3n5q99+/DArAs84SHta9tpEpewxZv Xhr0WJhYe49zPSiQfTRPL11iJXaIztQdd1xEh0b1FifecwGjatyqEfBjJlO2zW6CvrUJyIbgFFv OE+aiUfRJWQxOakNryfRd48AP+OpB9VY86g/Vm/j3vG13Fhjm7m3bbjEwW58/5lwdCSqjz3dcnS envBxSWwniIK4jOMHHSdtRIaW0lpBQ78rnIe0VzNv98QtReraApk+jyQaWv3DvFGOEVZvhd9kXQ G6fOlazU3C2U0GtqojgySspkZtNnw== X-Received: by 2002:a05:6102:1612:b0:7a6:b18e:6d24 with SMTP id ada2fe7eead31-7cc36a38330mr255370137.23.1792182565717; Fri, 16 Oct 2026 13:29:25 -0700 (PDT) Received: from localhost ([2601:19c:4a00:897d:3391:ed89:5571:41a8]) by smtp.gmail.com with ESMTPSA id a1e0cc1a2514c-990835c29eesm2271202241.4.2026.10.16.13.29.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Oct 2026 13:29:25 -0700 (PDT) From: Ray Strode To: libcamera-devel@lists.libcamera.org Cc: johannes.goede@oss.qualcomm.com, laurent.pinchart@ideasonboard.com, kieran.bingham@ideasonboard.com Subject: [PATCH 0/7] tests: Separate suites and check software ISP crops Date: Fri, 16 Oct 2026 16:29:09 -0400 Message-ID: <20261016202916.1405813-1-halfline@gmail.com> X-Mailer: git-send-email 2.56.0 In-Reply-To: <8fd58439-d19e-4539-962f-a6110be5c971@oss.qualcomm.com> References: <8fd58439-d19e-4539-962f-a6110be5c971@oss.qualcomm.com> MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hi all, Following Hans's suggestion, this series adds opt-in integration tests for the software ISP's rendered output and pixel statistics. It applies on top of the crop and ScalerCrop metadata v3 [1]. The first three patches classify the existing tests into unit and integration suites, add matching test-unit and test-integration build options, and document their use. The existing test option enables both. The remaining patches add software ISP backend checks. The rendering test compares resized output with a centered crop of the native render. The statistics test checks sample counts, symmetry, and pixel inclusion and exclusion at crop boundaries. Both cover 8-bit and packed RAW10 input with two Bayer patterns. A llvmpipe setup runs the rendering check with surfaceless Mesa software rendering and treats an unavailable EGL display as a failure. The guide includes the build and test commands for CI runners. These tests exercise the rendering and statistics components. Camera capture, DMA-BUF transport, synchronization and request metadata need separate integration coverage. [1] https://patchwork.libcamera.org/project/libcamera/list/?series=6258 Thanks, Ray Ray Strode (7): tests: Separate unit and integration suites tests: Select unit and integration suites independently docs: Describe unit and integration test selection software-isp: Allow drawing into existing EGL textures tests: Validate rendered crops in the integration suite tests: Validate pixel statistics for the visible GPU crop docs: Describe software ISP integration testing Documentation/index.rst | 1 + Documentation/meson.build | 1 + Documentation/testing.rst | 88 +++++++ meson.build | 12 +- meson_options.txt | 12 +- src/ipa/meson.build | 6 +- src/libcamera/software_isp/debayer_egl.cpp | 25 +- src/libcamera/software_isp/debayer_egl.h | 3 + test/camera/meson.build | 6 +- test/controls/meson.build | 10 +- test/gstreamer/meson.build | 6 +- test/integration/meson.build | 3 + test/integration/software_isp/gpu-crop.cpp | 222 ++++++++++++++++++ test/integration/software_isp/gpu-stats.cpp | 208 ++++++++++++++++ test/integration/software_isp/meson.build | 29 +++ test/ipa/libipa/meson.build | 6 +- test/ipa/meson.build | 6 +- test/ipc/meson.build | 8 +- test/log/meson.build | 6 +- test/media_device/meson.build | 6 +- test/meson.build | 45 +++- test/process/meson.build | 6 +- test/py/meson.build | 6 +- .../generated_serializer/meson.build | 6 +- test/serialization/meson.build | 6 +- test/software_isp/meson.build | 4 +- test/stream/meson.build | 6 +- test/v4l2_compat/meson.build | 6 +- test/v4l2_subdevice/meson.build | 6 +- test/v4l2_videodevice/meson.build | 6 +- 30 files changed, 720 insertions(+), 41 deletions(-) create mode 100644 Documentation/testing.rst create mode 100644 test/integration/meson.build create mode 100644 test/integration/software_isp/gpu-crop.cpp create mode 100644 test/integration/software_isp/gpu-stats.cpp create mode 100644 test/integration/software_isp/meson.build base-commit: a92285e9c8f8d5aba24c6f72f49efc73074002e1 prerequisite-patch-id: 0d61bd9859ee3467227b46e4efe6e57af196a936 prerequisite-patch-id: b3c35fc8290ae5bbf07b94c3b7ecfe9c935b3b81 prerequisite-patch-id: 4ffb815e04da5a91649cce459957e4b958a52241 prerequisite-patch-id: 428d5ac131fc74e9290f8023c08e39b7b38574cc prerequisite-patch-id: c69c25c0fd6999abf23cec7d2f06e19ecde53d14 prerequisite-patch-id: 42fadde8a27a403757b7e7905c6506b950e22392 prerequisite-patch-id: f9034f957c59d9942b59ac6fcafc5170c4dca8e8 prerequisite-patch-id: a78fb89885d8f2ab927ba46ee0f154a4f81d8e4e prerequisite-patch-id: 7529c539479ef6110d882c2fba231e6ce9a0044e prerequisite-patch-id: 50d4c66d468591ccc351d53f56e1a660d22ac80a prerequisite-patch-id: 89101d95b5934715c5d325c8e23e9b3b99aa1903