Why not actually perform some frames of rendering and time it. If it is below your target speed turn off some features and try again. Keep doing this until performance is within your target. To hide it from the player just draw fullscreen quad overtop or setup offscreen rendertarget and never present Iitit. As commenters note you will want to allow the user to override the setting somehow as some may want to have better visuals regardless of performance impact or vice versa.