This patch made me look back to this hunk from D3DX10GetImageInfoFromMemory():
if (img_info->ImageFileFormat == D3DX10_IFF_DDS) { ... } else { ... img_info->Format = DXGI_FORMAT_R8G8B8A8_UNORM; ... }
That seems suspicious, can't formats other than DDS (e.g. WMP) support higher bit depths with d3dx10?
Maybe I can send a patch that adds more test images (e.g. WMP images which have higher bit depths) after this patch set is finished ?