Contribute
Register

Solved Blank Screen after Transcript Offline on IntelHD3000

Status
Not open for further replies.
Joined
Apr 17, 2011
Messages
150
Motherboard
Lenovo Z50-70
CPU
Intel Core i5 4210U
Graphics
Intel HD 4400, Nvidia GT-820M
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
This fix applies if you have all of the below:

1. You have a laptop with screen having native resolution higher than 1280x800.
2. Your GPU is Intel HD3000 with DeviceID 0x0116. (Might also work with other DevIds).
3. You get "Transcript Offline : Buffer pool allocate [18100] failed" error with AppleIntelSNBGraphics.kext & then the display goes blank.

You need a DSDT fix in order to get the GPU working with full QE/CI.

Note: Some users are also mentioning greenish screen with artifacts. They can also try this & post if successful.

FIX begins here:

1. Download & install DSDTSE from here: http://www.osx86.es/Archivos/DSDTSE.zip

2. Extract your DSDT using the option is DSDTSE.

3. In the "Locate" drop-box, click GFX0. If GFX0 is not present, use IGD0 instead but first see if GFX0 exists.

4. Add the below code properly :



Code:
Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "AAPL00,DualLink", 
                        Buffer (0x04)
                        {
                            0x01, 0x00, 0x00, 0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

just after these lines
Code:
Device (GFX0)
        {
            Name (_ADR, 0x00020000)
:

5. Click compile. DSDTSE would prompt you to save first, do so.

At this point, two things might happen. Either the DSDT would be compiled successfully or else there would be 1 error. If there are more than one errors, you've done something wrong.

The one error would be "DTGP not found". This can be fixed easily by adding the following code just after the first curly braces in the DSDT.

Code:
Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }

Add the above code just after
Code:
DefinitionBlock ("./dsdt.aml", "DSDT", 2, "Sony", "VAIO", 0x20080725)

{


Now compile the DSDT & drag the DSDT.aml file to the desktop. Run Multibeast & check "USER DSDT" & MacbookPro 8,1 is Customization>System Definitions.

After Multibeast finishes, Reboot.


You will still get "Transcript Offline : Buffer pool allocate [18100] failed" error but this time the display should come up with Full QE/CI.

Please post how this goes.

All of the credit goes to member "exoteg" to figure it out. viewtopic.php?f=15&t=26767&start=90

Original creditor is "CharredPC" of InsanelyMac forums. http://www.insanelymac.com/forum/index. ... try1362685

Why this works ?


As explained by "CharredPC",

The reason why this works is easy. Higher-resolution LCD's require two data lines to handle the increased information. With my original 1280x800 LCD, OSX worked perfectly. Once I upgraded it to a 1440x900, OSX showed a black screen. Just like in a DVI connector, to get better resolutions you need... you got it- Dual Link capability. Windows and some older OSX drivers + Natit automatically enable Dual link, but the latest Leopard stock kexts do not. Without this flag telling OSX to use Dual Link, your backlight comes on, but the video data isn't getting through. Once this fix is added, OSX knows to send a dual stream of data, and the image comes through.
 

Attachments

  • dsdt.aml
    30.5 KB · Views: 799
I can confirm that this does fix the corruption (only left half screen visible, wrong colors) I've had with my 0x0116 on 10.7 GM.
 
SANGEKi said:
I can confirm that this does fix the corruption (only left half screen visible, wrong colors) I've had with my 0x0116 on 10.7 GM.


That's great news. :thumbup:
 
Virtual bool IOHIDEventSystemUserCLient::initWithTask(task*, void* Unit32): Client task not privledged to open IOHIDSystem for mapping memory

Well, I tried, and I got that. The screen also garbles at the top third still.
 
pauldmps said:
This fix applies if you have all of the below:

1. You have a laptop with screen having native resolution higher than 1280x800.
2. Your GPU is Intel HD3000 with DeviceID 0x0116. (Might also work with other DevIds).
3. You get "Transcript Offline : Buffer pool allocate [18100] failed" error with AppleIntelSNBGraphics.kext & then the display goes blank.

You need a DSDT fix in order to get the GPU working with full QE/CI.

Note: Some users are also mentioning greenish screen with artifacts. They can also try this & post if successful.

FIX begins here:

1. Download & install DSDTSE from here: http://www.osx86.es/Archivos/DSDTSE.zip

2. Extract your DSDT using the option is DSDTSE.

3. In the "Locate" drop-box, click GFX0. If GFX0 is not present, use IGD0 instead but first see if GFX0 exists.

4. Add the below code properly :



Code:
Method (_DSM, 4, NotSerialized)
            {
                Store (Package (0x02)
                    {
                        "AAPL00,DualLink", 
                        Buffer (0x04)
                        {
                            0x01, 0x00, 0x00, 0x00
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }

just after these lines
Code:
Device (GFX0)
        {
            Name (_ADR, 0x00020000)
:

5. Click compile. DSDTSE would prompt you to save first, do so.

At this point, two things might happen. Either the DSDT would be compiled successfully or else there would be 1 error. If there are more than one errors, you've done something wrong.

The one error would be "DTGP not found". This can be fixed easily by adding the following code just after the first curly braces in the DSDT.

Code:
Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }

Add the above code just after
Code:
DefinitionBlock ("./dsdt.aml", "DSDT", 2, "Sony", "VAIO", 0x20080725)

{


Now compile the DSDT & drag the DSDT.aml file to the desktop. Run Multibeast & check "USER DSDT" & MacbookPro 8,1 is Customization>System Definitions.

After Multibeast finishes, Reboot.


You will still get "Transcript Offline : Buffer pool allocate [18100] failed" error but this time the display should come up with Full QE/CI.

Please post how this goes.

All of the credit goes to member "exoteg" to figure it out. http://www.tonymacx86.com/viewtopic.php ... 7&start=90

Original creditor is "CharredPC" of InsanelyMac forums. http://www.insanelymac.com/forum/index. ... try1362685

Why this works ?


As explained by "CharredPC",

The reason why this works is easy. Higher-resolution LCD's require two data lines to handle the increased information. With my original 1280x800 LCD, OSX worked perfectly. Once I upgraded it to a 1440x900, OSX showed a black screen. Just like in a DVI connector, to get better resolutions you need... you got it- Dual Link capability. Windows and some older OSX drivers + Natit automatically enable Dual link, but the latest Leopard stock kexts do not. Without this flag telling OSX to use Dual Link, your backlight comes on, but the video data isn't getting through. Once this fix is added, OSX knows to send a dual stream of data, and the image comes through.

Hi, I am getting these errors. These errors do not appear until i add the code. I don't think I am doing it wrong.

Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20728: If (SS3)
Error 4096 - syntax error, unexpected PARSEOP_IF ^

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20761: \_SB.PCI0.GFX0.OPTS (Arg0)
Error 4064 - Object does not exist ^ (\_SB.PCI0.GFX0.OPTS)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20762: OEMS (Arg0)
Error 4064 - Object does not exist ^ (OEMS)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20768: \_SB.ATKD.GENW (Arg0)
Error 4064 - Object does not exist ^ (\_SB.ATKD.GENW)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20769: \_SB.PCI0.GFX0.OWAK (Arg0)
Error 4064 - Object does not exist ^ (\_SB.PCI0.GFX0.OWAK)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20770: OEMW (Arg0)
Error 4064 - Object does not exist ^ (OEMW)

ASL Input: /Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 20808 lines, 641200 bytes, 9250 keywords
Compilation complete. 6 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
 
lightmanrt said:
Hi, I am getting these errors. These errors do not appear until i add the code. I don't think I am doing it wrong.

Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20728: If (SS3)
Error 4096 - syntax error, unexpected PARSEOP_IF ^

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20761: \_SB.PCI0.GFX0.OPTS (Arg0)
Error 4064 - Object does not exist ^ (\_SB.PCI0.GFX0.OPTS)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20762: OEMS (Arg0)
Error 4064 - Object does not exist ^ (OEMS)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20768: \_SB.ATKD.GENW (Arg0)
Error 4064 - Object does not exist ^ (\_SB.ATKD.GENW)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20769: \_SB.PCI0.GFX0.OWAK (Arg0)
Error 4064 - Object does not exist ^ (\_SB.PCI0.GFX0.OWAK)

/Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 20770: OEMW (Arg0)
Error 4064 - Object does not exist ^ (OEMW)

ASL Input: /Users/robertaterrano/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 20808 lines, 641200 bytes, 9250 keywords
Compilation complete. 6 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Are you trying out this on a laptop? If not, you might need to add this code under IGD0 & not GFX0.

First check where you display is connected. Click "Get registry info" is DSDTSE. This will open IORegistryExplorer. Expand all items there until you find "display0". It would be under either GFX0 or IGD0 depending on your machine.

I am also attaching my DSDT to the first post, so that you can see where to add the code. DO NOT INSTALL MY DSDT ONTO YOUR MACHINE!!!

And please don't quote such long posts.
 
Hi, I also have an Intel HD3000 with Id 0116, but in my case I can always boot, but it shows up as a 64mb video card, no QE/CI and no custom resolution. When I try this, nothing happens and I also can't change resolution with the EDID thing. Help please!

Edit: also though I'm using a MacBookPro8,1 smbios, System Profile shows up as an iMac, but IORegExplorer says it's a MacBookPro!! (thought this was weird and could be a reason)
 
keog said:
Hi, I also have an Intel HD3000 with Id 0116, but in my case I can always boot, but it shows up as a 64mb video card, no QE/CI and no custom resolution. When I try this, nothing happens and I also can't change resolution with the EDID thing. Help please!

Edit: also though I'm using a MacBookPro8,1 smbios, System Profile shows up as an iMac, but IORegExplorer says it's a MacBookPro!! (thought this was weird and could be a reason)

Could you upload a snapshot of Graphics/Displays in system profiler.

Also note that this works only in Lion & not SL.

Also check "Extensions" in system profiler if both AppleIntelHDGraphics.kext & AppleIntelSNBGraphicsFB.kext are getting loaded.

Do you get "SNB Framebuffer did not show up, unload" on verbose boot ?

What version of Chameleon/Chimera are you using ?
 
alperenc said:
Thanks!! It worked for my Asus P8Z68-VPRO.

What problem did you have ? Blank screen (like me) or graphics corruption ?
 
Status
Not open for further replies.
Back
Top