Jump to content

Glitch on built-in display (EDID issue?)


cvsg
 Share

15 posts in this topic

Recommended Posts

Hello folks!

I've been working on this issue for a few weeks so I guess it's time to ask for your help...     :cry:

 

My Context

 

I've got an very strange glitch on my laptop built-in display.

GLITCH VIDEOhttps://docs.google.com/file/d/0B9u_U2zduVk1MzhXVWh6TkdBWm8/view

 

I believe it's not an issue on my graphic card settings since I've got full graphics in a external monitor plugged in my HDMI port. 

 

So I guessed that the EDID of built-in monitor is not being grabbed correctly. Even with EDID issues having a different behaviour, I tried overriding the display EDID with EDID grabbed from windows. Also tried FixEDID with no luck.

 

One thing to note is that DarwinDumper output some warnings that may help:

EDID block does NOT conform to EDID 1.3!
Missing name descriptor
Missing monitor ranges
Detailed block string not properly terminated

 

My Questions

  • For those with more experience, this really looks like an EDID issue?
  • If not, what else can fix this? An IMEI DSDT Patch?!

My Specs

  • Lenovo B490 - i5-3320m - H77M - HD 4000
  • OS X 10.10.1
  • Video Ports:
    • Real Ports: 1 LVDS, 1 HDMI, 1 VGA(still disabled) and this model has no MiniDP port
    • Using 0x01660003 1 LVDS, 1 HDMI, 2 DP
  • My config.plist is attached
  • EDID grabbed with DarwinDumper is attached
  • IOReg is attached
  • Specification of the built-in LCD: N140BGE-L22

 

---------------

Update #1

My conclusion so far is that this monitor has a broken EDID EEPROM. I just need to know how can I build my own EDID based on the monitor specifications...

---------------

Update #2

I've also tried to create a EDID from scratch with this very nice tool:

http://www.analogway.com/en/products/software-and-tools/aw-edid-editor/

 

The attached override was under path `/S/L/Displays/Overrides/DisplayVendorID-dae/DisplayProductID-1470`. However it was not loaded (the display name doesn't changed) and I don't know why. I've checked the file permissions and it was identical to the others overrides.

---------------

Update #3

So, it's probably not an EDID issue, since the built-in display works properly when QE/CI isn't enabled.

 

Please help...

   :blowup:

config.plist.txt

ioreg.zip

DisplayProductID-1470.txt

DarwinDumper EDID.txt

Link to comment
Share on other sites

What were your installation procedures?

 

You should try implementing backlight control and native CPU power management.

You mean I should get these two working before I try to fix the display itself?

Backlight control can't be enable by just replacing AppleDisplay by AppleBacklightDisplay in the display override?! I need to tweak this somewhere else too?

 

Thanks for your reply! Meanwhile I'll work in the CPU PM... 

Link to comment
Share on other sites

You mean I should get these two working before I try to fix the display itself?

Backlight control can't be enable by just replacing AppleDisplay by AppleBacklightDisplay in the display override?! I need to tweak this somewhere else too?

 

Thanks for your reply! Meanwhile I'll work in the CPU PM...

You did not answer my first question.

 

The brightness fix has been shown to fix issues other than brightness...

 

HD3000/HD4000 Brightness Fix:

DSDT Patches from here: https://github.com/RehabMan/Laptop-DSDT-Patch

 

Apply:

"Rename GFX0 to IGPU"

"Brightness Fix (HD3000/HD4000)"

- rename patch must be done first and to all DSDT/SSDT that contain references to GFX0 that you're including in your final SSDT set

- Brightness patch must be done to the DSDT or SSDT that contains the definition for Device GFX0 (search for 'Device (GFX0)'

- Place DSDT and SSDT (if necessary) into a place where the bootloader will load them. For Clover, EFI/CLOVER/ACPI/patched (DSDT.aml, SSDT-x.aml where 'x' is a number). For Chameleon, /Extra/ssdt.aml, /Exra/ssdt-1.aml, /Extra/ssdt-2.aml, etc.

 

Install: https://github.com/RehabMan/OS-X-ACPI-Backlight

  • Like 1
Link to comment
Share on other sites

Brightness control is now working but the issue remains and I'm ok with that (I would need to implement that one day or another...)

Thank you RehabMan! :frantics:

 

Now I'll come back to the EDID theory (lol). I've noticed that my override is probably not working since the display name isn't changing in the prefs panel.

 

Any idea how do I debug why is it not loading at all?

Link to comment
Share on other sites

On which part more specifically?

All. Starting at where you obtained OS X...

Brightness control is now working but the issue remains and I'm ok with that (I would need to implement that one day or another...)

Thank you RehabMan! :frantics:

 

Now I'll come back to the EDID theory (lol). I've noticed that my override is probably not working since the display name isn't changing in the prefs panel.

 

Any idea how do I debug why is it not loading at all?

Look in ioreg to see the EDID that is loaded.

Link to comment
Share on other sites

Look in ioreg to see the EDID that is loaded.

 

Thanks for the tip! So, the EDID is injected correctly but it seems that clover injects it as an Apple Display, that's why the display name isn't appearing (duh).

However none of the EDIDs I've tried worked (grabbed from windows, from DD and the one I created from the display specs).

 

 

All. Starting at where you obtained OS X...

Well, I've download Yosemite.dmg last week from the store and followed this guide.

The only thing that I've done by myself not following the guide is to keep using NullPM (idk if it's a blind spot in the guide, but I was unable to boot without that).

After that I've just generated my SMBIOS and enabled my HD 4000 by injecting Intel graphics and setting ig-platform-id to `0x01660003`.

Immediately after that I could notice that QI/CE was enabled but this strange flickering started.

At first I tough it was something to do with my HD 4000 configurations but I've saw that my external monitor under HDMI port was working just fine.

So I guess it's something with the built-in display, right?! But it's very odd that this flickering doesn't happens when QI/CE isn't enabled (just a little choppy due to slow graphics).

 

Also about the Power Management. I've followed this guide with success, but I'm not sure If a more complete procedure is needed (like this one). If so, please let me know...

Link to comment
Share on other sites

...

Well, I've download Yosemite.dmg last week from the store and followed this guide.

Yosemite does not come as DMG from the Mac App Store. And it probably is not a good idea to follow a desktop guide on a laptop...

 

 

 

The only thing that I've done by myself not following the guide is to keep using NullPM (idk if it's a blind spot in the guide, but I was unable to boot without that).

 

 

NullCPU is never necessary with Clover (because we can patch AppleIntelCPUPowerManagement with AsusAICPUPM=true).

 

 

 

After that I've just generated my SMBIOS and enabled my HD 4000 by injecting Intel graphics and setting ig-platform-id to `0x01660003`.

Immediately after that I could notice that QI/CE was enabled but this strange flickering started.

 

 

You should try implementing brightness control. It tends to fix more than brightness...

 

 

At first I tough it was something to do with my HD 4000 configurations but I've saw that my external monitor under HDMI port was working just fine.

So I guess it's something with the built-in display, right?! But it's very odd that this flickering doesn't happens when QI/CE isn't enabled (just a little choppy due to slow graphics).

Without QE/CI enabled, the system is using entirely different display drivers, so it is not really "odd" at all.

Link to comment
Share on other sites

Hello again Everyone!

 

RehabMan, some considerations about your last reply:

  • I've reviewed the guide and believe I skipped all desktop-only procedures/configurations.
  • CPU PM is ok now (intel power gadget is working properly).
  • Brightness control is also implemented. I can change it from System Preferences now.

About trying to figure out if it is an EDID issue or a driver-related one, I did some random tests I found some clues...

Well, all started when I noticed that the glitch/issue doesn't appear when the screensaver is activated. Whatever is making the issue goes away I wanted to know what it is.

So I did a ioreg dump, and then another dump while the screensaver was running (used a sleep to delay the dump). Using a diff toll I've found some changes that might be relevant to those with more experience. The two dumps are attached if anyone is interested. Note: I did this dump from terminal with "ioreg -l > result.txt".

 

After that I've managed to make the issue go away just by having the screensaver preview on that screen. But as soon the preview gets covered by another window it seems that the framebuffer(?) for that screen enters in a power saving mode or something like that and the issue comes back and all regions that aren't redrawn have the strange flickering again. Well, it's pretty confusing to understand that from my description so I've made another video demonstrating what is happening.

 

I was reading about disable the "automatic graphics switching" to force full-powered graphics everytime, but that doesn't make sense since I've got only integrated graphics in this laptop. Someone has any clue or some configuration to disable this power-saving "feature" that is the possible cause of this issue?!

 

Also, do you guys think I'm the right path to solve this?!

I desperate trying to fix this before Monday, when I'll need to use my laptop at work... :pyth:

ioreg-normal.txt

ioreg-screensaver.txt

Link to comment
Share on other sites

  • 1 month later...

Glad to see your post seeing that I'm not the only one in this world who has the same problem like you. I got a Lenovo b590 with EXACTLY your same problem. Same glitches, same problems. My final solution was buy the Compulab display emulator that attached on hdmi port, then go to display pref panel and change to my "new" display. Duplicated screens, and then, go back to my internal laptop screen and glitches go. It fit perflectly on the hdmi port and it's like a little usb pendrive, but it must be always putted. I tried everything. Like you, with no succes. My thoughts go through Appleintelframebuffer. I think it has the key, but I don't know how can change it to Lvds works without glitches.

Link to comment
Share on other sites

 Share

×
×
  • Create New...