Jump to content

Intel HD 4000 On Surface Pro Washed Out Screen From AppleIntelFrameBufferCapri


VampireHunter_D
 Share

18 posts in this topic

Recommended Posts

I am looking for any suggestions on how to resolve an issue I have where the screen is distored, blurred, hazy, or washed out with an intel hd 4000 on a surface pro. I have attached two DSDTs one with ig-platform-id 4 and the other with 9 and some screen shots.

 

platform-id-4.jpg is what the washed out display looks like and gfxinject.jpg is an image taken if I use an older version of clover with a slightly patched DSDT and NullCPU (I can not get this combo to work on the newer versions of Clover nor do I really want to since there is no APM among other issues).

 

The kernel options I am passing are

 

-v npci=0x2000 slide=0 dart=0

 

To boot I am using Clover 1974, and using a MacBookPro10.1 SMBIOS definition. 

 

The Surface Pro appears to have two ports, 0 is the internal display and 1 is a mini displayport.

 

I have tried every ig-platform-id. The best I get is using platform id 1660004 which seems to match the hardware pretty closely with 32mb (as Windows reports) and one port. With this platform id and no modification to AppleIntelFrameBufferCapri I get the washed out display as shown in platform-id-4.jpg. Sleep and speed stepping all seem to work fine, just the display is incorrect.

 

Based upon what Windows reports as the card being a Rev.9 and when looking at the system profiler it sees it as a 1660009 I have also focused on this platform. If I hack AppleIntelFrameBufferCapri I still get the same results as using ig-platform-id 4 with booting to a washed out screen. 

 

Below are the mods I have tried on AppleInteFrameBufferCapri

 

Defaults are

AAPL,ig-platform-id: 01660004, Stolen RAM for FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1
@0, 05 03 00 00 02 00 00 00 30 02 00 00 // (LVDS)

AAPL,ig-platform-id: 01660009, Stolen RAM for FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - 0mb VRAM
@0, 01 00 00 00 02 00 00 00 30 00 00 00 // (LVDS)
@1, 02 05 00 00 00 04 00 00 07 01 00 00 // (DisplayPort)
@2, 03 04 00 00 00 04 00 00 07 01 00 00 // (DisplayPort) 

 For 01660004 here are the mods I have tried on port 0

 

//Switch the port from 02 00 to 00 04. Boot is the same washed out

05 03 00 00 00 04 00 00 30 02 00 00

 

//Remove Dual Link?? It is necessary but I figured I would try. Boots to black screen

05 03 00 00 02 00 00 00 30 00 00 00

 

//Use LVDS from platform id-9. Boots to black screen

01 00 00 00 02 00 00 00 30 00 00 00

 

//Use LVDS from platform id-9 and add dual link??? Boots to black screen

01 00 00 00 02 00 00 00 30 02 00 00

 

 

For 01660009 here are the mods I have tried on port 0

 

//Add dual link??? to lvds. Boots to black screen

01 00 00 00 02 00 00 00 30 02 00 00

 

//Use LVDS from platform id 4. Boots to washed out screen

05 03 00 00 02 00 00 00 30 02 00 00

 

//Use LVDS from platform id 4 with port from 02 00 to 00 04. Boots to washed out screen

05 03 00 00 00 04 00 00 30 02 00 00

 

 

I tried a few other random combinations with no success, and honestly I was just guessing. I either got a black screen or no display. 

 

If anyone has any thoughts are suggestions I am open to anything. At this point I am not sure what else to try. If there is a piece of important information I forgot to include please feel free to ask.

 

Thanks.

Spro_hd4000.zip

Link to comment
Share on other sites

  • 2 weeks later...

So I kind of gave up messing with the connector properties since that seems like somewhat of dead end especially with 10.8.5 and a new AppleIntelFrameBufferCapri coming.  

 

However after some poking I was able to create a DSDT that boots using the EDID from Clover's GFX injection. The issue is when using this EDID AppleBackLightDisplay fails to load and subsequently sleep and display brightness fail and the only resolution that works is 1920x1080. 

 

So here is where I am currently at. 

 

Using ig-platform-id of 4 and using the monitors original EDID I can boot to a washed out screen that is barely legible. All resolutions work and sleep and brightness work.

 

Using ig-platform-id of a or b with the EDID from Clover's injection I can boot to a normal looking screen that only supports 1920x1080, brightness does not work, and sleep does not work. 

 

I have attached a zip file containing two DSDTs, one set to ig-platform-id of 4 and the original EDID for the surface and the other set to ig-platform-id of a with Clover's EDID , otherwise they are identical. Both have the common set of back light data in their IGPU/_DSM section. Also included in the zip are two ioreg text dumps from when booted with these DSDTs and the config.plist that Clover is using.

 

For reference here is the hex and Base64 for both EDIDs

 

Surface Pro EDID:

                                    /* 0000 */    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
		                    /* 0008 */    0x4C, 0xA3, 0x42, 0x32, 0x00, 0x00, 0x00, 0x00,
		                    /* 0010 */    0x00, 0x16, 0x01, 0x03, 0x80, 0x17, 0x0D, 0x78,
		                    /* 0018 */    0x0A, 0x87, 0xF5, 0x94, 0x57, 0x4F, 0x8C, 0x27,
		                    /* 0020 */    0x27, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
		                    /* 0028 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
		                    /* 0030 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2A, 0x35,
		                    /* 0038 */    0x80, 0xA0, 0x70, 0x38, 0x0B, 0x40, 0x18, 0x10,
		                    /* 0040 */    0x35, 0x00, 0xEB, 0x84, 0x00, 0x00, 0x00, 0x19,
		                    /* 0048 */    0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
		                    /* 0050 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xDC, 0x03,
		                    /* 0058 */    0x74, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x53,
		                    /* 0060 */    0x41, 0x4D, 0x53, 0x55, 0x4E, 0x47, 0x0A, 0x20,
		                    /* 0068 */    0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE,
		                    /* 0070 */    0x00, 0x31, 0x30, 0x36, 0x48, 0x4C, 0x30, 0x31,
		                    /* 0078 */    0x2D, 0x30, 0x30, 0x31, 0x0A, 0x20, 0x00, 0xEA

AP///////wBMo0IyAAAAAAAWAQOAFw14Cof1lFdPjCcnUFQAAAABAQEBAQEBAQEBAQEBAQEBKjWAoHA4C0AYEDUA64QAAAAZAAAADwAAAAAAAAAAAETcA3QAAAAA/gBTQU1TVU5HCiAgICAgAAAA/gAxMDZITDAxLTAwMQogAOo=

 

 

 

Clover EDID:

                                    /* 0000 */    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 
		                    /* 0008 */    0x36, 0x7F, 0x03, 0x00, 0x0F, 0x00, 0x00, 0x00, 
		                    /* 0010 */    0x00, 0x0C, 0x01, 0x03, 0x80, 0x00, 0x00, 0xFF, 
		                    /* 0018 */    0x2F, 0x00, 0x00, 0xA0, 0x57, 0x49, 0x9B, 0x26, 
		                    /* 0020 */    0x10, 0x48, 0x4F, 0x00, 0x00, 0x00, 0x01, 0x01, 
		                    /* 0028 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
		                    /* 0030 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3A, 
		                    /* 0038 */    0x80, 0x18, 0x71, 0x38, 0x2D, 0x40, 0x58, 0x2D, 
		                    /* 0040 */    0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 
		                    /* 0048 */    0x00, 0x00, 0x00, 0xFC, 0x00, 0x4E, 0x6F, 0x74, 
		                    /* 0050 */    0x65, 0x62, 0x6F, 0x6F, 0x6B, 0x50, 0x61, 0x6E, 
		                    /* 0058 */    0x65, 0x6C, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x3C, 
		                    /* 0060 */    0x3D, 0x43, 0x44, 0x0F, 0x01, 0x00, 0x00, 0x00, 
		                    /* 0068 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 
		                    /* 0070 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
		                    /* 0078 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC

AP///////wA2fwMADwAAAAAMAQOAAAD/LwAAoFdJmyYQSE8AAAABAQEBAQEBAQEBAQEBAQEBAjqAGHE4LUBYLTYAAAAAAAAeAAAA/ABOb3RlYm9va1BhbmVsAAAA/QA8PUNEDwEAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALw=

 

 

My thought is there might be some mod I can do to the EDID that might get the AppleBackLightDisplay booted when using ig-platform-id a. So if anyone has any thoughts or any good references about fixing the AppleBackLightDisplay from EDID issues please let me know.

 

Thanks.

 

 

 

Spro_Update.zip

Link to comment
Share on other sites

  • 1 month later...

I made a clean install and update to Mavericks, and there has been a slight change. Using Platform IDs of 01660000, 01660001, 01660002, 01660008, and 01660009 I am able to boot and right when the display initializes it freezes at the apple logo. All off these ids use this port configurations in AppleIntelFrameBufferCapri

01 00 00 00 02 00 00 00 30 00 00 00

Using platform IDs 01660004 still results in the white tinted washed out screen with full sleep support and 0166000A boots to a normal screen with no Power Management since it thinks the display is a desktop monitor.

 

Attached are the latest DSDT I am using. DSDT.aml.4 is using the native EDID from the Suface Pro display that has been run through FixEdid, and DSDT.aml.a is using the EDID from Clover that has been run through FixEDID. 

 

So the problems to solve are fixing a HD4000 with a white tint or washed out screen, OR, fix the issue when the display freezes on initialization, OR, get power management to work with a monitor the OS thinks is a desktop display (ACPIBackLight.kext does not seem to work).

 

I am open to trying any suggestions, Thanks.

DSDT_4_A_fedid.zip

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

@ VampireHunter_D

 

well I don't know much about hackintoshing but,

after lots of trail and error, here's what i use and what works for me:

the dsdt and ssdt from the "surface 1 & 2" mavericks guide as well as all the kext included in the thread, with the latest clover releases.

injectEDID is always enabled.

 no sleep support by default, and I've changed the color profile to "Generic RGB" to get rid of the Glow. 

Lastly I use "Brightness slider"(screen filer app from the appstore)  to dim the screen, since brightness does not seem to work.

 

 

but I'm interested in what you're doing, I'll try your DSDTs and report.

It'd would be really sweet to get proper sleep and brightness.

Link to comment
Share on other sites

VampireHunter_D

 

Great news  :lol:

 

Using "4_DSDT.aml( with the native EDID )", in your 3rd post and the settings below(  in the latest clover release); I was able to successfully get a working brightness slide, sleep and all resoluttions , with no visual artifacts ( No max brightness though, and brightness level resets to around 70% after every reboot  :/  ).

 

Clover settings: 
    No DSDT Fixes( at least no dsdt USB Fix : will cause kernel panic)
    Drop all OEM ssdt (ssdt: Drop OEM)
    graphics: No EDID injection, inject Intel
    SMBIOS : macbook air 5,2 2012

the rest are defaults.

 

 

you should contact  JahStories after testing, so that he'd incorporate it into the guide. 

 

Edit: As you mentioned, no power management...  No battery status.

post-1292583-0-16827400-1391867443_thumb.png

Link to comment
Share on other sites

Nice osx lander, i had tried that dsdt but i did not figured out what was causing the kernel panics!

 

Thanks, now we have sleep and buildin display, still early to update the file package since backlight is at the lowest state and it's not dimmable, even if there is a slider...

Link to comment
Share on other sites

no sorry, probably i've messed my kexts trying to patch the backlight...

i can't adjust the brightness, i don't even get the slider under monitor, but its builtin and sleep works, btw i got an auto rewake issue caused by: GLAN XHC1


do you have this issue too?

Link to comment
Share on other sites

ok, i've replaced applebacklightexpert.kext with a non patched one and now i can dim the brightness...

but the maximum resolution isn't enought, it's just half the original...

btw i've asked rehabman to apply the battery patch to the dsdt, that should fix it...

if you want you can post the config.plist and the dsdt to the guide thread as a test package, so others can try...

 

when proper brightness and battery will be fixed i'll update the file package to v0.3 finally...

 

Thanks

Link to comment
Share on other sites

Thanks osxlander i've fixed max brightness and battery, it was useless without full backlight...

btw i never had problem with resolutions, always had every since ver0.0 XD

UPDATE TO THE MAIN POST

 

V0.3 UPDATE (FullProperBacklightSleepandBattery)

link

How to install:

  • Use KextDrop (provided) to install ACPIBacklight.kext and VoodooBattery.kext
  • Delete AppleSmartBatteryManager.kext efrom System/Library/Extensions/
  • Copy the provided dsdt.aml to efi/clover/acpi/patched
  • Copy the config.plist to efi/clover
Link to comment
Share on other sites

 Share

×
×
  • Create New...