Two stall-immunity hardenings for the swap-chain drain thread (branch-2 of the
disturbance-immunity program — failures in OUR delivery leg, as opposed to
adapter-wide display servicing, which no priority survives):
- MMCSS registration fails under the restricted WUDFHost token on some boxes;
the drain thread then ran UNPRIORITIZED — the whole display's frame pump at
normal priority, starvable by DDC/HPD-servicing DPC pressure into
multi-hundred-ms delivery holes. Fall back to TIME_CRITICAL.
- IddCxSetRealtimeGPUPriority (IddCx 1.9) raises the processing device above
every regular application's GPU priority. Slot availability comes from
raising the exported IddMinimumVersionRequired 4 → 10, which was overdue
independently: the drain loop already calls ReleaseAndAcquireBuffer2 (1.10)
unconditionally, so binding a pre-1.10 framework would dispatch past the
populated IddFunctions table — with 10 an old framework fails the bind
cleanly instead. The product floor is already Win11 22H2 (installer
MinVersion=10.0.22621, whose framework is 1.10), so no supported system
changes behavior.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>