DirectInput8 EnumDevices sometimes painfully slow

前端 未结 6 1103
春和景丽
春和景丽 2021-01-12 14:27

Sometimes (in about 50% of runs), EnumDevices takes 5-10 seconds to return. Normally it is almost instant. I couldn\'t find any other reports of this kind of behaviour.

6条回答
  •  被撕碎了的回忆
    2021-01-12 14:38

    I was running into this too, largely as an end user, but it's been annoying the hell out of me for years. I didn't realize it was this issue until I ran into it on an open source project and was able to debug it.

    Turns out it was my USB Headphone DAC (The Objective DAC from Massdrop), it installs the driver: wdma_usb.inf_amd64_134cb113911feba4\wdma_usb.inf for Device Instance ID USB\VID_262A&PID_1048&MI_01\7&F217D4F&0&0001 and then shows up in Device Manager under Sound, video and game controllers as: ODAC-revB USB DAC and, under Human Interface Devices as: USB Input Device and HID-compliant consumer control device.

    I have no idea what the HID entries do but... When they are enabled and this DAC is set as the Audio Output device both IDirectInput8_CreateDevice and EnumDevices are painfully slow. Disabling the "USB Input Device" entry seems to cause no negative effects and completely solves my issue.

    Changing the Audio output from the DAC to anything else also weirdly solved the issue.

    This was so bad that it made the Gamepad Configuration dialog joy.cpl unusable, hanging and eventually crashing.

    I was wanting this to just be a comment but I don't have enough rep for it, and this is pretty much the only place on the internet that describes this problem though so hopefully this helps someone else one day!

提交回复
热议问题