Jump to content

Intel HD4600 banding/gradient/16-bit colors issue Y510p


intruder16
 Share

130 posts in this topic

Recommended Posts

Curious, why didn't you guys use the Nvidia GPU ? Is it because you can't disable SLI to use only one GPU at a time ?

 

It is because of how the hardware is connected which is a mystery as far as I know. The laptop have three graphics cards:

  1. Intel HD Graphics 4600 Mobile
  2. NVIDIA GeForce GT 755M (internal / built-in)
  3. NVIDIA GeForce GT 755M (external and connected through ultrabay)

While the external card is connected, the IGPU is completely invisible (I would say disabled but no evidence to back this statement up). And we end up with two Nvidia GPUs and one of them (the internal) seems connected to the display. But it is not correctly configured and only reports 7MB of VRAM. And yes there is no possibility of separating both the cards to the best of my knowledge.

 

A lot more info are here in this thread: http://www.insanelymac.com/forum/topic/304933-help-fixing-lenovo-y510p-nvidia-gt-755m-on-os-x-yosemite-10102/ 

Link to comment
Share on other sites

@mattcurtis,

 

Please try the suggestions as @ahmed_ais suggested. I'm sure it'll work. If any problems post here.

 

Never edited/injected an EDID before. Any guides? So far I've extracted my EDID using IORegistryExplorer, now I am trying to find out how to edit the version/other data...

<00 ff ff ff ff ff ff 00 0d af a7 15 00 00 00 00 1f 14 01 03 80 23 13 78 0a 00 25 9e 57 52 99 29 15 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 12 1b 56 64 50 00 14 30 10 22 26 00 58 c1 10 00 00 18 00 00 00 fe 00 4e 31 35 36 42 47 45 2d 4c 32 31 0a 20 00 00 00 fe 00 43 4d 4f 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe 00 4e 31 35 36 42 47 45 2d 4c 32 31 0a 20 00 95>
<00ffffffffffff000dafa715000000001f140103802313780a00259e5752992915505400000001010101010101010101010101010101121b5664500014301022260058c110000018000000fe004e3135364247452d4c32310a20000000fe00434d4f0a202020202020202020000000fe004e3135364247452d4c32310a200095>
Link to comment
Share on other sites

Never edited/injected an EDID before. Any guides? So far I've extracted my EDID using IORegistryExplorer, now I am trying to find out how to edit the version/other data...

<00 ff ff ff ff ff ff 00 0d af a7 15 00 00 00 00 1f 14 01 03 80 23 13 78 0a 00 25 9e 57 52 99 29 15 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 12 1b 56 64 50 00 14 30 10 22 26 00 58 c1 10 00 00 18 00 00 00 fe 00 4e 31 35 36 42 47 45 2d 4c 32 31 0a 20 00 00 00 fe 00 43 4d 4f 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe 00 4e 31 35 36 42 47 45 2d 4c 32 31 0a 20 00 95>
<00ffffffffffff000dafa715000000001f140103802313780a00259e5752992915505400000001010101010101010101010101010101121b5664500014301022260058c110000018000000fe004e3135364247452d4c32310a20000000fe00434d4f0a202020202020202020000000fe004e3135364247452d4c32310a200095>

 

I use edid-decode: git://anongit.freedesktop.org/xorg/app/edid-decode

 

It is a bit buggy, but the source is there and it works for most purposes.

 

Further info on EDID is available on the internet: http://en.wikipedia.org/wiki/Extended_Display_Identification_Data

Link to comment
Share on other sites

 

Never edited/injected an EDID before. Any guides? So far I've extracted my EDID using IORegistryExplorer, now I am trying to find out how to edit the version/other data...

 

 

If you have Windows installed, I would suggest you to use DeltaCast EDID Editor. You can extract and edit EDID as per the suggestions and it'll fix the checksum for you. Then inject it via clover and use IORegistryExplorer to check if custom EDID is properly injected or not.

 

You can also paste your extracted EDID here. I'll edit it for you. But use Windows for extraction.

Link to comment
Share on other sites

If you have Windows installed, I would suggest you to use DeltaCast EDID Editor. You can extract and edit EDID as per the suggestions and it'll fix the checksum for you. Then inject it via clover and use IORegistryExplorer to check if custom EDID is properly injected or not.

 

You can also paste your extracted EDID here. I'll edit it for you. But use Windows for extraction.

Moninfo is great for EDID extraction. Also it supports editing EDID and recalculate checksum real-time

Link to comment
Share on other sites

Moninfo is great for EDID extraction. Also it supports editing EDID and recalculate checksum real-time

 

Yes. But DeltaCast EDID Editor shows much more info like pixel clock setting, resolutions etc. which might be useful.

 

Its all personal preference.  :)

Link to comment
Share on other sites

If you have Windows installed, I would suggest you to use DeltaCast EDID Editor. You can extract and edit EDID as per the suggestions and it'll fix the checksum for you. Then inject it via clover and use IORegistryExplorer to check if custom EDID is properly injected or not.

 

You can also paste your extracted EDID here. I'll edit it for you. But use Windows for extraction.

 

OK, I used Deltacast EDID to extract my EDID. I'm not sure if it's worth noting, but during extraction it showed a popup saying that there was an "Extension number error" but that by continue it would be fixed.

00FFFFFFFFFFFF000DAFA715000000001F140103802313780A00259E5752992915505400000001010101010101010101010101010101121B5664500014301022260058C110000018000000FE004E3135364247452D4C32310A20000000FE00434D4F0A202020202020202020000000FE004E3135364247452D4C32310A2001940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Screencap: https://i.imgur.com/ZlP9uPt.png

 

I'm reading up on EDID now, but I'm still unsure what changes I need to make.

Link to comment
Share on other sites

OK, I used Deltacast EDID to extract my EDID. I'm not sure if it's worth noting, but during extraction it showed a popup saying that there was an "Extension number error" but that by continue it would be fixed.

00FFFFFFFFFFFF000DAFA715000000001F140103802313780A00259E5752992915505400000001010101010101010101010101010101121B5664500014301022260058C110000018000000FE004E3135364247452D4C32310A20000000FE00434D4F0A202020202020202020000000FE004E3135364247452D4C32310A2001940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Screencap: https://i.imgur.com/ZlP9uPt.png

 

I'm reading up on EDID now, but I'm still unsure what changes I need to make.

 

How many items you find on the list that appears when you select "Extract Registry E-EDID" ? If there are more than one, which one did you choose and why?

Link to comment
Share on other sites

Just for your information, when you connect your laptop to external display there will be an entry for each display you connect to.

 

Now to your case, I'm not sure you should have Extensions at all not to mention an error in them. EDID versions 1.3 and 1.4 are 128-byte structures and you can notice that if you looked at the Hex Editor and multiplied the number of rows from 00:07 by the number of columns from 0:F which is 8*16=128. This means the last row is the 8th row (row number 07) and nothing beyond that. The software you are using allow adding Extensions so the final matrix is 256-bit and it is called Enhanced EDID (E-EDID).

 

Are you sure you did not press the "Add CEA Timing Extension"? If not, you should ignore/remove the rows from 08 to 0F while you are editing your EDID. 

Link to comment
Share on other sites

Just for your information, when you connect your laptop to external display there will be an entry for each display you connect to.

 

Now to your case, I'm not sure you should have Extensions at all not to mention an error in them. EDID versions 1.3 and 1.4 are 128-byte structures and you can notice that if you looked at the Hex Editor and multiplied the number of rows from 00:07 by the number of columns from 0:F which is 8*16=128. This means the last row is the 8th row (row number 07) and nothing beyond that. The software you are using allow adding Extensions so the final matrix is 256-bit and it is called Enhanced EDID (E-EDID).

 

Are you sure you did not press the "Add CEA Timing Extension"? If not, you should ignore/remove the rows from 08 to 0F while you are editing your EDID. 

 

I'm pretty sure I've made changes correctly but to be sure, here they are: https://i.imgur.com/UBm51Nw.png

 

Steps performed:

  • Extract EDID from registry
  • Switch to EDID 1.4
  • Open Hexa Editor
  • Change first basic parameter from 80 to 90
  • Close it, Deltacast EDID will prompt for checksum fix, hit OK
  • Done
  • Like 1
Link to comment
Share on other sites

Everything appears in order ...

 

What did you use to convert the data to base64?

 

Edit: Used this (http://base64converter.com/) on the .bin file, got this. Booting into OS X to make config.plist edits...

AP///////wANr6cVAAAAAB8UAQSQIxN4CgAlnldSmSkVUFQAAAABAQEBAQEBAQEBAQEB
AQEBEhtWZFAAFDAQIiYAWMEQAAAYAAAA/gBOMTU2QkdFLUwyMQogAAAA/gBDTU8KICAg
ICAgICAgAAAA/gBOMTU2QkdFLUwyMQogAIQ=
Link to comment
Share on other sites

Success! Injecting the EDID above worked :) Thanks for all the work involved, everyone!

 

Nice! Thanks for feedback. So this solution should work and fix 16-bit gradients on all laptops's having similar issue.

Link to comment
Share on other sites

  • 3 weeks later...

Guys .. I have some not good news .. the gradients can still appear even after using the custom EDID!

 

This is not a major issue and can be ignored altogether but I thought to share it here. Using the custom EDID helped a lot to get rid of the colour gradients that used to appear after display off/on. However, I found that certain procedure can still reproduce the gradients in limited way:

  1. Make sure "Require Password" is enabled in System Preferences > Security & Privacy > General
  2. Set the timing to anything, "immediately" for example
  3. Allow the system to run screensaver
  4. Cancel the screensaver and password will be required
  5. Gradients are visible on the login screen

That said, once I log in the gradients disappear so it is not a major issue as I said before.

 

Link to comment
Share on other sites

Guys .. I have some not good news .. the gradients can still appear even after using the custom EDID!

 

This is not a major issue and can be ignored altogether but I thought to share it here. Using the custom EDID helped a lot to get rid of the colour gradients that used to appear after display off/on. However, I found that certain procedure can still reproduce the gradients in limited way:

  1. Make sure "Require Password" is enabled in System Preferences > Security & Privacy > General
  2. Set the timing to anything, "immediately" for example
  3. Allow the system to run screensaver
  4. Cancel the screensaver and password will be required
  5. Gradients are visible on the login screen

That said, once I log in the gradients disappear so it is not a major issue as I said before.

 

This is the same as using a screen corner to trigger the login screen, right? I have it set up like you do, with 'Require Password' set to immediate. When I trigger the screen-off state via that corner, I don't see the gradients on the login screen.

Link to comment
Share on other sites

This is the same as using a screen corner to trigger the login screen, right? I have it set up like you do, with 'Require Password' set to immediate. When I trigger the screen-off state via that corner, I don't see the gradients on the login screen.

 

Nope. It is not the same. What you did is setting the display off/on and this does not replicate the small issue I mentioned. Use screensaver (and not just preview it, USE it).

Link to comment
Share on other sites

Nope. It is not the same. What you did is setting the display off/on and this does not replicate the small issue I mentioned. Use screensaver (and not just preview it, USE it).

 

How can I tell that the gradients are back? After I interrupt the screensaver, the background is grey (before I could tell because the wallpaper's blur had banding in it).

Link to comment
Share on other sites

How can I tell that the gradients are back? After I interrupt the screensaver, the background is grey (before I could tell because the wallpaper's blur had banding in it).

 

I'm not sure why the background is grey as you say. Once you interrupt the screensaver you will be faced with log-screen that have the screensaver playing blurred in the background like this:

 

IMAG0335.jpg

 

The white shape on the left of my picture is actually blurred Apple logo as I am using screensaver: "Message". Again, once you put the password and log in the gradients will be gone for good so it is just temporary in this situation. 

Link to comment
Share on other sites

  • 1 month later...

 

I'm pretty sure I've made changes correctly but to be sure, here they are: https://i.imgur.com/UBm51Nw.png

 

Steps performed:

  • Extract EDID from registry
  • Switch to EDID 1.4
  • Open Hexa Editor
  • Change first basic parameter from 80 to 90
  • Close it, Deltacast EDID will prompt for checksum fix, hit OK
  • Done

 

 

That helped. Thanks a lot!

Guys, you're all geniuses.

Link to comment
Share on other sites

  • 2 years later...
  • 9 months later...
On 4/16/2015 at 3:36 AM, intruder16 said:

[sOLVED] - Look at the end of this post for solution.

 

Hi all,

 

I have a Lenovo IdeaPad Y510p with Intel HD 4600 graphics as shown in my signature. Now, as the title says, I am having issue with my graphics. When i put the display to sleep or do anything that switches display off, like, changing resolution, putting display / system to sleep etc., after waking up it seems like there are 16-bit colours instead of normal 32-bit.

 

Pardon the low quality capture of the glitch, as I was not able to capture the details in my {censored} camera. Anyway, this is how the bands/gradients/16-bit colours look :

 

gkvxhCe.jpg

 

These are not exactly like 16-bit but they do seem like it in translucent areas (like launchpad, notification center), shadows, desktop wallpaper etc. Again, it only happens after turning display off then on.

 

Also, just for the record, I do have QE/CI, and everything else like Power Management, Sleep, etc working perfectly.

 

Other posts about same issue:

 

It seems like those having Lenovo Y510p and Y410p are suffering from these problems, also a guy having an Asus K550JK, all of them having same IGPU HD4600 of course. You can see the posts linked below regarding this issue :

 

Y510p reference here (under "Not Working" section)

Asus K550JK reference here.

Y410p reference here.

I also made some posts regarding this issue in a thread dedicated to "Fixing IGPU"  here and here.

 

Things i've tried so far :

  • different ig-platform-id's with patched framebuffer data.
  • changing DVMT pre-alloc memory in BIOS and patching framebuffer to match.
  • custom EDID Injection

and all of them didn't help.

 

Now, i have dumped the Intel Registers in both Linux and Mac. I've been trying for hours to make sense of them but i couldn't right now (but I'm trying hard). I'd appreciate it very much if somebody would take a look.

 

Attached is the whole folder containing dumps before and after system sleep (and display sleep too) in both Linux and Mac.

 

 

I could not find any solution for this issue, and if anybody has this issue or solved it or any ideas, please post here. It would be great to hear from you guys. Thanks in advance.

 
=======
Solution :
=======
 
Thanks to @RehabMan and @vusun123 for their suggestions coz of which the issue is fixed. @ahmed_ais, thanks for the hard work mate. You are making OS X experience in Y510p more awesome day by day.
 
Also, thanks to all i forgot to add for their contribution and suggestions.
 
So it turns out the solution is actually an easy one. The EDID info needed to be customised for proper functioning of the display. Specifically:
  • Change EDID version from 1.3 to 1.4
  • Change basic parameter from 80 -> 90
  • Fix the checksum

 

Original EDID from Darwin Dumper:



header:          00 ff ff ff ff ff ff 00
serial number:   30 e4 16 04 00 00 00 00 00 17
version:         01 03
basic params:    80 23 13 78 0a
chroma info:     15 d5 9e 59 50 98 26 0e 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    1a 36 80 a0 70 38 1f 40 30 20 35 00 59 c2 10 00 00 19
descriptor 2:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
descriptor 3:    00 00 00 fe 00 4c 47 20 44 69 73 70 6c 61 79 0a 20 20
descriptor 4:    00 00 00 fe 00 4c 50 31 35 36 57 46 31 2d 54 4c 43 32
extensions:      00
checksum:        7d

Modified EDID:


header:          00 ff ff ff ff ff ff 00
serial number:   30 e4 16 04 00 00 00 00 00 17
version:         01 04
basic params:    90 23 13 78 0a
chroma info:     15 d5 9e 59 50 98 26 0e 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    1a 36 80 a0 70 38 1f 40 30 20 35 00 59 c2 10 00 00 19
descriptor 2:    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
descriptor 3:    00 00 00 fe 00 4c 47 20 44 69 73 70 6c 61 79 0a 20 20
descriptor 4:    00 00 00 fe 00 4c 50 31 35 36 57 46 31 2d 54 4c 43 32
extensions:      00
checksum:        6c

As you can see, the changes are in "version:" from 03 to 04, "basic params:" from 80 to 90 and the calculated checksum from 7D to 6C which might be different for you.

 

 

Source if you need it.

Intel Reg Dumps.zip

Intruder’s MacBook Pro.ioreg.zip

config.plist.zip

 

I have the same issue about gradient color is not smooth.

How to apply the patch.

I attached my clover folder and output of DarwinDumper

 

It seems my edid version from dump is not like your version ( 01 04 already)

 

Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   06 af ed 34 00 00 00 00 00 16
version:         01 04
basic params:    95 22 13 78 02
chroma info:     d1 15 9e 59 53 9b 27 1e 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    b0 36 80 b4 70 38 1e 40 30 64 31 00 58 c1 10 00 00 18
descriptor 2:    00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 20
descriptor 3:    00 00 00 fe 00 41 55 4f 0a 20 20 20 20 20 20 20 20 20
descriptor 4:    00 00 00 fe 00 42 31 35 36 48 54 4e 30 33 2e 34 20 0a
extensions:      00
checksum:        f6

One more thing: my laptop is using edp so I have to use ig-platform-id is 0x0d220003 to have QE/CI work

 

Please help!

 

CLOVER_2017.09.15.zip

DarwinDumper_3.0.4_15.09_08.08.59_MacBookPro11,1_Lenovo_X64_High Sierra_17B1003_minh.zip

Edited by minhasp
Link to comment
Share on other sites

 Share

×
×
  • Create New...