# Shader permutations compiled at build time by scripts/hlslc.c into build/gen/gpu_shaders.h.
# name              file                entry             profile   [DEFINE[=value] ...]
vs_fullscreen       present.hlsl        vs_fullscreen     vs_5_0
ps_compose          present.hlsl        ps_compose        ps_5_0
ps_present          present.hlsl        ps_present        ps_5_0
cs_conformance      conformance.hlsl    cs_conformance    cs_5_0
ps_depth_write      conformance.hlsl    ps_depth_write    ps_5_0
ps_depth_test       conformance.hlsl    ps_depth_test     ps_5_0
cs_depth_read       conformance.hlsl    cs_depth_read     cs_5_0
# (P1) early-depth conformance: per-pixel points with conservative depth output, FF-style partial depth writes, the
# triangle bound on real Z planes
vs_conf_px          conformance.hlsl    vs_conf_px        vs_5_0
ps_depth_ff         conformance.hlsl    ps_depth_ff       ps_5_0
vs_conf_tri         conformance.hlsl    vs_conf_tri       vs_5_0
ps_conf_tri         conformance.hlsl    ps_conf_tri       ps_5_0

# submission benchmark (M2, gpu_exec.c): trivial shaders with the real bindings
vs_tri              submit.hlsl         vs_tri            vs_5_0
vs_sprite           submit.hlsl         vs_sprite         vs_5_0
vs_linepix          submit.hlsl         vs_linepix        vs_5_0
vs_quad             submit.hlsl         vs_quad           vs_5_0
ps_depth            submit.hlsl         ps_depth          ps_5_0
ps_flat             submit.hlsl         ps_flat           ps_5_0
cs_touch            submit.hlsl         cs_touch          cs_5_0
ps_rov_t0            submit.hlsl         ps_rov            ps_5_0    TEX=0
ps_rov_t1            submit.hlsl         ps_rov            ps_5_0    TEX=1
ps_rov_t2            submit.hlsl         ps_rov            ps_5_0    TEX=2
ps_ff_d0z0x0t0     submit.hlsl         ps_ff             ps_5_0    TEX=0
ps_ff_d0z0x0t1     submit.hlsl         ps_ff             ps_5_0    TEX=1
ps_ff_d0z0x0t2     submit.hlsl         ps_ff             ps_5_0    TEX=2
ps_ff_d0z0x1t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 DISCARD
ps_ff_d0z0x1t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 DISCARD
ps_ff_d0z0x1t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 DISCARD
ps_ff_d0z1x0t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 ZOUT
ps_ff_d0z1x0t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 ZOUT
ps_ff_d0z1x0t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 ZOUT
ps_ff_d0z1x1t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 ZOUT DISCARD
ps_ff_d0z1x1t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 ZOUT DISCARD
ps_ff_d0z1x1t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 ZOUT DISCARD
ps_ff_d1z0x0t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 DUAL
ps_ff_d1z0x0t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 DUAL
ps_ff_d1z0x0t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 DUAL
ps_ff_d1z0x1t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 DUAL DISCARD
ps_ff_d1z0x1t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 DUAL DISCARD
ps_ff_d1z0x1t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 DUAL DISCARD
ps_ff_d1z1x0t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 DUAL ZOUT
ps_ff_d1z1x0t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 DUAL ZOUT
ps_ff_d1z1x0t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 DUAL ZOUT
ps_ff_d1z1x1t0     submit.hlsl         ps_ff             ps_5_0    TEX=0 DUAL ZOUT DISCARD
ps_ff_d1z1x1t1     submit.hlsl         ps_ff             ps_5_0    TEX=1 DUAL ZOUT DISCARD
ps_ff_d1z1x1t2     submit.hlsl         ps_ff             ps_5_0    TEX=2 DUAL ZOUT DISCARD

# REF tier (M3, gpu_exec.c): the GS pixel pipeline on ROV, memory <-> target compute
vs_ref_tri          gs.hlsl             vs_ref_tri        vs_5_0
vs_ref_sprite       gs.hlsl             vs_ref_sprite     vs_5_0
vs_ref_linepix      gs.hlsl             vs_ref_linepix    vs_5_0
ps_gs_tri           gs.hlsl             ps_gs             ps_5_0    PRIM=0
ps_gs_sprite        gs.hlsl             ps_gs             ps_5_0    PRIM=1
ps_gs_linepix       gs.hlsl             ps_gs             ps_5_0    PRIM=2
ps_gs_tri_fast      gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u
cs_patch            mem.hlsl            cs_patch          cs_5_0
cs_load             mem.hlsl            cs_load           cs_5_0
cs_download         mem.hlsl            cs_download       cs_5_0
cs_clear            mem.hlsl            cs_clear          cs_5_0

# M4: ALIAS16 runs (16-bit frames over C32 targets: staging gather / scatter)
cs_a16_gather       alias16.hlsl        cs_a16_gather     cs_5_0
cs_a16_scatter      alias16.hlsl        cs_a16_scatter    cs_5_0
# perf-p2: ALIAS16 copy runs (the channel shuffles) written straight into the target, no staging / ROV draws
cs_a16_copy         alias16.hlsl        cs_a16_copy       cs_5_0
cs_xcopy            mem.hlsl            cs_xcopy          cs_5_0
# M5: FF tier (gs.hlsl ps_ff: the REF fragment pipeline + output-merger blend/depth) and the mixed-frame depth sync
vs_ff_tri           gs.hlsl             vs_ff_tri         vs_5_0
ps_ff_t000       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=0 STQ_FAST=0 TRI_REC=256u
ps_ff_t001       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u
ps_ff_t010       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=1 STQ_FAST=0 TRI_REC=256u
ps_ff_t011       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=1 STQ_FAST=1 TRI_REC=128u
ps_ff_t100       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=0 STQ_FAST=0 TRI_REC=256u
ps_ff_t101       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u
ps_ff_t110       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=1 STQ_FAST=0 TRI_REC=256u
ps_ff_t111       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=1 STQ_FAST=1 TRI_REC=128u
ps_ff_s00        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=0
ps_ff_s01        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=1
ps_ff_s10        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=0
ps_ff_s11        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=1
ps_ff_l00        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=0
ps_ff_l01        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=1
ps_ff_l10        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=0
ps_ff_l11        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=1
# perf-p2: specialised FF pixel shaders (gs.hlsl SPEC_*: no target views, no general LOD) for draws whose primitives use
# neither (gpu_fop_draw.feat); the ubershaders above stay the fallback
ps_ff_t001s      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t011s      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t101s      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t111s      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
# (r2-m7b) the same with level 0 from the decoded texture cache (gpu_exec.c texdec, StateRec pad2[0])
ps_ff_t001d      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
ps_ff_t011d      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
ps_ff_t101d      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
ps_ff_t111d      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
cs_texdec        gs.hlsl             cs_texdec         cs_5_0    FF=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 TEXDEC_CS=1
cs_texdec_r2     gs.hlsl             cs_texdec         cs_5_0    FF=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 TEXDEC_CS=1 R2_CLUT=1
ps_ff_s00s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=0 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s01s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s10s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=0 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s11s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l00s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=0 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l01s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l10s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=0 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l11s       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
# perf-p2: untextured FF draws (gs.hlsl SPEC_NOTEX: GPU_DF_TEX clear)
ps_ff_t001n      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t011n      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=0 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t101n      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_t111n      gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=0 DUAL=1 ZOUT=1 STQ_FAST=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
# (r2-m6, R6) the native particle pipeline (gpu_front.c GPU_DF_PART): hardware-interpolated colour / fog / Z, FF output stage
vs_ff_part        gs.hlsl             vs_ff_part        vs_5_0    FF=1 PRIM=0 PART=1 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_p0          gs.hlsl             ps_ff_part        ps_5_0    FF=1 PRIM=0 PART=1 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_p1          gs.hlsl             ps_ff_part        ps_5_0    FF=1 PRIM=0 PART=1 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_ff_p0d         gs.hlsl             ps_ff_part        ps_5_0    FF=1 PRIM=0 PART=1 DUAL=0 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
ps_ff_p1d         gs.hlsl             ps_ff_part        ps_5_0    FF=1 PRIM=0 PART=1 DUAL=1 ZOUT=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 TEXDEC=1
ps_ff_s00n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=0 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s01n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s10n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=0 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_s11n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l00n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=0 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l01n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=0 ZOUT=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l10n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=0 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_ff_l11n       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=2 DUAL=1 ZOUT=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
vs_zquad            zsync.hlsl          vs_zquad          vs_5_0
ps_zresolve         zsync.hlsl          ps_zresolve       ps_5_0
cs_zsync            zsync.hlsl          cs_zsync          cs_5_0
# M6: the PCRTC on the GPU (picture compose + field deinterlacer, gpu_present.c)
cs_compose          display.hlsl        cs_compose        cs_5_0
cs_deint            display.hlsl        cs_deint          cs_5_0
# M7: resolution scaling (target rescale on a factor change)
cs_rescale          rescale.hlsl        cs_rescale        cs_5_0
ps_resample         present.hlsl        ps_resample       ps_5_0
# M7: thin analytic outlines (gpu_rec_thin): REF/ROV and FF pixel shaders
vs_ref_thin         gs.hlsl             vs_ref_thin       vs_5_0
ps_gs_thin          gs.hlsl             ps_gs             ps_5_0    PRIM=3
ps_ff_n00        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=3 DUAL=0 ZOUT=0
ps_ff_n01        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=3 DUAL=0 ZOUT=1
ps_ff_n10        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=3 DUAL=1 ZOUT=0
ps_ff_n11        gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=3 DUAL=1 ZOUT=1
# M11: the ROV-tier pixel shaders with plain UAVs, for GPUs without rasterizer-ordered views (gf_cfg.no_rov: draws of
# primitives with disjoint rectangles only)
ps_gs_tri_nr        gs.hlsl             ps_gs             ps_5_0    PRIM=0 NOROV=1
ps_gs_sprite_nr     gs.hlsl             ps_gs             ps_5_0    PRIM=1 NOROV=1
ps_gs_linepix_nr    gs.hlsl             ps_gs             ps_5_0    PRIM=2 NOROV=1
ps_gs_tri_fast_nr   gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u NOROV=1
ps_gs_thin_nr       gs.hlsl             ps_gs             ps_5_0    PRIM=3 NOROV=1
# perf-p2: ROV-tier permutations for draws without views / LOD (_s) and untextured draws (_n), with and without ROVs
ps_gs_tri_fast_s    gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_gs_tri_fast_n    gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_gs_tri_fast_s_nr gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u NOROV=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
ps_gs_tri_fast_n_nr gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u NOROV=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1
# (r2-m7) native post passes of modern frames (gpu_exec.c exec_npost: shadow darken, motion blur)
cs_npost            post.hlsl           cs_npost          cs_5_0
cs_svol_resolve     post.hlsl           cs_svol_resolve   cs_5_0
# (r2-m7b) the shadow pipeline's tail fused: counter resolve, the copy run's shuffles, the darken (gpu_exec.c shfuse)
cs_shfuse           post.hlsl           cs_shfuse         cs_5_0
# (r2-m7) shadow volumes in modern frames (GPU_DF_SVOL): commutative G adds, a compare-exchange on a plain UAV
ps_gs_tri_svol      gs.hlsl             ps_gs             ps_5_0    PRIM=0 STQ_FAST=1 TRI_REC=128u NOROV=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1 DC_VTX=1 SVOL=1
ps_gs_sprite_s      gs.hlsl             ps_gs             ps_5_0    PRIM=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_sprite_n      gs.hlsl             ps_gs             ps_5_0    PRIM=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_sprite_s_nr   gs.hlsl             ps_gs             ps_5_0    PRIM=1 NOROV=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_sprite_n_nr   gs.hlsl             ps_gs             ps_5_0    PRIM=1 NOROV=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_linepix_s     gs.hlsl             ps_gs             ps_5_0    PRIM=2 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_linepix_n     gs.hlsl             ps_gs             ps_5_0    PRIM=2 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_linepix_s_nr  gs.hlsl             ps_gs             ps_5_0    PRIM=2 NOROV=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
ps_gs_linepix_n_nr  gs.hlsl             ps_gs             ps_5_0    PRIM=2 NOROV=1 SPEC_NOTEX=1 SPEC_NOVIEW=1 SPEC_NOLOD=1
# perf-p2: sprites whose textures are all target views read 1:1 (the post passes: shadow darken, motion blur): no vram
# texture paths, no view_hires, no LOD (SPEC_VIEWONLY SPEC_NOHIRES)
ps_ff_s00w       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=0 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1
ps_ff_s01w       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=0 ZOUT=1 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1
ps_ff_s10w       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=0 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1
ps_ff_s11w       gs.hlsl             ps_ff             ps_5_0    FF=1 PRIM=1 DUAL=1 ZOUT=1 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1
ps_gs_sprite_w      gs.hlsl             ps_gs             ps_5_0    PRIM=1 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1
ps_gs_sprite_w_nr   gs.hlsl             ps_gs             ps_5_0    PRIM=1 NOROV=1 SPEC_VIEWONLY=1 SPEC_NOHIRES=1 SPEC_NOLOD=1

# (r2-m1) the modern renderer's Original materials (runtime/r2/r2_render.c, shaders/r2.hlsl)
vs_r2               r2.hlsl             r2_vs             vs_5_0
gs_r2               r2.hlsl             r2_gs             gs_5_0
ps_r2_dual          r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1
ps_r2_iz_dual       r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0
ps_r2_nd            r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_NODISCARD=1
# (r2-m2) meshes crossing the VU's guard band: per triangle VU-exact or GPU-clipped (r2_gs_clip)
vs_r2_clip          r2.hlsl             r2_vs_clip        vs_5_0    R2_CLIP=1
gs_r2_clip          r2.hlsl             r2_gs_clip        gs_5_0    R2_CLIP=1
ps_r2_clip          r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_CLIP=1
# (r2-m8, R8) the modern renderer on the modern frame's surfaces: hardware Z, alpha-to-coverage with MSAA
vs_r2m              r2.hlsl             r2_vs             vs_5_0    R2_MFT=1
ps_r2m              r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1
ps_r2m_nd           r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1
ps_r2m_a2c          r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1
# (mft-pop) meshes crossing the guard band on the modern frame's surfaces: the triangles inside it (r2_gs_clip)
vs_r2m_clip         r2.hlsl             r2_vs_clip        vs_5_0    R2_MFT=1 R2_CLIP=1
gs_r2m_clip         r2.hlsl             r2_gs_clip        gs_5_0    R2_MFT=1 R2_CLIP=1
ps_r2m_clip         r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1
ps_r2m_clip_nd      r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1
ps_r2m_clip_a2c     r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1
vs_r2m_mv           r2.hlsl             r2_vs_mv          vs_5_0    R2_MFT=1 R2_MV=1
# (r8-perf) the merged draws of the segment's plan: vertices pulled by the draw record of each instance
vs_r2m_pull         r2.hlsl             r2_vs_pull        vs_5_0    R2_MFT=1 R2_PULL=1
ps_r2m_mv           r2.hlsl             r2_ps_mv          ps_5_0    R2_MFT=1 R2_MV=1
# (r2-m8, R8) modern frame targets (gpu_exec_mft.h): the exact draws of a modern frame at any resolution with MSAA
vs_mft_tri          mft.hlsl            vs_mft_tri        vs_5_0    PRIM=0 TRI_REC=128u
ps_mft_t0f          mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=128u SPEC_NOLOD=1
ps_mft_t0fl         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=128u
ps_mft_t0fn         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_t0s          mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=256u SPEC_NOLOD=1
ps_mft_t0sl         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=256u
ps_mft_t0sn         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=256u SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_t0fd         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=128u SPEC_NOLOD=1 TEXDEC=1
ps_mft_s0           mft.hlsl            ps_mft_q          ps_5_0    PRIM=1 DUAL=0
ps_mft_s0n          mft.hlsl            ps_mft_q          ps_5_0    PRIM=1 DUAL=0 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_l0           mft.hlsl            ps_mft_q          ps_5_0    PRIM=2 DUAL=0
ps_mft_l0n          mft.hlsl            ps_mft_q          ps_5_0    PRIM=2 DUAL=0 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_t1f          mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=128u SPEC_NOLOD=1
ps_mft_t1fl         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=128u
ps_mft_t1fn         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=128u SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_t1s          mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=256u SPEC_NOLOD=1
ps_mft_t1sl         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=256u
ps_mft_t1sn         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=256u SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_t1fd         mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=128u SPEC_NOLOD=1 TEXDEC=1
ps_mft_s1           mft.hlsl            ps_mft_q          ps_5_0    PRIM=1 DUAL=1
ps_mft_s1n          mft.hlsl            ps_mft_q          ps_5_0    PRIM=1 DUAL=1 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_l1           mft.hlsl            ps_mft_q          ps_5_0    PRIM=2 DUAL=1
ps_mft_l1n          mft.hlsl            ps_mft_q          ps_5_0    PRIM=2 DUAL=1 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_svol_f1      mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=128u MS=1 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_svol_f0      mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=128u MS=0 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_svol_s1      mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=256u MS=1 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_svol_s0      mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=256u MS=0 SPEC_NOTEX=1 SPEC_NOLOD=1
ps_mft_svol_fl1     mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=128u MS=1 SPEC_NOTEX=1 SPEC_NOLOD=1 SVOL_LITE=1
ps_mft_svol_fl0     mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=128u MS=0 SPEC_NOTEX=1 SPEC_NOLOD=1 SVOL_LITE=1
ps_mft_svol_sl1     mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=256u MS=1 SPEC_NOTEX=1 SPEC_NOLOD=1 SVOL_LITE=1
ps_mft_svol_sl0     mft.hlsl            ps_mft_svol       ps_5_0    PRIM=0 TRI_REC=256u MS=0 SPEC_NOTEX=1 SPEC_NOLOD=1 SVOL_LITE=1
vs_mft_sprite       mft.hlsl            vs_mft_sprite     vs_5_0    PRIM=1
vs_mft_linepix      mft.hlsl            vs_mft_linepix    vs_5_0    PRIM=2
vs_mft_linepix_m    mft.hlsl            vs_mft_linepix_m  vs_5_0    PRIM=2
vs_mft_thin         mft.hlsl            vs_mft_thin       vs_5_0    PRIM=3
ps_mft_n0           mft.hlsl            ps_mft_thin       ps_5_0    PRIM=3 DUAL=0
ps_mft_n1           mft.hlsl            ps_mft_thin       ps_5_0    PRIM=3 DUAL=1
vs_mft_quad         mft.hlsl            vs_mft_quad       vs_5_0    PRIM=9
ps_mft_fill         mft.hlsl            ps_mft_fill       ps_5_0    PRIM=9
ps_mft_zfill        mft.hlsl            ps_mft_zfill      ps_5_0    PRIM=9
ps_mft_copy         mft.hlsl            ps_mft_copy       ps_5_0    PRIM=9
ps_mft_upscale      mft.hlsl            ps_mft_upscale    ps_5_0    PRIM=9
ps_mft_mvview       mft.hlsl            ps_mft_mvview     ps_5_0    PRIM=9
ps_mft_zfrom        mft.hlsl            ps_mft_zfrom      ps_5_0    PRIM=9
ps_mft_zto1         mft.hlsl            ps_mft_zto        ps_5_0    PRIM=9 MS=1
ps_mft_zto0         mft.hlsl            ps_mft_zto        ps_5_0    PRIM=9 MS=0
ps_mft_shfuse1      mft.hlsl            ps_mft_shfuse     ps_5_0    PRIM=9 MS=1
ps_mft_shfuse0      mft.hlsl            ps_mft_shfuse     ps_5_0    PRIM=9 MS=0
ps_mft_shfuse_px    mft.hlsl            ps_mft_shfuse_px  ps_5_0    PRIM=9 MS=1
# (light) Enhanced lighting: the same with soft shadow edges (gpu_light.h)
ps_mft_shfuse1_s    mft.hlsl            ps_mft_shfuse     ps_5_0    PRIM=9 MS=1 SOFT=1
ps_mft_shfuse0_s    mft.hlsl            ps_mft_shfuse     ps_5_0    PRIM=9 MS=0 SOFT=1
ps_mft_shfuse_px_s  mft.hlsl            ps_mft_shfuse_px  ps_5_0    PRIM=9 MS=1 SOFT=1
ps_mft_date1        mft.hlsl            ps_mft_date       ps_5_0    PRIM=9 MS=1
ps_mft_date0        mft.hlsl            ps_mft_date       ps_5_0    PRIM=9 MS=0
# (r8-perf, diagnostics) PS2_R8P_VERIFY: two results of one step compared per sample
cs_mft_cmp          mft.hlsl            cs_mft_cmp        cs_5_0    PRIM=9 MS=1
# (r2-m1) its conformance kernels (tests/unit/r2)
vs_r2c              r2_conf.hlsl        r2c_vs            vs_5_0
ps_r2c_vu           r2_conf.hlsl        r2c_vu_ps         ps_5_0
ps_r2c_div          r2_conf.hlsl        r2c_div_ps        ps_5_0
# (light) Enhanced lighting of modern frames (gpu_light.h): ambient occlusion and bloom at the resolve point
vs_light            light.hlsl          vs_light          vs_5_0
ps_light_lin0       light.hlsl          ps_light_lin      ps_5_0    MS=0
ps_light_lin1       light.hlsl          ps_light_lin      ps_5_0    MS=1
ps_light_ao         light.hlsl          ps_light_ao       ps_5_0
ps_light_blur       light.hlsl          ps_light_blur     ps_5_0
ps_light_bright     light.hlsl          ps_light_bright   ps_5_0
ps_light_down       light.hlsl          ps_light_down     ps_5_0
ps_light_up         light.hlsl          ps_light_up       ps_5_0
ps_light_comp0      light.hlsl          ps_light_comp     ps_5_0    MS=0
ps_light_comp1      light.hlsl          ps_light_comp     ps_5_0    MS=1
# (reimagine) Look = Reimagined (gpu_reim.h): screen-space shadows, bloom + halos, shafts, fog, the grade
ps_reim_shadow      light.hlsl          ps_reim_shadow    ps_5_0    REIM=1
ps_reim_blur2       light.hlsl          ps_reim_blur2     ps_5_0    REIM=1
ps_reim_shtaa       light.hlsl          ps_reim_shtaa     ps_5_0    REIM=1
ps_reim_sccopy      light.hlsl          ps_reim_sccopy    ps_5_0    REIM=1
ps_reim_bright      light.hlsl          ps_reim_bright    ps_5_0    REIM=1
ps_reim_up          light.hlsl          ps_reim_up        ps_5_0    REIM=1
ps_reim_stats       light.hlsl          ps_reim_stats     ps_5_0    REIM=1
ps_reim_shafts      light.hlsl          ps_reim_shafts    ps_5_0    REIM=1
ps_reim_comp0       light.hlsl          ps_reim_comp      ps_5_0    MS=0 REIM=1
ps_reim_comp1       light.hlsl          ps_reim_comp      ps_5_0    MS=1 REIM=1
# (reimagine) the key light's shadow map: the frame's R2 draws as casters (r2.hlsl R2_SHADOW)
vs_r2m_sh           r2.hlsl             r2_vs_shadow      vs_5_0    R2_MFT=1 R2_SHADOW=1
ps_r2m_sh           r2.hlsl             r2_ps_shadow      ps_5_0    R2_MFT=1 R2_SHADOW=1
# (reimagine2) cut-out casters (alpha-tested draws: leaves, fronds): the material's texture alpha
vs_r2m_sha          r2.hlsl             r2_vs_shadow_at   vs_5_0    R2_MFT=1 R2_SHADOW=1
ps_r2m_sha          r2.hlsl             r2_ps_shadow_at   ps_5_0    R2_MFT=1 R2_SHADOW=1
# (reimagine) the R2 pipelines' pixel shaders under Reimagined (R2_ENH=2: specular, rim, the per-pixel normal hook)
ps_r2m_e_r          r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ENH=2
ps_r2m_nd_e_r       r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ENH=2
ps_r2m_a2c_e_r      r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ENH=2
ps_r2m_clip_e_r     r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ENH=2
ps_r2m_clip_nd_e_r  r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ENH=2
ps_r2m_clip_a2c_e_r r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ENH=2
ps_r2m_e_t_r        r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
ps_r2m_nd_e_t_r     r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
ps_r2m_a2c_e_t_r    r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_e_t_r   r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_nd_e_t_r r2.hlsl            r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_a2c_e_t_r r2.hlsl           r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ENH=2 R2_ETEX=1 R2_REIM=1
# (reimagine) the prelit meshes' Enhanced textures pipelines under Reimagined: surface-map relief + cavity (R2_REIM)
ps_r2m_t_rm         r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ETEX=1 R2_REIM=1
ps_r2m_nd_t_rm      r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ETEX=1 R2_REIM=1
ps_r2m_a2c_t_rm     r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_t_rm    r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_nd_t_rm r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ETEX=1 R2_REIM=1
ps_r2m_clip_a2c_t_rm r2.hlsl            r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ETEX=1 R2_REIM=1
# (light) Enhanced lighting: the modern frame's R2 pipelines with lit sub-batches lit per pixel (R2_ENH; r2_render.c epipe*)
vs_r2m_e            r2.hlsl             r2_vs             vs_5_0    R2_MFT=1 R2_ENH=1
ps_r2m_e            r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ENH=1
ps_r2m_nd_e         r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ENH=1
ps_r2m_a2c_e        r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ENH=1
vs_r2m_clip_e       r2.hlsl             r2_vs_clip        vs_5_0    R2_MFT=1 R2_CLIP=1 R2_ENH=1
gs_r2m_clip_e       r2.hlsl             r2_gs_clip        gs_5_0    R2_MFT=1 R2_CLIP=1 R2_ENH=1
ps_r2m_clip_e       r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ENH=1
ps_r2m_clip_nd_e    r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ENH=1
ps_r2m_clip_a2c_e   r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ENH=1
vs_r2m_pull_e       r2.hlsl             r2_vs_pull        vs_5_0    R2_MFT=1 R2_PULL=1 R2_ENH=1
# (tex) Enhanced textures: the modern frame's R2 pixel shaders with enhanced images (R2_ETEX; r2_render.c tpipe), with and
# without Enhanced lighting, the phase-A exact triangles from the decoded cache (ETEX), and the compute passes (tex.hlsl)
ps_r2m_t            r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ETEX=1
ps_r2m_nd_t         r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ETEX=1
ps_r2m_a2c_t        r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ETEX=1
ps_r2m_clip_t       r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ETEX=1
ps_r2m_clip_nd_t    r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ETEX=1
ps_r2m_clip_a2c_t   r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ETEX=1
ps_r2m_e_t          r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_ENH=1 R2_ETEX=1
ps_r2m_nd_e_t       r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_NODISCARD=1 R2_ENH=1 R2_ETEX=1
ps_r2m_a2c_e_t      r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_A2C=1 R2_ENH=1 R2_ETEX=1
ps_r2m_clip_e_t     r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_ENH=1 R2_ETEX=1
ps_r2m_clip_nd_e_t  r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_NODISCARD=1 R2_ENH=1 R2_ETEX=1
ps_r2m_clip_a2c_e_t r2.hlsl             r2_ps             ps_5_0    R2_DUAL=1 R2_ZREC=0 R2_MFT=1 R2_CLIP=1 R2_A2C=1 R2_ENH=1 R2_ETEX=1
ps_mft_t0fd_t       mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=0 TRI_REC=128u SPEC_NOLOD=1 TEXDEC=1 ETEX=1
ps_mft_t1fd_t       mft.hlsl            ps_mft_tri        ps_5_0    PRIM=0 DUAL=1 TRI_REC=128u SPEC_NOLOD=1 TEXDEC=1 ETEX=1
cs_et_up            tex.hlsl            cs_et_up          cs_5_0
cs_et_mip           tex.hlsl            cs_et_mip         cs_5_0
cs_et_cov           tex.hlsl            cs_et_cov         cs_5_0
cs_et_store         tex.hlsl            cs_et_store       cs_5_0
cs_et_hash          tex.hlsl            cs_et_hash        cs_5_0
cs_et_dd            tex.hlsl            cs_et_dd          cs_5_0
# (ai) Reimagined textures (runtime/gpu/gpu_tex_ai.h, notes/reimagined.md): the Real-ESRGAN layer kernel per buffer
# combination ai_up.c's plan uses (name = its key: in | out << 4 | r1 << 8 | r2 << 12 | o2 << 16, 8 = none), the tiles'
# finish (crop, alpha, grain) and the surface maps of the lighting (gpu_tex_normals.h)
cs_ai_38810         ai_up.hlsl          cs_conv           cs_5_0    BIN=U0 BOUT=U1 BO2=U3
cs_ai_88833         ai_up.hlsl          cs_conv           cs_5_0    BIN=U3 BOUT=U3
cs_ai_88844         ai_up.hlsl          cs_conv           cs_5_0    BIN=U4 BOUT=U4
cs_ai_88343         ai_up.hlsl          cs_conv           cs_5_0    BIN=U3 BOUT=U4 BR1=U3
cs_ai_88434         ai_up.hlsl          cs_conv           cs_5_0    BIN=U4 BOUT=U3 BR1=U4
cs_ai_21343         ai_up.hlsl          cs_conv           cs_5_0    BIN=U3 BOUT=U4 BR1=U3 BR2=U1 BO2=U2
cs_ai_22343         ai_up.hlsl          cs_conv           cs_5_0    BIN=U3 BOUT=U4 BR1=U3 BR2=U2 BO2=U2
cs_ai_22434         ai_up.hlsl          cs_conv           cs_5_0    BIN=U4 BOUT=U3 BR1=U4 BR2=U2 BO2=U2
cs_ai_88114         ai_up.hlsl          cs_conv           cs_5_0    BIN=U4 BOUT=U1 BR1=U1
cs_ai_88113         ai_up.hlsl          cs_conv           cs_5_0    BIN=U3 BOUT=U1 BR1=U1
cs_ai_88851         ai_up.hlsl          cs_conv           cs_5_0    BIN=U1 BOUT=U5
cs_ai_88865         ai_up.hlsl          cs_conv           cs_5_0    BIN=U5 BOUT=U6
cs_ai_88856         ai_up.hlsl          cs_conv           cs_5_0    BIN=U6 BOUT=U5
cs_ai_88875         ai_up.hlsl          cs_conv           cs_5_0    BIN=U5 BOUT=U7
cs_ai_post          tex_ai.hlsl         cs_ai_post        cs_5_0
cs_ai_res           tex_ai.hlsl         cs_ai_res         cs_5_0
cs_etn              tex_ai.hlsl         cs_etn            cs_5_0
