[7/7] docs: Describe software ISP integration testing
diff mbox series

Message ID 20261016202916.1405813-8-halfline@gmail.com
State New
Headers show
Series
  • tests: Separate suites and check software ISP crops
Related show

Commit Message

Ray Strode Oct. 16, 2026, 8:29 p.m. UTC
From: Ray Strode <rstrode@redhat.com>

This commit documents the software ISP integration tests and the llvmpipe
setup for running them without camera or GPU hardware.

The guide describes the rendered-pixel and configured statistics checks,
their build dependencies and runtime skips, and the stricter
software-rendering setup. The software_isp component suite selects these
checks independently of the existing device integration tests.

Buffer import, synchronization, camera capture and completed-request
metadata remain outside the software ISP checks described here.

Signed-off-by: Ray Strode <rstrode@redhat.com>
---
 Documentation/testing.rst | 53 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

Patch
diff mbox series

diff --git a/Documentation/testing.rst b/Documentation/testing.rst
index 49c1f085..26c590ff 100644
--- a/Documentation/testing.rst
+++ b/Documentation/testing.rst
@@ -33,3 +33,56 @@  set ``-Dtest=false`` as well as enabling the desired group.
 Many integration tests need the kernel's vimc or vivid test devices.
 Integration builds automatically include the vimc pipeline handler and its
 IPA. Unit-only selection does not add that pipeline.
+
+Software ISP integration tests
+------------------------------
+
+The software ISP integration tests require the simple pipeline handler and
+EGL/GLES support. They generate their input in memory and require neither a
+camera nor DMA-BUF allocation or import support.
+
+.. code-block:: shell
+
+   meson setup build-integration -Dpipelines=simple -Dipas=softisp \
+       -Dsoftisp-gpu=enabled -Dtest-integration=true
+   ninja -C build-integration
+   meson test -C build-integration --suite integration --print-errorlogs
+
+``software-isp-gpu-crop`` renders synthetic Bayer frames through the software
+ISP's shader setup and texture drawing path. It checks centered horizontal
+and vertical stripes, then compares resized outputs with a centered crop of
+the native render. Cases cover 8-bit and packed RAW10 input with two Bayer
+patterns and four output sizes.
+
+``software-isp-gpu-stats`` configures the EGL backend and processes synthetic
+pixels with its CPU statistics engine. It checks sample counts, symmetry,
+and inclusion and exclusion of pixels at the configured crop boundaries.
+This test does not create a rendering context.
+
+These checks cover rendering and statistics selection. Buffer import,
+synchronization, camera capture and completed-request metadata require
+additional integration tests.
+
+The ``software_isp`` component suite selects these two checks separately
+from the other integration tests.
+
+Software rendering in CI
+------------------------
+
+Mesa's llvmpipe driver can run these tests without a GPU. The ``llvmpipe``
+Meson test setup selects surfaceless EGL and forces Mesa software rendering:
+
+.. code-block:: shell
+
+   meson test -C build-integration --suite software_isp --setup llvmpipe \
+       --print-errorlogs
+
+The runner needs Mesa EGL/GLES libraries and the llvmpipe driver. The crop
+test prints its GL renderer so CI logs identify the implementation in use.
+An unavailable EGL display is a failure with this setup, preventing missing
+rendering coverage from being reported as a successful skipped test.
+
+With the normal setup, an unavailable EGL display produces a test skip.
+Shader compilation, rendering, pixel comparisons and statistics mismatches
+are failures in either setup. The software ISP integration tests are not
+registered when the software ISP or its EGL backend is disabled at build time.