IGCIT / Intel-GPU-Community-Issue-Tracker-IGCIT

IGCIT is a Community-driven issue tracker for Intel GPUs.
GNU General Public License v3.0
113 stars 3 forks source link

edid override does not work when an edid has been generated instead of being embedded #111

Closed ciphray closed 2 years ago

ciphray commented 2 years ago

Checklist [README]

Application [Required]

Windows

Processor / Processor Number [Required]

i7-1185G7

GPU Driver Version [Required]

Rendering API [Required]

Windows Build Number [Required]

Other Windows build number

No response

Intel System Support Utility report

Win-max-2021.txt

Description and steps to reproduce [Required]

edid-override1 edid-override2

I am using a GPD win max 2021, the panel itself functions properly with display frequencies down to 24hz and up to 60hz I can make use of these in linux, however in windows applying an edid override does not show up in the list of selectable resolutions

intel graphics command center does show the additional frequencies under info, however it does not show under general as pictured in the attachments

it has a mipi panel, and there is no edid embedded in the bios that i'm aware of, so the fakeedid that gets generated appears to have priority over the windows edid override

would it be possible to correct this so that the edid override in windows is able to function as it should?

This is especially helpful when gaming on low power igpus, being able to sync to refresh rates under 60 allows power savings and smoother frametimes when unable to maintain 60fps

Device / Platform

GPD WIN MAX 2021

Crash dumps [Required]

no crashes happen as a result of this

Application / Windows logs

No response

EstebanIntel commented 2 years ago

Hi @ciphray,

The Intel Graphics Driver is always expecting the EDID info from the panel. If on your device you suspect that the panel doesn't have an EDID programed, our advice is to contact the support team of your device's manufacturer so they can address this issue.

ciphray commented 2 years ago

Windows does show an edid that matches out with the capabilities of the display in the registry

however the driver does not apply edid overrides when a mipi panel is in use, could this be fixed?

command center recognizes the edid information in the override in the information screen

but will not allow me to select the resolution it shows as being supported

this happens on every native mipi panel device i own that uses intel graphics, every device that uses edp behaves as expected

EstebanIntel commented 2 years ago

@ciphray the problem here is that there is no way we can ensure that the app you are using to override the EDID fully complies with the EDID standard. I understand that you are trying to find a workaround to the panel not having an embedded EDID. However, EDID override is not something we can support since the correct way to address this issue for the manufacturer of the panel to correctly add the EDID to the panel.

ciphray commented 2 years ago

https://docs.microsoft.com/en-us/windows-hardware/drivers/display/overriding-monitor-edids

https://community.intel.com/t5/Graphics/Feature-Request-implement-EDID-override/m-p/253019

I'm not really looking for more than it to function with mipi/DSI panels with your driver as your driver does with edp, hdmi and other display types

as i mentioned in my original post i can use this same edid under linux so it functions with this panel on this device, but every mipi/DSI based device i have ignores edid overrides while using an intel igpu in windows

I've been able to use this exact panel with this same edid in another motherboard with an edp to mipi/DSI converter

image

on intel, edid overrides are stated to work with internal panels, is excluding mipi/DSI panels from using edid overrides intentional?

EstebanIntel commented 2 years ago

Hi @ciphray

As I mentioned before, I understand that you are trying to find a workaround to your issue, but I must again recommend that you contact the support team of your device manufacturer, since only they can fix this issue permanently.

Now, regarding the workaround, I was able to override the EDID using this app I found online on a i7-1165G7 (this is not a recommendation to use this app, it is just one app I used to test this workaround). So, as you mentioned, the drivers do support this feature. Being this the case, if the app you are using to override the EDID is not working as intended, I advise you to contact the developer of your app. Please do note that in my case, for the overridden EDID options to show up on Windows, I had to disconnect and re-connect the video cable from the monitor after the override was applied. If you intend to override the EDID for an internal display, you may not be able to comply with this spec, and thus this workaround may not be available to you.

ciphray commented 2 years ago

I've tried CRU, i've in fact used it with this same panel in the past on a different motherboard and that works fine as it has an edp>mipi dsi converter built into the motherboard

I've also tried the same edid extracted from this very device on a different bios version with an alternate refresh rate from HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\

Command center sees the frequency in information, but will not allow it to be selected

I have dell/lenovo tablets with direct mipi dsi panels and they exhibit the same behavior

if i intentionally use an invalid edid on hdmi or edp, those will show the resolution as selectable even if the device would give issues with it selected, but with a direct mipi dsi connection even with a valid edid for the panel, it's ignored

ciphray commented 2 years ago

Screenshot (21) Screenshot (22) here it is with the original edid used as an override from a prior bios, the original bios had the display set to 61hz attempting to use that edid displays it in the information screen, but the display is still set to 60hz

EstebanIntel commented 2 years ago

@ciphray,

When you apply the EDID override, can you change the Refres Rate in the Windowds Advanced Display Setting? (even when not available in the Intel Graphics Command Center) image

ciphray commented 2 years ago

No, it's not available there, the mode is reported as 60.000HZ only and list all modes does not show it either listallmodes

EstebanIntel commented 2 years ago

@ciphray,

Since EDID override works as intended on Intel manufactured devices (the ones I tested in our lab) but not on yours, indicates that only your device manufacturer can provide you a fix.

The fact even at the OS level the EDID override is not working, seems to indicate that some of the customizations the manufacturer of your device’s graphics may be blocking this feature.

ciphray commented 2 years ago

@estebanr863

Appreciate your time If this can't be changed with an EDID override, is there any other means I might be able to add other display modes/alter the existing one? Such as a DTD or VBT override? I see the registry entries for DTD but they do nothing as far as I can tell and in some of intel's documentation I see mentions of a VBT override but nothing further on the subject in public documents that I've seen Under linux I am able to override the EDID, and VBT and add other display modes that function

EstebanIntel commented 2 years ago

@ciphray

We do have an internal tool that can be used to override the VBT. However, this tool and its documentation are only available under NDA, since it is mostly intended for OEMs and embedded system designers.

EstebanIntel commented 2 years ago

Hi @ciphray,

Can this issue be closed?

ciphray commented 2 years ago

Sure, though before you close it, one last question please

The entries in HKEY_LOCALMACHINE\SYSTEM\CurrentControlSet\Control\Class{4d36e968-e325-11ce-bfc1-08002be10318} TotalDTDCount, DTD*, TotalStaticModes

still get created in current drivers, are these still used?

if so between those and the bios/vbt DTDs which get priority? I haven't seen them have any impact on any of my devices on recent drivers

Thanks again for all your time

EstebanIntel commented 2 years ago

Currently, the first priority is the EDID and then it is followed by the DTDs. We are aware that this is not standard, as per CTA-861, DTDs should take precedence (specifically when using the Video Format Preference Data Block or VFPDB). This is a known bug that may get fixed in future driver updates.

Regarding the specific registry key you pointed out, unfortunately I cannot confirm if is still used by the latest drivers.