Using the NVAPI or NVWMI, is there any way to determine if a display’s EDID is from a file?
I can check if a display is physically connected, but I need to know if the EDID returned by NvAPI_GPU_GetEDID is “fake” or not. In the NV Control Panel I can see if the EDID status is “Not connected”, “Monitor”, or “File”, but I do not see this same information exposed in the NVAPI or NVWMI. What am I missing?
Our team has informed that currently there is no support available in NVAPI SDK to check if EDID is fake. We have noted your request, and the support for this will be added in future SDK releases.
Just wanted to provide an update for anyone else who finds this post.
This feature has been added to the SDK with the new NvAPI_DISP_GetEdidData function.
NvAPI_DISP_GetEdidData will return NV_EDID_FLAG:
typedef enum
{
NV_EDID_FLAG_DEFAULT = 0, //!< the EDID which is actively used by the driver, it could be _RAW/_COOKED/_FORCED/_INF.
NV_EDID_FLAG_RAW = 1, //!< the EDID which is not modified by the driver. If there's no _FORCED edid engaged, it
//!< will be the unmodified monitor EDID from the I2C bus. Otherwise it is original _FORCED edid.
NV_EDID_FLAG_COOKED = 2, //!< the EDID has been modified by the driver for compatibility
NV_EDID_FLAG_FORCED = 3, //!< the EDID is forced by the end-user over s/w interface,
NV_EDID_FLAG_INF = 4, //!< the EDID is from monitor INF
NV_EDID_FLAG_HW = 5, //!< the EDID is from the monitor over I2C bus without any modification.
} NV_EDID_FLAG;
I’ve verified that this function can be used to A) determine if an EDID is “fake” (forced), and B) check if the forced EDID differs from the hardware EDID.