LinuxCommandLibrary

intel_upload_blit_large_map

Upload large bitmaps to Intel GPU

SYNOPSIS

intel_upload_blit_large_map [-h] [-s size] [-n iterations] [-t threads]

PARAMETERS

-h, --help
    Display usage summary and exit

-s SIZE, --size SIZE
    Buffer size in MiB (default: 512, max: 4096)

-n ITERS, --iterations ITERS
    Number of upload cycles (default: 100)

-t THREADS, --threads THREADS
    Concurrent test threads (default: 1)

-v, --verify
    Enable data integrity checks (default: on)

-l, --linear
    Use linear tiling instead of X/Y tiled

-d DEVICE, --device DEVICE
    DRM device path (default: auto-detect)

DESCRIPTION

intel_upload_blit_large_map is a low-level testing utility for Intel integrated graphics hardware, specifically targeting the i915 DRM driver. It exercises the GPU's blit engines (BCS - Blitter Copy Engine) to upload large memory-mapped buffers from system RAM to video RAM (VRAM), simulating high-bandwidth data transfers common in graphics workloads like texture staging or framebuffer copies.

The tool creates oversized buffers exceeding typical page sizes, maps them into user space, fills with test patterns, and performs tiled or linear blits to GPU aperture or GTT (Graphics Translation Table). It verifies data integrity post-upload by reading back via MMIO or userptr, detecting corruption, partial writes, or engine hangs. This stresses GPU memory management, context switching, and execbuf submission paths.

Primarily used by developers for regression testing kernel patches, Mesa drivers, or firmware updates. Run in a DRM-render node environment (e.g., /dev/dri/renderD128). Supports multi-threaded execution for concurrency testing. Failure modes include "GPU HANG", "CHECKSUM MISMATCH", or "OOM" under low memory conditions.

Ideal for CI/CD pipelines validating Intel Arc, Xe, or Gen graphics on Linux.

CAVEATS

Requires root or render group access; Intel i915 only; may trigger GPU hangs on faulty hardware; high memory/CPU usage; not for production systems.

EXAMPLE USAGE

./intel_upload_blit_large_map -s 1024 -n 50
Tests 1GiB buffers 50 times.

EXIT CODES

0: pass
1: runtime error
77: unsupported hardware
99: internal failure

HISTORY

Introduced in Intel Graphics Tester (IGT) v1.20 (2019) as part of GEM selftests for large buffer handling. Enhanced in kernel 5.4+ for XeHP support. Active in Intel's graphics QA since.

SEE ALSO

igt(1), drm_info(1), intel_reg_read(1), gem_exec_blt(1)

Copied to clipboard