protogon Posted February 20, 2015 Share Posted February 20, 2015 I've been trying for a few days now to get full 2D/3D acceleration working on my 10.10.2 hackintosh, which is running a Sapphire HD6450 Flex 1GB. Very few people have this card, it seems, and I've taken to writing my own connector info strings for it. After a TON of trial and error, I managed to write a working set of connector strings: DVI-I (Physical Port 0, maybe port 1 or 2 as mapped on the card itself) 04 00 00 00 14 02 00 00 00 01 01 00 10 00 01 03 ConnTypes |ATY,CTRLFLG|ATY,FEATURE|TX|EN|HP|ID -- HDMI (HDMI-A, as radeonbiosdecode and redsock call it) 00 08 00 00 04 02 00 00 00 01 02 00 12 04 02 01 ConnTypes |ATY,CTRLFLG|ATY,FEATURE|TX|EN|HP|ID -- DVI-D (Actually DisplayPort according to the decoding tools) 00 04 00 00 04 03 00 00 00 01 00 00 21 03 01 04 ConnTypes |ATY,CTRLFLG|ATY,FEATURE|TX|EN|HP|ID -- 040000001402000000010100100001030008000004020000000102001204020100040000040300000001000021030104 You might notice that the Hotplug IDs are duplicated, but I have not yet run into problems because of that, probably because I don't frequently unplug and replug my monitors. There's a whole story behind how I figured these out, lots of notes in textedit, and quite a bit of frustration with the guides I've found (RampageDev's guide in particular), but that's another post entirely. That said, part of it is relevant here. Based on a post on TonyMac, I attempted to patch the Pithecia framebuffer personality. Prior to 10.10, it seems that Pithecia had ConnectorInfo strings for three ports. I tried for a long while to get my card working with this framebuffer, and the best I could achieve was getting DVI-D (white port) to work with HDMI and DVI-I being treated as the same connector, duplicating their output. It was only after a bunch of testing that I found Vlada. had managed to get a dump of the 10.10.1 framebuffer ConnectorInfo entries. This confirmed my suspicion that ati-personality-pl v0.15 doesn't work with the latest version of the Xcode CLI tools. The Pithecia framebuffer, unfortunately, only has a ConnectorInfo count of 2 in 10.10.2. It also happens to be the fastest framebuffer I've tried with this card. I've been using the Clover ATI Connectors Data patch method, and there seems to be something kind of funny with this approach. With the connectors I wrote, I can patch and use any framebuffer with 3+ connectors. I've tried Bulrushes, Cattail, Duckweed, Ipomoea, Juncus, Osmunda, and Pondweed, and I've found that none of them offer very different QE/CI performance from the stock RadeonFrameBuffer. They all score around 80 in NovaBench, which I think is at least slightly odd. Why isn't there any variance depending on what framebuffer I use? Does it have something to do with the ConnectorInfo strings I wrote? Is there something wrong with them? Pithecia is the only framebuffer personality I've managed to patch (by replacing its ConnectorInfo and, ostensibly, the first line of the next framebuffer personality with my own ConnectorInfo strings) that doesn't perform exactly like RadeonFrameBuffer, but at the expense of a monitor. Perhaps it's the fact it only drives two monitors that gives me the performance boost. Maybe this GPU just sucks. Anyhow, there are a couple approaches I see, potentially. If there's some way to patch Pithecia so that the system reads three lines of ConnectorInfo from it, I could confirm whether or not it really is the best framebuffer personality for this card. Perhaps there's a way to use the old ATI6000Controller Kext in 10.10.2, but I imagine that's probably a super hacky solution liable to break upon an update. What's the best option here for what I'm trying to do? I'm kind of concerned I'm attempting to take the wrong route for what I'm trying to accomplish because I don't really know what my options are. Link to comment Share on other sites More sharing options...
Yayiin Posted February 20, 2015 Share Posted February 20, 2015 first of all, take a look if all kext AMD is loading like this, a example to ATI HD5000 series sudo kextstat | grep AMD 76 2 0xffffff7f81f88000 0x12d000 0x12d000 com.apple.kext.AMDSupport (1.3.0) <75 64 12 11 7 5 4 3 1> #### support to ATI Cards 77 0 0xffffff7f825df000 0x414000 0x414000 com.apple.kext.AMD5000Controller (1.3.0) <76 64 12 11 5 4 3 1> ##### Full Resulution 93 0 0xffffff7f82130000 0x3a8000 0x3a8000 com.apple.AMDRadeonX3000 (1.3.0) <92 64 12 7 5 4 3 1> ##### QE/CI 99 0 0xffffff7f825a8000 0x24000 0x24000 com.apple.kext.AMDFramebuffer (1.3.0) <76 64 12 11 7 5 4 3 1> ##### Default Framebuffer Link to comment Share on other sites More sharing options...
Pavo Posted February 20, 2015 Share Posted February 20, 2015 Also try running ati-personality-pl v0.15 as follows: ./ati-personality-pl -o=10.9 this will make the script run with the latest Xcode CLI tools 1 Link to comment Share on other sites More sharing options...
protogon Posted February 20, 2015 Author Share Posted February 20, 2015 first of all, take a look if all kext AMD is loading like this, a example to ATI HD5000 series sudo kextstat | grep AMD 76 2 0xffffff7f81f88000 0x12d000 0x12d000 com.apple.kext.AMDSupport (1.3.0) <75 64 12 11 7 5 4 3 1> #### support to ATI Cards 77 0 0xffffff7f825df000 0x414000 0x414000 com.apple.kext.AMD5000Controller (1.3.0) <76 64 12 11 5 4 3 1> ##### Full Resulution 93 0 0xffffff7f82130000 0x3a8000 0x3a8000 com.apple.AMDRadeonX3000 (1.3.0) <92 64 12 7 5 4 3 1> ##### QE/CI 99 0 0xffffff7f825a8000 0x24000 0x24000 com.apple.kext.AMDFramebuffer (1.3.0) <76 64 12 11 7 5 4 3 1> ##### Default Framebuffer kextstat output: user@userbox.local:~ $ sudo kextstat | grep AMD Password: 72 2 0xffffff7f81e92000 0x11f000 0x11f000 com.apple.kext.AMDSupport (1.3.0) <67 66 12 11 7 5 4 3 1> 73 0 0xffffff7f8246e000 0x41b000 0x41b000 com.apple.kext.AMD6000Controller (1.3.0) <72 66 12 11 5 4 3 1> 89 0 0xffffff7f81fbf000 0x3a8000 0x3a8000 com.apple.AMDRadeonX3000 (1.3.0) <68 66 12 7 5 4 3 1> 93 0 0xffffff7f82437000 0x24000 0x24000 com.apple.kext.AMDFramebuffer (1.3.0) <72 66 12 11 7 5 4 3 1> Additionally, here's the ioreg output: user@userbox.local:~ $ ioreg | grep ATY | | | | +-o ATY,Pithecia@0 <class AtiFbStub, id 0x1000002f7, registered, matched, active, busy 0 (1 ms), retain 8> | | | | +-o ATY,Pithecia@1 <class AtiFbStub, id 0x1000002f8, registered, matched, active, busy 0 (5 ms), retain 8> Also try running ati-personality-pl v0.15 as follows: ./ati-personality-pl -o=10.9 this will make the script run with the latest Xcode CLI tools Thank you! That's not a flag that seems to be documented very thoroughly. Definitely isn't in the usage string. I was running the script with the -a flag, which got me the names and offsets, but no ConnectorInfo counts. Link to comment Share on other sites More sharing options...
andybe Posted July 28, 2016 Share Posted July 28, 2016 Very interesting for me...hack test with a X8STE Supermicro and AMD 6450 (Framebuffer LOTUS): OS X 10.11.6 ... most time kernel Dump by load .. I think it has todo with the power managment. When it get trough - buffer isn't load OSX 10.10.5 .. Load all the time but doesn't load the framebuffer correct. as 10.11 OSX 10.7 Cursor with white screen, with the right resolution ./radeon_bios_decode < VER013.012.000.049.000000_1002_6779.rom ATOM BIOS Rom: SubsystemVendorID: 0x174b SubsystemID: 0xe164 IOBaseAddress: 0xc000 Filename: 164P03N5.NI2 BIOS Bootup Message: C26401 Junbonator DDR3 128Mx16 PCI ID: 1002:6779 Connector at index 0 Type [@offset 44578]: HDMI-A (11) Encoder [@offset 44582]: INTERNAL_UNIPHY1 (0x20) i2cid [@offset 44652]: 0x91, OSX senseid: 0x2 Connector at index 1 Type [@offset 44588]: DVI-D (3) Encoder [@offset 44592]: INTERNAL_UNIPHY (0x1e) i2cid [@offset 44679]: 0x93, OSX senseid: 0x4 Connector at index 2 Type [@offset 44598]: VGA (1) Encoder [@offset 44602]: INTERNAL_KLDSCP_DAC1 (0x15) i2cid [@offset 44706]: 0x90, OSX senseid: 0x1 ./redsock_bios_decoder < VER013.012.000.049.000000_1002_6779.rom 164P03N5.NI2: C26401 Junbonator DDR3 128Mx16 Subsystem Vendor ID: 174b Subsystem ID: e164 Object Header Structure Size: 203 Connector Object Table Offset: 34 Router Object Table Offset: 0 Encoder Object Table Offset: 9d Display Path Table Offset: 12 Connector Object Id [12] which is [HDMI_TYPE_A] encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true Connector Object Id [4] which is [DVI_D] encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false Connector Object Id [5] which is [VGA] encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false Personality: Lotus ConnectorInfo count in decimal: 3 Disk offset in decimal 1855536 0000000 00040000 04 03 000000010000 11 02 01 01 0000010 00080000 04 02 000000010000 22 05 04 04 0000020 00040000 00 01 000000010000 21 03 02 02 0000030 Prepair 0000000 04000000 04 00 000000010000 10 00 01 04 0000010 00080000 04 02 000000010000 21 03 00 02 0000020 10000000 10 00 000000010000 00 10 02 01 buy the way, one of the 2009 mac pro bluetooth and usb is fixed after 10.11.6 in my office Link to comment Share on other sites More sharing options...
Recommended Posts