Mac OS X on x86 Hardware 2008–2024 Technical Archive
InfiniteMac OSx86 › OSx86 Core & 10.X › Resolution switching but no CI/QE in Snow
4,894 reads · 2009-12-04
Note 10.X Core Chameleon / Boot-132 Gigabyte G31M / P35 NVIDIA GeForce Retail DVD / USB

Resolution switching but no CI/QE in Snow

first post here... I'm migrating from a great working Leo System to snow... So far I have Snow retail installed with Chameleon 2.0rc3. I have everything working except graphics acceleration... CI/QE worked perfectly in Leopard with just an…

Primary Author
@macindude Published 2009-12-04
Collection
OSx86 Core & 10.X
Archival Footprint
4,894 historical reads · 2 curated field notes (from 5 dispatches) · 2009-12-04
Credited Voices (2)
@macindude (3)@Clubber_77 (2)

first post here... I'm migrating from a great working Leo System to snow... So far I have Snow retail installed with Chameleon 2.0rc3. I have everything working except graphics acceleration... CI/QE worked perfectly in Leopard with just an EFI string. I've tried the EFI string, Chameleon's Graphics Enabler, and natit x64... Each with the same result: I have resolution switching (which I don't have without one of the modifications), but no acceleration (no ripple effects in dashboard, translucent menu bar, dvd player won't work, etc.). NVDANV50.kext and NVDAResman.kext are loaded and have their dependencies satisfied. Any ideas?

My System:
Gigabyte EP45-DS3L
Intel Core2Quad Q6600
2x 2GB Corsair DDR2 6400
Asus Silent nVidia GeForce 9600 GT
PCI FireWire Card
PCI Atheros based 802.11b,g,n Card
Seagate 750GB SATA HD
LG SATA DVD±RW

Author Updates & Technical Revisions

Follow-up dispatches by @macindude

Author Update #1 @macindude 2009-12-04 ↳ Re: @Clubber_77
@Clubber_77The injector (out of a system directory) or EFI string- CI/QE does not work. you will help DSDT patch

I'm sorry, I don't know if I understand... Are you saying that my method is known NOT to work in Snow Leopard? What do I need to add to the DSDT?

Author Update #2 @macindude 2009-12-04

hey, thank you so much! I actually happened upon this method (something very similar) and modified my DSDT about a half hour ago. It's working like a charm! So, for the record, this was the solution to my problem...

Synthesized Community Field Notes

2 technical responses curated from 5 original dispatches

Field Note #1 @Clubber_77 2009-12-04

The injector (out of a system directory) or EFI string- CI/QE does not work.
you will help DSDT patch

Field Note #2 @Clubber_77 2009-12-04

remove all injectors, EFI string, and put this into your DSDT

Device (GFX0)
                {
                    Name (_ADR, Zero)
                    Name (_SUN, One)
                    Method (_DSM, 4, NotSerialized)
                    {
                        Store (Package (0x16)
                            {
                                "@0,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@0,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@0,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-A"
                                }, 

                                "@1,compatible", 
                                Buffer (0x0B)
                                {
                                    "NVDA,NVMac"
                                }, 

                                "@1,device_type", 
                                Buffer (0x08)
                                {
                                    "display"
                                }, 

                                "@1,name", 
                                Buffer (0x0F)
                                {
                                    "NVDA,Display-B"
                                }, 

                                "NVCAP", 
                                Buffer (0x18)
                                {
                                    /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                    /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                                }, 

                                "VRAM,totalsize", 
                                Buffer (0x04)
                                {
                                    0x00, 0x00, 0x00, 0x20
                                }, 

                                "device_type", 
                                Buffer (0x0D)
                                {
                                    "NVDA,GeForce"
                                }, 

                                "model", 
                                Buffer (0x17)
                                {
                                    "nVidia GeForce 9600 GT"
                                }, 

                                "rom-revision", 
                                Buffer (0x25)
                                {
                                    "nVidia GeForce 9600 GT OpenGL Engine"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

___________________________________________________________________________________________________________________________

and put this between Method (_PTS, 1, NotSerialized) and Method (_WAK, 1, NotSerialized)

 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)
    }
Sources & Contributor Provenance (2 credited usernames · Thread #4860)
UsernameDossier ContributionDispatchesActive Window
@macindudePrimary Author32009-12-04
@Clubber_77Contributor22009-12-04