Summary
When discovering the available device extension, the device handle we're obtaining the extension cache for is not stored in the hash set (i.e. it should be a HashSet<(Device, string)> or Dictionary<Device, HashSet<string>>). This could lead to an extension being incorrectly reported as present for one logical device because the cache was previously populated using another logical device.
Comments
As discussed in #1563