xref: /aosp_15_r20/external/libyuv/docs/environment_variables.md (revision 4e366538070a3a6c5c163c31b791eab742e1657a)
1*4e366538SXin Li# Introduction
2*4e366538SXin Li
3*4e366538SXin LiFor test purposes, environment variables can be set to control libyuv behavior.  These should only be used for testing, to narrow down bugs or to test performance.
4*4e366538SXin Li
5*4e366538SXin Li# CPU
6*4e366538SXin Li
7*4e366538SXin LiBy default the cpu is detected and the most advanced form of SIMD is used.  But you can disable instruction sets selectively, or completely, falling back on C code.  Set the variable to 1 to disable the specified instruction set.
8*4e366538SXin Li
9*4e366538SXin Li## All CPUs
10*4e366538SXin Li    LIBYUV_DISABLE_ASM
11*4e366538SXin Li
12*4e366538SXin Li## Intel CPUs
13*4e366538SXin Li    LIBYUV_DISABLE_X86
14*4e366538SXin Li    LIBYUV_DISABLE_SSE2
15*4e366538SXin Li    LIBYUV_DISABLE_SSSE3
16*4e366538SXin Li    LIBYUV_DISABLE_SSE41
17*4e366538SXin Li    LIBYUV_DISABLE_SSE42
18*4e366538SXin Li    LIBYUV_DISABLE_AVX
19*4e366538SXin Li    LIBYUV_DISABLE_AVX2
20*4e366538SXin Li    LIBYUV_DISABLE_ERMS
21*4e366538SXin Li    LIBYUV_DISABLE_FMA3
22*4e366538SXin Li    LIBYUV_DISABLE_F16C
23*4e366538SXin Li    LIBYUV_DISABLE_AVX512BW
24*4e366538SXin Li    LIBYUV_DISABLE_AVX512VL
25*4e366538SXin Li    LIBYUV_DISABLE_AVX512VNNI
26*4e366538SXin Li    LIBYUV_DISABLE_AVX512VBMI
27*4e366538SXin Li    LIBYUV_DISABLE_AVX512VBMI2
28*4e366538SXin Li    LIBYUV_DISABLE_AVX512VBITALG
29*4e366538SXin Li    LIBYUV_DISABLE_AVX512VPOPCNTDQ
30*4e366538SXin Li    LIBYUV_DISABLE_GFNI
31*4e366538SXin Li
32*4e366538SXin Li## ARM CPUs
33*4e366538SXin Li
34*4e366538SXin Li    LIBYUV_DISABLE_NEON
35*4e366538SXin Li
36*4e366538SXin Li## MIPS CPUs
37*4e366538SXin Li    LIBYUV_DISABLE_MSA
38*4e366538SXin Li
39*4e366538SXin Li## LOONGARCH CPUs
40*4e366538SXin Li    LIBYUV_DISABLE_LSX
41*4e366538SXin Li    LIBYUV_DISABLE_LASX
42*4e366538SXin Li
43*4e366538SXin Li## RISCV CPUs
44*4e366538SXin Li    LIBYUV_DISABLE_RVV
45*4e366538SXin Li
46*4e366538SXin Li# Test Width/Height/Repeat
47*4e366538SXin Li
48*4e366538SXin LiThe unittests default to a small image (128x72) to run fast.  This can be set by environment variable to test a specific resolutions.
49*4e366538SXin LiYou can also repeat the test a specified number of iterations, allowing benchmarking and profiling.
50*4e366538SXin Li
51*4e366538SXin Li    set LIBYUV_WIDTH=1280
52*4e366538SXin Li    set LIBYUV_HEIGHT=720
53*4e366538SXin Li    set LIBYUV_REPEAT=999
54*4e366538SXin Li    set LIBYUV_FLAGS=-1
55*4e366538SXin Li    set LIBYUV_CPU_INFO=-1
56