v0.3.16 - Interop is an A/B arm, and the log says which one ran
v0.3.16
Sensitive to flashing images? See the note in v0.3.13 - it still applies.
For one reporter, and for anyone whose card faults at load
Interop is no longer pinned. It was written to 1 unconditionally, so the only way to try the other value was a rebuild - which means the one variable we suspect of a whole fault class had never been tested on a reporting machine.
The suspicion, stated as a suspicion: issue #4 (RX 7600, Windows 10) dies with a read at offset 0x18C inside D3D12Core.dll, last job -1, before the engine has done anything - a device-child object whose back-reference is NULL. The same shape is open upstream in their own standalone host (#84), and they name zero-copy interop as where it happens. Our host hands resources over the same way.
What this build adds:
NS_AMD_INTEROP=0 resources are handed over by copy, not zero-copy
NS_AMD_INTEROP=1 the value every working report has run (default)
Set nothing and you get the same behaviour as before - that matters, because every report so far ran zero-copy and changing the default would make them non-comparable.
The default is deliberately NOT changed, and that is not caution for its own sake. The upstream report of the same fault says their copy path fails too (0x887A0005). So 0 is not known to be better than 1; it is the other arm of a test. If you are the reporter with the D3D12Core fault, that one variable is what we need, and the log now says which arm ran:
[amd] interop on: zero-copy shared textures (the default)
[amd] interop OFF: resources are handed over by copy, not zero-copy (NS_AMD_INTEROP=0)
One trap worth knowing: the Interop key in dlssnr_on_amd.ini is NOT the control. The runtime reads that file in its DllMain and this host writes the field after that, so the file's value is overwritten. Edit the file and nothing will change - that is why the variable exists.
Not fixed here
The D3D12Core fault itself. This gives us the arm to test it with, not the fix. If both arms fault, the fault is not interop and we will have learned that from a log rather than from another guess.
Everything else open in v0.3.15 - the flicker, Record writing an empty file, and the menu in a button-taken windowed screenshot. Unchanged.
Suite: all green, on an RTX 5070 Ti. Nothing here was run on a Radeon. The new check fails on the pinned version and on four separate ways of breaking the switch.