Jump to content

Please help me in DSDT patching for Intel HD 3000 Graphics


Recommended Posts

Posted

Hi,


I am facing all those artifacts on my ASUS X53SC Laptop and found that many were able to solve the problem by editing the DSDT by adding the following 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)
           }

But the problem is that the DSDT for my system already contains the following method with this code:

Method (_DSM, 4, Serialized)
               {
                   Name (_T_0, Zero)
                   If (LEqual (Arg0, Buffer (0x10)
                           {
                               /* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                               /* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
                           }))
                   {
                       Store (Zero, Local0)
                       Store (ShiftLeft (DerefOf (Index (Arg3, 0x03)), 0x18), Local0)
                       Add (ShiftLeft (DerefOf (Index (Arg3, 0x02)), 0x10), Local0,
                           Local0)
                       Add (ShiftLeft (DerefOf (Index (Arg3, One)), 0x08), Local0,
                           Local0)
                       Add (ShiftLeft (DerefOf (Index (Arg3, Zero)), Zero), Local0,
                           Local0)
                       If (LNotEqual (Arg1, 0x0100))
                       {
                           Return (Buffer (0x04)
                           {
                               0x02, 0x00, 0x00, 0x80
                           })
                       }
                       Store ("Optimus _DSM is called ", Debug)
                       While (One)
                       {
                           Store (Arg2, _T_0)
                           If (LEqual (_T_0, 0x00))
                           {
                               Store ("Optimus _DSM subfunc 0, return 0x04000001 ", Debug)
                               Return (Buffer (0x04)
                               {
                                   0x01, 0x00, 0x03, 0x04
                               })
                           }
                           Else
                           {
                               If (LEqual (_T_0, 0x1A))
                               {
                                   Store ("Optimus _DSM subfunc 26 ", Debug)
                                   If (And (Local0, One))
                                   {
                                       ShiftRight (Local0, 0x18, Local2)
                                       If (LEqual (Local2, 0x03))
                                       {
                                           Store ("Optimus _DSM subfunc 26, OMPR=3", Debug)
                                           Store (0x03, \OMPR)
                                       }
                                       If (LEqual (Local2, 0x02))
                                       {
                                           Store (0x02, \OMPR)
                                       }
                                   }
                                   If (LEqual (\PO54, Zero))
                                   {
                                       Return (Buffer (0x04)
                                       {
                                           0x59, 0x00, 0x00, 0x01
                                       })
                                   }
                                   Else
                                   {
                                       Return (Buffer (0x04)
                                       {
                                           0x41, 0x00, 0x00, 0x01
                                       })
                                   }
                               }
                               Else
                               {
                                   Return (Buffer (0x04)
                                   {
                                       0x02, 0x00, 0x00, 0x80
                                   })
                               }
                           }
                           Break
                       }
                   }
                   Return (0x00)
               }

Because i am very new to DSDT patching, i am unable to understand where should i incorporate the changes required so that i can make Intel HD 3000 Graphics work smoothly. I even tried some heroic things but then the output was a blank screen. Please help me in editing this _DSM method. My device id is 116.

Posted

I would try replacing

                    Return (0x00)

by

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

 

Or replace the existing _DSM by the new one, since it looks like to be related to nVidia Optimus, which doesn't work in hackintosh.

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Posted

Hi Cassio,


Thanks a lot for the suggestion. I see you are almost replying to all the posts here. That's great! People come to this forum for help and they don't return back disappointed. Hats off!


My problem hasn't got resolved. I've tried all different DSM methods i could find, tried replacing the existing one as you recommended, also tried modifying the default one with the extra stuff, but none of them are removing the artifacts on my Laptop. QE/CI is also not working. In the game of Chess, after 2 moves, the game hangs.


So please guide me as to what can i do..

Posted

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Posted

I did go through with the revogirl's blogs to increase the VRAM size and i was able to do so. But still bad luck. No QE/CI. If i play the game of chess, after 2 moves, it's still the same old story of freeze.

Posted

After multiple attempts, i have still not succeeded in making the display work 100%. I don't know why DSDT editing of _DSM method is not working for me. The only result i see if i edit the DSDT is a garbage screen. My device id is 116, so the system detects the card only if i set GraphicsEnabler=No and if set to Yes, it will show the card as unknown. Increasing the VRAM also didn't help.


Still those artifacts are haunting me. Everytime i play the game of Chess, it hangs after 2 moves. Someone please help!

Posted

This guy was having the same problem and found that the problem is in the LCD, he replaced the display (physically) and the problem is gone http://Olarila.com/forum/viewtopic.php?f=6&t=924 (portuguese)

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...