# kind: rules  The coarse change → usage map of scripts/regress.py impact (dm/tools/usage.py): which rows of a game's usage manifest (dm/games/<id>/usage.tsv) a change can reach.
# Columns: file glob[:function regex] <TAB> usage pattern <TAB> why
#   A rule with a function regex applies to the changed functions it matches (the function around each changed hunk); the file's rules without one apply to the other changed
#   lines of that file. A rule whose why starts with "fallback" applies only when no other rule of the range matched (a translator binary that changed with its sources).
#   Usage pattern: <kind>:<name glob> (kind * = any; *:* = every game with a manifest), "-" = no game (tests, docs), "profile" = the game whose profile folder it is.
#   Host code is also followed through its callers to the NVN entry points and HLE functions that reach it (usage.py host_graph); these rules add what a call graph cannot see
#   A pattern that every game of an API matches (*:*, api:*, shader:stage:*, svc:*, hle:*, present:*) is broad: the report lists the games it reaches apart from those a
#   narrower row reaches.
#   (the replay runs on its own threads, the prepare step at the first submission, the chain offline). test_usage.py checks that every glob matches a file of the repository.
docs/*	-	documentation
*.md	-	documentation
dm/tools/tests/*	-	tool tests
dm/gfx/tests/*	-	graphics tests
dm/host/tests/*	-	host tests
dm/gfx/tex/tests/*	-	CPU texture tests
dm/sanitizers/*	-	test sanitizer configuration
dm/ios/tests/*	-	iOS tests
.github/*	-	CI
dm/games/*/README.md	-	a game's note
dm/games/*/smoke.tsv	-	a harness route
dm/games/*/bench.tsv	-	a benchmark route
dm/games/*/usage.tsv	-	a usage manifest
dm/games/*	profile	one game's profile
scripts/build_ipa_from_nsp.py	*:*	packing: every game's build
scripts/pack_nup.py	*:*	NUP packing: games built from NUP containers
scripts/bench.py	-	the benchmark
scripts/push_romfs.sh	*:*	RomFS transfer: every game's iOS build
scripts/regress.py	-	the regression harness
dm/tools/usage.py	-	the usage manifests
dm/tools/il2cpp_sym.py	-	read-only IL2CPP address analysis; not part of a game build or the host
dm/tools/impact_map.tsv	-	this map
dm/tools/lint_python_baseline.tsv	-	the lint baseline
dm/gfx/hle_nv.c	hle:_ZN2nv*	graphics-library lifecycle and memory-query exports
dm/gfx/nvn/*	api:nvn	NVN on Metal: every NVN game
dm/gfx/msl/*	*:*	the host's own Metal shaders (clears, copies, the present, the GPU deswizzle, the OpenGL clear quad): every game
dm/gfx/tools/host_msl.py	*:*	builds the host's own Metal shaders into the host: every game
dm/gfx/nvn/dmsh_chain.h	shader:stage:*	the chain version: every game's NVN shader libraries
dm/gfx/nvn/dmsh_abi.h	shader:stage:*	the shader library ABI (driver segment layout, binding kinds): every game's NVN shader libraries and their replay
dm/gfx/nvn/nvn_mtl.m:atomic|imga	shader:image_atomic*	image atomics on Metal
dm/gfx/nvn/nvn_mtl.m:warm_|prepare|prebuild|front_progress	present:pipeline_prepare	the prepare step and the prebuild before the first frame
dm/gfx/nvn/nvn_mtl.m:pso_arch|arch_|pso_bundle	present:pipeline_archive	the pipeline archive
dm/gfx/nvn/nvn_mtl.m:^tf_|xfb	shader:transform_feedback	transform feedback
dm/gfx/nvn/nvn_mtl.m:^geo_|^gs_	shader:stage:gs	geometry shaders
dm/gfx/nvn/nvn_mtl.m:^lo_|^lop_	nvn:nvnColorStateSetLogicOp	logic operations
dm/gfx/nvn/nvn_mtl.m:prog_swrites|swrite_note	nvn:nvnCommandBufferBarrier	ordering barriers and shader writes in a draw pass
dm/gfx/nvn/nvn_mtl.m:^at_|^atest_	nvn:nvnColorStateSetAlphaTest	the alpha test
dm/gfx/nvn/nvn_mtl.m:pull_|hybrid	shader:pulling_vertex_inputs	pulling vertex inputs and the hybrid pipelines
dm/gfx/nvn/nvn_mtl.m:fb_snap|fetch	shader:readable_tile	readable tiles and feedback snapshots
dm/gfx/nvn/nvn_mtl.m:tbuf	shader:texture_buffer	texture buffers
dm/gfx/nvn/nvn_mtl.m:mdi_|mdx_	nvn:nvnCommandBufferMultiDraw*	indirect multi-draws
dm/gfx/nvn/nvn_mtl.m:present|snap|metalfx|upscale	present:*	the present path
dm/gfx/tex/*	api:*	texture layouts: every game
dm/gfx/vk/*	api:vulkan	Vulkan on Metal
dm/gfx/gl/*	api:gl	OpenGL on Metal
dm/gfx/tools/dmsh_atomic.py	shader:image_atomic*	image atomics in the MSL
dm/gfx/tools/dmsh_wide.py	shader:stage:*	storage buffer reads in the MSL: every NVN game
dm/gfx/tools/dmsh_build.py:vs_tf|tf_layout	shader:transform_feedback	transform feedback capture
dm/gfx/tools/dmsh_build.py:gs_slice|geometry_finish|vs_layer|_ep_drop	shader:stage:gs	geometry shaders
dm/gfx/tools/dmsh_build.py:vs_layer|vs_layer_entry	shader:layer_output	layer output
dm/gfx/tools/dmsh_build.py:fs_uint	shader:integer_outputs	integer fragment outputs
dm/gfx/tools/dmsh_build.py:int_inputs|vin_finish	shader:integer_vertex_inputs	integer vertex inputs
dm/gfx/tools/dmsh_build.py:pull_finish	shader:pulling_vertex_inputs	pulling vertex inputs
dm/gfx/tools/dmsh_build.py:fetch_finish|bf_	shader:readable_tile	readable tiles
dm/gfx/tools/dmsh_build.py:vs_pad	shader:vs_pad	padded vertex outputs
dm/gfx/tools/dmsh_build.py:drv_reads|unfillable|DRV_FILL	shader:driver_read_*	driver constant segments
dm/gfx/tools/dmsh_build.py:spv_single_lane|SG_	shader:simd	subgroup operations
dm/gfx/tools/dmsh_build.py:vertex_ab	shader:stage:vs	VertexA / VertexB programs
dm/gfx/tools/dmsh_build.py:reflect|decode_	shader:stage:*	the reflection every shader's bindings come from
dm/gfx/tools/dmsh_build.py	shader:stage:*	the shader build: every NVN game
dm/gfx/tools/dmsh_vin.py	shader:integer_vertex_inputs	integer vertex inputs
dm/gfx/tools/dmsh_pull.*	shader:pulling_vertex_inputs	pulling vertex inputs
dm/gfx/tools/dmsh_fetch.py	shader:readable_tile	readable tiles
dm/gfx/tools/dmsh_alpha.py	nvn:nvnColorStateSetAlphaTest	the alpha test entry points
dm/gfx/tools/dmsh_logic.py	nvn:nvnColorStateSetLogicOp	the logic operation entry points
dm/gfx/tools/dmsh_geometry.py	shader:stage:gs	geometry shaders
dm/gfx/tools/dmsh_facts.py	shader:stage:*	the translator's answer table
dm/gfx/tools/dmsh_chain.*	shader:stage:*	the chain version: every NVN game's libraries are rebuilt
dm/gfx/tools/dmsh_abi.py	shader:stage:*	the reader of the shader library ABI: every NVN game's libraries
dm/gfx/tools/dmsh_mtlcache.py	shader:stage:*	the Metal compile cache
dm/gfx/tools/own_compilers.py	shader:stage:*	the tested-compiler build guard
dm/gfx/tools/tool_lock.py	shader:stage:*	the tool lock check every NVN shader build runs first (not part of the chain version)
dm/gfx/tools/dmsh_dryrun.py	shader:stage:*	the standalone shader conversion check
dm/gfx/tools/spirv_cross_bin/*	api:*	the pinned SPIRV-Cross used by every graphics API
dm/gfx/tools/dmsh_xlate/*	shader:stage:*	the translator's driver
dm/gfx/tools/dmsh_xlate_bin/*	shader:stage:*	fallback: the translator binary, when its sources are not in the range
dm/third_party/ryujinx/*/InstEmitSurface.cs	shader:image_atomic*	surface instructions: image loads, stores and atomics
dm/third_party/ryujinx/*/InstEmitSurface.cs	shader:texture_write	surface instructions: image loads, stores and atomics
dm/third_party/ryujinx/*/InstEmitSurface.cs	shader:binding:img	surface instructions: image loads, stores and atomics
dm/third_party/ryujinx/*/BindlessElimination.cs	shader:note:texture handle*	bindless texture handles
dm/third_party/ryujinx/*/InstEmitTexture*.cs	shader:binding:tex	texture instructions
dm/third_party/ryujinx/*/InstEmitMemory.cs	shader:buffer_atomic	global and shared memory, buffer atomics
dm/third_party/ryujinx/*	shader:stage:*	fallback: any other translator change
dm/gfx/tools/vk_shaders.py	api:vulkan	Vulkan shaders
dm/gfx/tools/gl_shaders.py	api:gl	OpenGL shaders
dm/gfx/tools/pso_offline.py	present:pipeline_prebuild	the offline pipeline archive of the Mac app and the iPhone
dm/gfx/tools/c1_guard.py	shader:stage:*	the c1 guard table
dm/gfx/tools/cb_extent.py	shader:stage:*	the uniform read extents
dm/gfx/tools/shader_split.py	shader:stage:*	the shader tables (after a split)
dm/gfx/tools/unityfs.py	shader:stage:*	the Unity serialized shader reader (after a split)
dm/tools/patch_nso.py	*:*	the rewriter: every game's code
dm/tools/nso_*.py	*:*	the rewriter: every game's code
dm/tools/sdk_patches.py	*:*	the SDK modules' patches (by build ID)
dm/tools/romfs_image.py	*:*	RomFS image packing: every game's files
dm/tools/romfs.py	*:*	RomFS image input: every game's build tools
dm/gfx/nvn/msl_image.h	*:*	reads each shader from the one-file library: every NVN game
dm/tools/shader_lib.py	*:*	the shader libraries as one file: every NVN game build and regress chain
dm/tools/shader_cache.py	*:*	the compile cache as one file: every NVN game build and regress chain
dm/tools/tree_tar.py	*:*	one tar in place of Xcode's derived data and quiet work folders: every game build
dm/tools/nro_collect.py	*:*	NRO discovery from game resources during packing
dm/tools/nx_extract/*	*:*	NSP extraction: every game's resource inputs
dm/mac/launcher.c	*:*	Mac app resource discovery and host launch
dm/mac/Launcher.swift	*:*	the Mac settings window, linked into every Mac app
dm/mac/pack_app.py	*:*	Mac app packaging: every game's bundled resources
dm/gfx/tools/cpk.py	shader:stage:*	CRI archive input to shader scanning
dm/gfx/tools/vbf.py	shader:stage:*	Virtuos archive input to shader scanning
dm/gfx/tools/dmsh_mesh.py	shader:stage:gs	passthrough geometry composed into a mesh shader
dm/host/hle_fpslock.c	present:*	build-gated engine frame limits and dynamic resolution
dm/host/hle_uecvar.c	present:*	Unreal console variables found by name; the texture pool (profile ue_texture_pool)
dm/gfx/tools/mvgl.py	api:gl	MVGL archive input to OpenGL shader scanning
dm/gfx/tools/smash_arc.py	*:*	Smash archive input to shader and NRO scanning
dm/gfx/tools/uepak.py	shader:stage:*	Unreal archive input to shader scanning
dm/host/romfs_image.h	hle:*fs*	RomFS image index validation shared by mounts and iOS startup
dm/host/romfs_identity.h	*:*	RomFS identity checks at iOS startup for every game's separate deployment
dm/host/hle_fs.c	hle:*fs*	filesystem mounts, paths and file operations
dm/host/hle_audio.c:(notify_release|event_notify)	hle:*AudioOutE*	guest AudioOut buffer-release notifications; the host renderer uses rel_sem
dm/host/save_sync.*	hle:*fs*	cloud saves: the first save mount and every Commit (hle_fs.c)
dm/host/Makefile	*:*	the shared host build
dm/host/hle_thread.c	svc:*	threads and synchronization
dm/host/hle_svc.c	svc:*	SVCs
dm/host/thread.c	svc:*	threads
dm/host/main.c	*:*	the host's start
dm/host/loader.c	*:*	module loading
dm/host/hle.c	hle:*	the HLE tables
dm/host/front_mac.m	present:*	the Mac front end
dm/host/input_map.h	present:*	the Mac front end's key and controller button map
dm/host/dm_input.h	hle:*hid*	the shared input interface
dm/host/motion_apple.h	hle:*SixAxisSensor*	controller motion supplied by GameController
dm/host/pad_apple.h	hle:*hid*	controller face buttons from GameController
dm/host/motion_fusion.h	hle:*SixAxisSensor*	six-axis motion mapping and orientation
dm/host/motion_pro.h	hle:*SixAxisSensor*	passive Switch Pro Controller IMU decoder
dm/host/motion_pro_mac.h	hle:*SixAxisSensor*	Mac Pro Controller raw motion transport and routing
dm/host/input_map.h	present:*	the Mac front end's key and controller button map
dm/host/input_preferences_mac.h	present:*	shared per-game control choices and launch overrides
dm/host/controllers_mac.h	present:*	Mac controller lifecycle and mapping panel
dm/host/pad_map.h	hle:*hid*	physical controller button mapping
dm/host/pad_hid_mac.h	hle:*hid*	generic Mac HID ownership, lifecycle and input
dm/host/pad_motion.h	hle:*SixAxisSensor*	Steam Controller motion history
dm/host/steam_input.h	hle:*hid*	Steam Controller report decoding and trackpads
dm/host/haptics_apple.h	hle:*Vibration*	Apple and direct controller rumble routes
dm/host/haptics_apple.m	hle:*Vibration*	Apple and direct controller rumble output
dm/host/hle_haptics.h	hle:*Vibration*	the shared rumble interface
dm/host/front.h	present:*	the front end
dm/ios/*	*:*	the iOS app
dm/third_party/ryujinx/src/Ryujinx.Graphics.Shader/Translation/Transforms/GeometryToCompute.cs	shader:stage:gs	geometry compute input and output lowering
