OS X 10.11.4 Build 15E65 and Skylake graphics support

OS X 10.11.4 (El Capitan) comes with new graphics drivers (kexts) for Skylake based hardware, and AppleIntelSKLGraphicsFramebuffer.kext includes the following hardware device-ids for supported Intel® processors. Have a look at the output of my yet to be released script – still a work in process – that most of you will know as AppleIntelFramebufferAzul.sh

AppleIntelGraphicsFramebuffer.sh v3.2 Copyright (c) 2012-2016 by Pike R. Alpha
------------------------------------------------------------------------
The supported platformIDs are:

[ 1] 0x191e0000 - Intel® HD Graphics 515..........(ULX GT2)
[ 2] 0x19160000 - Intel® HD Graphics 520..........(ULT GT2)
[ 3] 0x19260000 - Intel® Iris™ Graphics 550.......(ULT GT3)
[ 4] 0x191b0000 - Intel® HD Graphics 530..........(Halo GT2)
[ 5] 0x193b0000 - Intel® Iris™ Pro Graphics 580...(Halo GT4)
[ 6] 0x19120000 - Intel® HD Graphics 530..........(Desktop GT2)
[ 7] 0x19020001 - Intel® HD Graphics 510..........(Desktop GT1)
[ 8] 0x19170001 - Skylake Desktop.................(GT1.5)
[ 9] 0x19120001 - Intel® HD Graphics 530..........(Desktop GT2)
[10] 0x19320001 - Skylake Desktop.................(GT4)
[11] 0x19160002 - Intel® HD Graphics 520..........(ULT GT2)
[12] 0x19260002 - Intel® Iris™ Graphics 540.......(ULT GT3)
[13] 0x191e0003 - Intel® HD Graphics 515..........(ULX GT2)
[14] 0x19260004 - Intel® Iris™ Graphics 540.......(ULT GT3)
[15] 0x193b0005 - Intel® Iris™ Pro Graphics 580...(Halo GT4)
[16] 0x193b0006 - Intel® Iris™ Pro Graphics 580...(Halo GT4)

Note that the device-ids with a strikethrough are still inactive and thus cannot be used without first modifying them. Now let’s look at the data:

    0x191e0000) FACTORY_PLATFORM_INFO="0:
                0000 1e19 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0f05 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f8 0500 0000 0000
                50f9 0500 0000 0000 a0f9 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19160000) FACTORY_PLATFORM_INFO="0:
                0000 1619 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0f09 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f9 0500 0000 0000
                50fa 0500 0000 0000 a0fa 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19260000) FACTORY_PLATFORM_INFO="0:
                0000 2619 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0f09 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f9 0500 0000 0000
                50fa 0500 0000 0000 a0fa 0500 0000 0000
                0200 0000 0800 0000    
                ;;

    0x191b0000) FACTORY_PLATFORM_INFO="0:
                0000 1b19 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0f11 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f9 0500 0000 0000
                f0fa 0500 0000 0000 40fb 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x193b0000) FACTORY_PLATFORM_INFO="0:
                0000 3b19 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0204 0a00 0008 0000 8701 0000
                0306 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 8711 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f9 0500 0000 0000
                f0fa 0500 0000 0000 40fb 0500 0000 0000
                0200 0000 0800 0000    
                ;;

    0x19120000) FACTORY_PLATFORM_INFO="0:
                0000 1219 0000 0000 6649 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 ff00 0000 0100 0000
                2000 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 0306 0a00
                0004 0000 8701 0000 0f11 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 f0f9 0500 0000 0000
                40fb 0500 0000 0000 40fb 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19020001) FACTORY_PLATFORM_INFO="0:
                0100 0219 0000 0000 8049 0500 0000 0000
                0000 0000 0000 0004 0000 0000 0000 0000
                0000 0060 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 ff00 0000 0100 0000
                2000 0000 ff00 0000 0100 0000 2000 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0008 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19170001) FACTORY_PLATFORM_INFO="0:
                0100 1719 0000 0000 8049 0500 0000 0000
                0000 0000 0000 0004 0000 0000 0000 0000
                0000 0060 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 ff00 0000 0100 0000
                2000 0000 ff00 0000 0100 0000 2000 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0008 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19120001) FACTORY_PLATFORM_INFO="0:
                0100 1219 0000 0000 8049 0500 0000 0000
                0000 0000 0000 0004 0000 0000 0000 0000
                0000 0060 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 ff00 0000 0100 0000
                2000 0000 ff00 0000 0100 0000 2000 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0008 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19320001) FACTORY_PLATFORM_INFO="0:
                0100 3219 0000 0000 8049 0500 0000 0000
                0000 0000 0000 0004 0000 0000 0000 0000
                0000 0060 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 ff00 0000 0100 0000
                2000 0000 ff00 0000 0100 0000 2000 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0008 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0300 0000 0800 0000    
                ;;

    0x19160002) FACTORY_PLATFORM_INFO="0:
                0200 1619 0000 0000 8049 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 0000
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0a0b 0000 0000 0000
                0300 0000 0400 0000 80df 1710 0000 0000
                7805 0000 d205 0000 4006 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                a0fa 0500 0000 0000 a0fa 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19260002) FACTORY_PLATFORM_INFO="0:
                0200 2619 0000 0000 8049 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 0000
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8701 0000
                0204 0a00 0004 0000 8701 0000 ff00 0000
                0100 0000 2000 0000 0a0b 0000 0000 0000
                0300 0000 0400 0000 80df 1710 0000 0000
                7805 0000 d205 0000 4006 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                a0fa 0500 0000 0000 a0fa 0500 0000 0000
                0200 0000 0800 0000    
                ;;

    0x191e0003) FACTORY_PLATFORM_INFO="0:
                0300 1e19 0000 0000 9649 0500 0000 0000
                0102 0202 0000 0004 0000 2002 0000 5001
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 8101 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0604 0000 0000 0000
                0200 0000 0400 0000 00ef 1c0d 0000 0000
                7805 0000 d205 0000 4006 0000 0000 0000
                0000 0000 c800 0000 f0f8 0500 0000 0000
                a0f9 0500 0000 0000 40fc 0500 0000 0000
                0100 0000 0800 0000    
                ;;

    0x19260004) FACTORY_PLATFORM_INFO="0:
                0400 2619 0000 0000 8049 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 0000
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 c701 0000
                0204 0a00 0004 0000 c701 0000 ff00 0000
                0100 0000 2000 0000 0a0b 0000 0505 0600
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0200 0000 0800 0000    
                ;;

    0x193b0005) FACTORY_PLATFORM_INFO="0:
                0500 3b19 0000 0000 8049 0500 0000 0000
                0103 0303 0000 0004 0000 2002 0000 0000
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 0105 0900 0004 0000 c701 0000
                0204 0a00 0004 0000 c701 0000 ff00 0000
                0100 0000 2000 0000 0a13 0000 0005 0600
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0300 0000 0800 0000    
                ;;

    0x193b0006) FACTORY_PLATFORM_INFO="0:
                0600 3b19 0000 0000 8049 0500 0000 0000
                0101 0101 0000 0004 0000 2002 0000 0000
                0000 0060 6c05 0000 6c05 0000 0000 0000
                0000 0000 0000 0000 0000 0800 0200 0000
                9800 0000 ff00 0000 0100 0000 2000 0000
                ff00 0000 0100 0000 2000 0000 ff00 0000
                0100 0000 2000 0000 0a13 0000 0000 0600
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 0000 0000 0000 0000 0000 0000
                0000 0000 c800 0000 90fb 0500 0000 0000
                f0fb 0500 0000 0000 f0fb 0500 0000 0000
                0300 0000 0800 0000    
                ;;

Especially the last two data sets, but there is a third one with the same device-id. All three new and added to support processors with the Intel® Iris™ Pro Graphics 580 backed in. The most powerful Intel graphics ever.

Ok. So the first two words (0600 3b19) are the device-id (reversed). We know that. Just like all previous revision, but the next six words are new. And no. Sorry. I have no idea what they are used for. Anyway. The next forty three words are pretty much the same. With the exception of the termination value (2000 instead of 4000) and the feature bits (9800 and c701). The next forty one words are also still a mystery. Oh and they all drive an internal (eDP) panel:

0000 0000 0800 0200 0000 9800

Update: Laptop users are advised to use FakePCIID.kext (with injector) to fake a device id of 1912, or anything above 0x191d to bypass the check in AppleIntelSKLGraphicsGLDriver.bundle

Credit and thanks to doix for this update (see comments)!

Hmm. There is one other thing that I noticed in the setup that I used. Take a look at this snippet of the output of my AppleIntelInfo.kext:

iGPU P-States [ 2 5 (6) 21 24 27 30 ]

That is not good. The first three and last three values should not be there so the next thing that I did was to check the output of the Intel Power Gadget.
IGPUFreqError

Even worse (goes up to 3.3GHz) so something was obviously not quite right. Ah there it is – I was stil injection plist data for the IGPU, which is not necessary anymore. Anyway. You can reproduce this with the following snippet:

<key>Mac-DB15BD556843C820</key>
<dict>
        <key>IGPU</key>
        <dict>
                <key>BoostPState</key>
                <array>
                        <integer>24</integer>
                        <integer>24</integer>
                        <integer>24</integer>
                        <integer>24</integer>
                </array>
                <key>BoostTime</key>
                <array>
                         <integer>1</integer>
                         <integer>1</integer>
                         <integer>1</integer>
                         <integer>15</integer>
                </array>
        </dict>
</dict>

Not that the Cinebench score changes, because it didn’t, but just so that you know what to look for when it happens on your setup.

Ok. My flight is almost leaving, and then I will try to update my script, during the flight back home for a well deserved holiday with my family. Ok. This has to be it for now, but I will keep you posted of anything else that I may find, like the new AAPL,XXXX properties 😉

Edit: Okay. Apple sets the model name to: “Intel HD Graphics SKL CRB” and that in combination with the data from /S*/L*/E*/IOUSBHostFamily.kext/C*/P*/AppleUSBXHCIPCI.kext/C*/Info.plist

<key>SklCrb,1-XHCI</key>
<dict>
	<key>CFBundleIdentifier</key>
	<string>com.apple.driver.AppleUSBMergeNub</string>
	<key>IOClass</key>
	<string>AppleUSBMergeNub</string>
	<key>IONameMatch</key>
	<string>XHC1</string>
	<key>IOProviderClass</key>
	<string>AppleUSBXHCIPCI</string>
	<key>IOProviderMergeProperties</key>
	<dict>
		<key>port-count</key>
		<data>
		GgAAAA==
		</data>
		<key>ports</key>
		<dict>
			<key>HS01</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				AQAAAA==
				</data>
			</dict>
			<key>HS02</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				AgAAAA==
				</data>
			</dict>
			<key>HS03</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				AwAAAA==
				</data>
			</dict>
			<key>HS04</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				BAAAAA==
				</data>
			</dict>
			<key>HS05</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				BQAAAA==
				</data>
			</dict>
			<key>HS06</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				BgAAAA==
				</data>
			</dict>
			<key>HS07</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				BwAAAA==
				</data>
			</dict>
			<key>HS08</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				CAAAAA==
				</data>
			</dict>
			<key>HS09</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				CQAAAA==
				</data>
			</dict>
			<key>HS10</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				CgAAAA==
				</data>
			</dict>
			<key>HS11</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				CwAAAA==
				</data>
			</dict>
			<key>HS12</key>
			<dict>
				<key>UsbConnector</key>
				<integer>3</integer>
				<key>port</key>
				<data>
				DAAAAA==
				</data>
			</dict>
		</dict>
	</dict>
	<key>model</key>
	<string>SKLCRB1,1</string>
</dict>

That may put the Geekbench score the one that was found a few months ago, in a new light. I mean. That board-id (Mac-50619A408DB004DA) is still unused so who else – than Apple – would want to use this kind of data? Intel?

Advertisements

74 thoughts on “OS X 10.11.4 Build 15E65 and Skylake graphics support

  1. sorry for my ignorance..
    but first time trying a iGPU hackintosh there..

    what’s the expected usage of your script AppleIntelFramebufferAzul.sh?
    I say that because Intel HD 530 seems working without any patches using Clover..

    also one question I expected OSX VDA API (HW accelerated video decoding) would be working now on hackintosh with iGPU as using both a Nvidia Maxwell GTX970 GPU with Nvidia Web drivers and also a HD7950 VDA would not work..
    I mean even using a simple VDA check tool :
    https://github.com/cylonbrain/VDADecoderCheck
    says error creating HW decoder..
    also this is used in Flash so I can’t get HW GPU decode..

    also seems OSX has HW video encoder support via VideoToolbox.. there is even a tool iShowu that shows in preferences page if your GPU exposes HW acceleration encoder..
    also both Nvidia and AMD didn’t exposed so hoped iGPU would support that..

    so can check if it’s because some checks if it’s hackintosh or something.. i.e. some patches can be made to enable both OSX HW video decode and encode on hackintoshes?

  2. Pingback: D'autres traces de Skylake dans OS X 10.11.4 - Apple24 Boutique

  3. Pingback: Tracce del supporto a nuovi processori grafici Skylake in OS X 10.11.4 - macitynet.it

  4. Pingback: Apple、OS X 10.11.4に次期Macに採用すると思われる新しいSkylakeグラフィックのドライバを同梱。 | AAPL Ch.

  5. Pingback: 「OS X 10.11.4」に、次期Macに搭載されると噂の新CPUのSkylakeグラフィックドライバが発見か

    • Yes, but the current Apple frame buffer data does not support it. Also. That is the Intel® Iris™ Pro Graphics P580 (note the P) which is used in the Intel E3-1515M v5 (for example).

    • That is a very nice notebook. And anything with the Intel® i7-6700HQ processor (device-id 0x191b) and thus the Intel® HD Graphics 530 should work, since the frame buffer data is there, but it may still be (very) difficult to get everything fully functional.

      • What about HD 510? I’m trying to figure this one out, am I missing something?

        25.03.2016 23:37:04,000 kernel[0]: [IGPU] Will fallback to host-side scheduling if graphics firmware fails to load
        25.03.2016 23:37:04,000 kernel[0]: [IGPU] Chose to use graphics firmware based on platform
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] *****************************************************************************
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Failed to initialize graphics firmware. Falling back to host-side scheduling
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Scheduler interface revision = 1: Default EL Scheduler
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] *****************************************************************************
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Graphics accelerator is using scheduler interface revision 1: Default EL Scheduler
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Scheduler: Multiple channel indexes per command streamer
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Scheduler: Process CSB using HWS.
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Scheduler: PM notify enabled
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Graphics Address: PPGTT, Separate Address Space
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] MultiForceWake Enabled: Using 3D Driver
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] CoarsePowerGating Disabled
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] Scheduler Throttle Cap = 100ms.
        25.03.2016 23:37:06,000 kernel[0]: [IGPU] startGraphicsEngine: hwCaps compromised fNumSubSlices: 2 fExecUnitCount: 0.

      • That is the Intel® HD Graphics 510 (GT1) with device-id 0x1902, and that should work if you inject AAPL,ig-platform-id with 0x19000000. And you’ll need to inject a different value here, because the data for processors with device-id 0x19020000 cannot be used without modifications. Maybe fakeid also works, but I myself haven’t used it.

    • Hi Patrick,

      Ah I see. I was wrong – the Intel datasheet states that the values RP_STATE_RATIO_SLICE and RP_STATE_RATIO_UNSLICE are in granularity of 16.666Mhz, or zero when GT is in RC6, and thus I need to update AppleIntelInfo.kext

      For interested people: I will add Skylake support to AppleIntelInfo.kext and commit the update to my Github repository a.s.a.p (done, now available).

      Thank you for this update!

  6. pikeralpha I have tried fake id (using Clover) and no luck. Was using all the values and only 0x1902 and maybe 0x1926 seem to work, graphic driver is initialized but i’m stuck on sort of blinking screen with proper resolution but i think this is still a verbose mode, something is preventing the driver from going further, if only i know how to modify the framebuffer… on the previous version of this driver i had the same problem but far less output in the console

    I had a years of experience in OSX86 and would like to solve this problem not for me only but for everybody else, Pentium G4400 is much more affordable choice and the iGPU is definitely doable – this would be the first Pentium fully working since Arrandale architecture. I dont have the access to G4500 with HD 530 to check if the problem is CPU related (we still have to use fakecpuid but speedstem is working without any modifications just like on every other i3/i5/i7 CPU)

  7. Pingback: New version of AppleIntelInfo.kext with Skylake support – Pike's Universum

  8. Hello, I’ve installed 10.11.4 on my Lenovo Y700 ( i7-6700HQ / HD530) and I can’t seem to get the graphics to properly work. AppleIntelSKLGraphics.kext seems to crash WindowServer the second it is initialized. Does anyone have any idea on whats going on? I seem to be the first, that i could find, to have this issue.

    • I’ve managed to narrow down the problem to AppleIntelSKLGraphicsGLDrive plugin, if i disable it in AppleIntelSKLGraphics.kext, i can reach the desktop, but QE isn’t working…. any suggestion ?

      • I have the same problem with HD 510, AppleIntelSKLGraphics.kext is indeed crashing windowserver. when removed can boot to desktop, kexts are loaded, card is recognisable correctly but again no OpenGL, no proper acceleration. just artefacts

      • That is too bad, and I don’t know what the problem is, but I am willing to look at it. Can you first tell me the AAPL,ig-platform-id that you are injecting?

  9. Greetings Piker! Thank you very much for your willingness to assist. I just finished getting up to date with your blog, terribly sorry for what the IM community has become / done / said to you. And I agree, we must help ourselves first before crying that X isn’t working. That being said, if I see you’ll need support with testing and such, I’ll volunteer my hardware. Thanks!

    I’m injecting with Clover (UEFI) 0x191b0000 as this is the platform ID for HD530 and it’s supported in the latest build (supposedly, right?). I’ve tried FakeID and other *-platform-id’s, the end result being the same: black screen with blinking cursor – which after further investigation is caused by WindowServer (Assertion Failed (0), function CreateCompiler, file /L*/*/*/GPUDriversIntel-10.14.58/*/*/skl/usc_interface.cpp, line 1624) crashing when AppleIntelSKLGraphicsGLDriver is loaded.

    When the GLDriver is disabled, I can boot and reach the desktop, CE is active (as shown by IOReg). Please tell me what else I should provide.

    • Ok. Please provide the output of the Intel GPU dump tool (use Linux). Also. We need to know where that error is triggered, and I had a quick look but I can’t seem to locate 0x658 (line 1624) in the binary.

      • I’ll provide the Intel GPU Dump as soon as I get home. Here i’ve uploaded the .crash files so you can take a better look at the error as well as a ioregdump (using ioreg explorer 2.1) of the system with the GLDriver disabled. Hope this helps a bit.

      • 1. It’s showing up now, but it’s not working. I’ve used the board-id i found in it for Vendor8086Device191B – Mac-50619A408DB004DA
        2. That was my bad, during that particular boot I didn’t bother checking GenerateStates in Clover. Now i have a custom SSDT.
        3. Not sure what you mean, i’m not injecting on purpose AAPL strings. Maybe it’s clover?

        I assume you need the framebuffer dump from intel_framebuffer_dump ? I’ll get on that, hope it will compile fine on Ubuntu Live.

        Here are 2 ioregs: http://s000.tinyupload.com/index.php?file_id=48409713123288517349 one is using iMac17,1 board-id with a modified AGPM plist (basically copied the dict that has the data for 191b) and the other straight with the specific board-id added to smbios.

        The iMac one has a different heuristic value vs the 0xffffff from the board-id one.

      • Better, but…

        1.) Check/fix SBUS.
        2.) Figure out how you can disable the injection of the AAPL properties.
        3.) Do not use the old Skylake iMac dumps (it’s not using the IGPU).

      • 1. The DSDT is patched and SMBus should be detected properly.
        2. I assume you’re referring to graphics related AAPL strings? They’re injected by InjectIntel option in clover, if i don’t use it, i can’t reach the screen.
        3. I’ve used SKL iMac, MacBookAir6,1/2, used the custom board that supposedly supports that HD530(there is a ioreg dump with it), I’ve tried with MacBook9,1. Same result, are there other board-ids i should try?

        GPU Tools compiled, frambuffer_dump shows nothing reg_dump does manage to dump he registry. Do you need it?

  10. Hello Pike, I am getting the “failed to initialize graphics firmware” on a GA-Z170X-UD5 TH with a Core-i7-6700K, 4 Ghz. In Clover I have “Intel inject” set to true and the ig-platform-id set to 0x191b0000. Id 0x19120000 as well as 0x19120001 gives me black screens as if the HDMI signal is lost. what id should I use?

    • Your black screen issue has nothing to do with this message:
      [IGPU] *****************************************************************************
      [IGPU] Failed to initialize graphics firmware. Falling back to host-side scheduling
      [IGPU] Scheduler interface revision = 1: Default EL Scheduler
      [IGPU] *****************************************************************************

      That is fine. You probably need to patch the frame buffer data for HDMI support.

      • Sorry that I was a bit unclear. The “failed to initialise …” message appears in the log when I use id 0x191b0000. The other ids give me black screens. Apparently 0x191b0000 is not the correct id since it is falling back. This is all with the newest OSX 10.11.4. Should I set it to 0x19120000 instead? And how do I go about patching the framebuffer?

  11. I have a Lenovo Flex 3 14″ with a Core i5-6200U and Intel HD 520. However, I get black screens. I tried several ID’s, however, it first shuts off my internal display when it says “initPMRegisters” and then the display connected to HDMI switches off when windowserver tries starting. I set the DVMT prealloc to 64 MB in the BIOS and also tried 96 MB with no dice :/

    Would I need to patch the framebuffer or something for this to work?

    I can boot to the desktop (albeit with no acceleration) if I move the AppleIntelSKLGraphics kexts….

    • What system definition (SMBIOS settings) are you using? I mean. You may need to change “Config1” to “none” in /S*/L*/E*/AppleGraphicsControl.kext/C*/P*/AppleGraphicsDevicePolicy.kext/C*/Info.plist

      • Just took another try at it. Seems updating to 10.11.5 fixed QE/CI on my external HDMI display with ig-platform-id 0x19120000. The internal display doesn’t work though still :/

        I’m using MacbookPro9,1 SMBIOS

    • Hey, you’re probably experiencing WindowServer hang (the cause is AppleIntelSKGraphicsGLDriver.bundle). There are 2 fixes you can try:

      1. FakePCIID.kext (https://github.com/RehabMan/OS-X-Fake-PCI-ID) with an injector to fake a device id of 1912, 191e, basically anything above 0x191d*. (this is my injector: https://www.dropbox.com/s/hek0lqsefb57jmo/FakePCIID_Intel_SKL_Graphics.kext.zip?dl=0 )

      2. Patch the GLDriver binary to lower the check for 0x191d (more complicated, and doesn’t really bring anything in terms of improvement vs faking the id with FakePCIID.kext)

      *There’s a check in AppleIntelSKLGraphicsGLDriver.bundle that does an initial check if (dev_id > 0x19d) and our devices trigger it.

      This way you’ll get QE/CI working, but you’ll probably won’t have MTL** working… you can test that for sure by downloading this benchmark: https://itunes.apple.com/us/app/gfxbench-metal/id1044629456?mt=12
      ** MTL or Metal is Apple’s new Graphics API (like OpenGL, but proprietary for os x), it’s supposed to be faster in rendering 3D/2D, 10.12 UI will probably use MTL more than GL, so hackintosh users will need to have it working (desktop skylake graphics seem to work, mobile not…)

      Please report back if it works or not, if it works, mind posting a ioreg/iojones dump as well?

      Thanks!

      P.S. Pike, this is the common problem with all laptop users that posted here so far, could you update this post with some info on how to fix the problem?

  12. @pikeralpha, I found something in the code of MTLIGCCompiler.dlyb:
    “/System/Library/Extensions/AppleIntelKBLGraphicsGLDriver.bundle/Contents/MacOS/libigc.dylib”

    Does this mean Apple is skipping Skylake or what’s going on here? Kaby Lake is supposed to be release at the end of the year, will Apple release one or two macbooks with skylake to satisfy the public and then do a full release with Kaby Lake?

    • Apple won’t be skipping Skylake but it may add a new thinner Mac Book Pro line up. One with 16″ UHD display, Thunderbold 3, USB 3.1 and next generation NVMe drives from Samsung, but that is just me dreaming of course 😉

  13. @pikeralpha
    Hi
    I managed to get hd530 + acceleration but only 1280×800 ( would like 1920×1080).
    I downloaded latest clover and added those lines to config.plist

    Graphics

    Inject

    ATI

    Intel

    NVidia

    ig-platform-id
    0x19120000

    and this one too

    Comment
    10.11-SKL-1912000-4_displays
    Find

    AQMDAw==

    Name
    AppleIntelSKLGraphicsFramebuffer
    Replace

    AQMEAw==

    I found those in one tutorial about hd 530 and El Capitan 10.11.4

    Btw I am using VGA port, I have no other ports on my motherboard.

    Is there anyway to force 1920×1080?

      • I am not sure how to use it. Anyway, I did as suggested on tonymacx86 forum, thread named “Skylake Intel HD 530 Integrated Graphics Working as of 10.11.4”.

        As said, I got fully accelerated hd 530 on 0x19120000 but only 1280×800, cant get 1920×1080.
        Any ideas?

        my pc configuration:
        Intel i7-6700k
        Gigabyte H110m-ds2
        HyperX Kingston ddr4 8gb (only 4 gb recognized in os x)
        SSD 120gb

  14. Hello,

    Skylake graphic drivers were working fine on 10.11.4 but the first and second beta of 10.11.5 ruined metal. This happens for example when opening a picture. Can this be fixed without waiting for Apple to release a working version?

    Apr 20 21:18:15 iMac MTLCompilerService[600]: Compiler plugin /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib is not registered with the MTLCompilerObject
    Apr 20 21:18:15 iMac Preview[599]: Compiler failed to build request
    Apr 20 21:18:15 iMac Preview[599]: Failed to create Metal pipeline state: Error Domain=CompilerError Code=1 "- Could not load compiler plugin at /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib" UserInfo={NSLocalizedDescription=- Could not load compiler plugin at /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib}
    Apr 20 21:18:15 iMac diagnosticd[128]: error evaluating process info - pid: 600, puniqueid: 600
    Apr 20 21:18:15 iMac com.apple.xpc.launchd[1] (com.apple.MTLCompilerService.2A900B45-41E0-4324-8AAD-C2B3AF573294[600]): Service exited due to signal: Segmentation fault: 11
    Apr 20 21:18:15 iMac com.apple.xpc.launchd[1] (com.apple.ReportCrash[601]): Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.ReportCrash
    Apr 20 21:18:15 iMac MTLCompilerService[602]: Compiler plugin /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib is not registered with the MTLCompilerObject
    Apr 20 21:18:15 iMac Preview[599]: Compiler failed to build request
    Apr 20 21:18:15 iMac Preview[599]: Failed to create Metal pipeline state: Error Domain=CompilerError Code=1 "- Could not load compiler plugin at /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib" UserInfo={NSLocalizedDescription=- Could not load compiler plugin at /System/Library/Extensions/AppleIntelSKLGraphicsMTLDriver.bundle/Contents/MacOS/libMTLIGCCompilerPlugin.dylib}
    Apr 20 21:18:15 iMac diagnosticd[128]: error evaluating process info - pid: 602, puniqueid: 602
    Apr 20 21:18:15 iMac com.apple.xpc.launchd[1] (com.apple.MTLCompilerService.2A900B45-41E0-4324-8AAD-C2B3AF573294[602]): Service exited due to signal: Segmentation fault: 11
    
    
  15. Do you plan to release your “AppleIntelGraphicsFramebuffer.sh” … I’ve been playing a lot with your Azul script on my Haswell HD Graphic … and I can’t wait to do the same on my BW and SL HD Graphics ! Thanks

  16. Pingback: El Capitan OS X 10.11.6 Build 15G7a Seeded – Pike's Universum

  17. Hi pikeralpha, I successful installed El capitan on Asus k501ux, intel hd 520, 4k internal display, but I got black screen with graphic injector 0x19160000, just can see desktop on external monitor via HDMI port. I wonder that can I modified AppleInterGraphicsFramebuffer and change the display port for my 4k internal panel?

    • If you want help, from anyone, then start by adding a link to the specifications. Also. What is AppleInterGraphicsFramebuffer? Not to mention that this blog article is about the Intel HD graphics and your hardware may add well include another GPU…

  18. Pingback: Intel HD Graphics Skylake — OSXPC

  19. Hello Pike,
    I need your help, on my EliteBook 840G3 with Intel HD 520 the DisplayPort Connection at 4K Display works with 3840×2160@60Hz but HP DockingStation the DisplayPort has only max. 1080p
    how i can find a Kext To Patch to enable 3840×2160@60Hz on the DockingStation Port.

    DP to HDMI Adapter works with 3840×2160@30Hz on both DisplayPorts Connections.

    Thanks

    • Check the EDID for both ports. I’m pretty sure that the one on the docking station is different. If that is the case, then you have to inject a patched EDID. I think that Clover can do this and you should be able to use the EDID of the DP port on the computer.

      • Yes i found a different.

        DisplayPort EliteBook ( 3a, d8 )

        DisplayPort DockingStation ( 2a, e8 )

        And now what can i do to fix this?

      • With tool do you recommend? I use edidreader.com and there i only see a difference in the Notebook Checksum: 0xD8 DockingStation Checksum: 0xE8

        Only @ Display Parameters in Byte Array 08/Conversion 10 and @ Checksum in 0F/70. But there ist no difference in the human readable format. I use AW EDID Editor. Other idea?

  20. I see difference in the ioreg @ AppleIntelFramebuffer@1 \ IOFBCurrentPixelClock, Count, CountReal and the IOFBDependentID

  21. hi I’m running the dell ops 9550 i7 6700hq 530 intel on 10.12 every things working but I get flicker when I close the lid and open back up and after 5 mins will go black. I have full support of the video card 1.5 gigs ram metal says supported Ive patched every thing I think correctly. maybe you can help me I can send ioreg files the laptop is useable as long as I don’t sleep on power cord it got to screen save and no issue but on battery if display sleeps its just a mess and I need to reboot. Im on clover boot loader and have nvm hacked so its shows power management is working.

  22. I have a laptop with 6700hq HD530 Skylake-H GT2 (8086-191B) with 64MB dynamic memory(AIDA64). I had my HD530 working on El-Capitan with full acceleration, now I’ve upgraded to Sierra and working great as it was in El-Capitan with minor glitches. So I want to know what should I be focus on to fix these glitches.

  23. Hi there! I have an Intel NUC6i5SYH with iris 540 Graphics running MAC OSX Sierra.

    The problem i’ve got is that everytime i try to open an image, or open image editing programs like Photoshop, the system reboots instantly.

    My graphics card ID is set to 0x19120000 and if I try to change it to 0x19120002 or 0x19120004 the GPU acceleration ceases to work but then I have no crashes.

    Any workaround for that?

    Thanks!

  24. Hi Pike ! Thanks for you explanation about Skylake graphics support.

    I have Intel HD 510 on my Asus Laptop (with Intel i5 6198-DU),
    after a long try, now I can get graphic acceleration but only on my External Display (via VGA port), and it remain blank on Laptop display. Here’s what I do :

    – Platform id – Fake id –> result
    0x19120000 — 0x19128086 –> QE/CI graphic acceleration (only show on my ex display, blank screen on laptop)
    0x19020000 — 0x19028086 –> graphic memory show 1536 MB but with tons of artifact

    *I used RehabMan FakePCIID_Intel_HD_Graphics.kext lastest version (without this I can’t get graphic accel).
    *I have set my BIOS Graphic Memory to 64MB (I have tried 128MB too, still get same result).

    Have you know what the problem here ? I need that to work on my Laptop Display 😦

    Thankyou before!

      • Sorry for my late reply …

        But No, I didn’t patch that, I only inject Platform id – Fake id from Clover and use FakePCIID_Intel_HD_Graphics.kext from RehabMan.

        Did I need to patch frame buffer ? and what should I patch there ? Thankyou for your advice.

    • I’m afraid that I have to disappoint you. The 0x191b is not a newly added device-id and the 0x191b0006 AAPL,ig-platform-id data is also not new. In fact. Apple only changed the versions info in the data.

      macOS Sierra 10.12.1

      0600 1b19 0000 0000 88f9 0700 0000 0000
      0101 0101 0000 6002 0000 0000 0000 0060
      6c05 0000 6c05 0000 0000 0000 0000 0000
      0000 0800 0200 0000 9800 0000 ff00 0000
      0100 0000 2000 0000 ff00 0000 0100 0000
      2000 0000 ff00 0000 0100 0000 2000 0000
      0213 1300 0000 0600 0300 0000 0400 0000
      80df 1710 0000 0000 7805 0000 d205 0000
      4006 0000 0000 0000 0000 0000 0000 0000
      b0ef 1a00 0000 0000 00f1 1a00 0000 0000
      00f1 1a00 0000 0000 0100 0000 0800 0000
      0000 0000 0000 0000

      macOS Sierra 10.12.1 (Build 16C32e)

      0600 1b19 0000 0000 7df9 0700 0000 0000
      0101 0101 0000 6002 0000 0000 0000 0060
      6c05 0000 6c05 0000 0000 0000 0000 0000
      0000 0800 0200 0000 9800 0000 ff00 0000
      0100 0000 2000 0000 ff00 0000 0100 0000
      2000 0000 ff00 0000 0100 0000 2000 0000
      0213 1300 0000 0600 0300 0000 0400 0000
      80df 1710 0000 0000 7805 0000 d205 0000
      4006 0000 0000 0000 0000 0000 0000 0000
      50ee 1a00 0000 0000 a0ef 1a00 0000 0000
      a0ef 1a00 0000 0000 0100 0000 0800 0000
      0000 0000 0000 0000

      • Maybe not new for Sierra, but as i remember there is no such ID in ElCap. I just wrote it wrong. It is new in Sierra in total, just not sure if starting from 12.0 or from later build.

  25. Hey pike I loved your work with nvme and the graphics glitch. I’m having Asus ROG 501vw with i7 6700hq/ hd 530. I’ve managed to fix mostly everything. But it shows only 31MB of vRam in about this Mac. Please help. Stuck at this since a week.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s