Contribute
Register

My Dell Precision M3800 is playing peekaboo with me.

Status
Not open for further replies.
So, you're doing this from an external monitor? Because it would seem rather difficult change the settings when the display is black, no?

I wonder if creating a custom plist for your display would help... See here: http://www.tonymacx86.com/mavericks-laptop-support/133254-adding-using-hidpi-custom-resolutions.html

The display turns on for a split second when OS X is rendering something, and I figured out by randomly pressing keys that doing a command-tab will cause OS X to render the window selector, which will cause the split second display. Using this I can fumble my way through System Preferences and select a working resolution. It's difficult but do-able.

I've figured out the issue.
Over the past week I've been playing around with Retina Display Menu and Custom Resolution Utility, and I've found some interesting things:

The Facts:

  • The EDID for my laptop's screen specifies a 3840 x 2160 @ 60hz resolution. Using Retina Display Menu I am able to:
    • Choose any non-HiDPI resolution up to, but not including, 3840 x 2160.
    • Choose any HiDPI resolution up to, but not including, 1920 x 1080.
      • 1920 x 1080 doesn't work in HiDPI mode because it uses 3840 x 2160 behind the scenes. (1920 x 1080 * 2 = 3840 x 2160)
  • If I force a 3840 x 2160 @ 30z via EDID injection I am able to:
    • Choose any resolution including 3840 x 2160, and 1920 x 1080 HiDPI. It just looks terrible because of the 30hz refresh rate.

This is in line with Apple's documentation <https://support.apple.com/en-us/HT202856>, which states that Macs only support a 3840 x 2160 resolution in 30z mode.

The Conclusion:

There is a killswitch somewhere in OS X that prevents users from using a 3840 x 2160 or above resolution at a 60hz refresh rate. (Just like there's a killswitch in IOKit for the pixel clock.) It's too much of a coincidence that odd resolutions like 3360 x 1890 work flawlessly, but 3840 x 2160 doesn't.

Unfortunately this is the end of the road for me. Finding and removing the killswitch takes skills that I don't have, so I'm stuck with 1680 x 945 HiDPI until Apple removes the killswitch.
 
The display turns on for a split second when OS X is rendering something, and I figured out by randomly pressing keys that doing a command-tab will cause OS X to render the window selector, which will cause the split second display. Using this I can fumble my way through System Preferences and select a working resolution. It's difficult but do-able.

I've figured out the issue.
Over the past week I've been playing around with Retina Display Menu and Custom Resolution Utility, and I've found some interesting things:

The Facts:

  • The EDID for my laptop's screen specifies a 3840 x 2160 @ 60hz resolution. Using Retina Display Menu I am able to:
    • Choose any non-HiDPI resolution up to, but not including, 3840 x 2160.
    • Choose any HiDPI resolution up to, but not including, 1920 x 1080.
      • 1920 x 1080 doesn't work in HiDPI mode because it uses 3840 x 2160 behind the scenes. (1920 x 1080 * 2 = 3840 x 2160)
  • If I force a 3840 x 2160 @ 30z via EDID injection I am able to:
    • Choose any resolution including 3840 x 2160, and 1920 x 1080 HiDPI. It just looks terrible because of the 30hz refresh rate.

This is in line with Apple's documentation <https://support.apple.com/en-us/HT202856>, which states that Macs only support a 3840 x 2160 resolution in 30z mode.

The Conclusion:

There is a killswitch somewhere in OS X that prevents users from using a 3840 x 2160 or above resolution at a 60hz refresh rate. (Just like there's a killswitch in IOKit for the pixel clock.) It's too much of a coincidence that odd resolutions like 3360 x 1890 work flawlessly, but 3840 x 2160 doesn't.

Unfortunately this is the end of the road for me. Finding and removing the killswitch takes skills that I don't have, so I'm stuck with 1680 x 945 HiDPI until Apple removes the killswitch.

Did you patch IOKit?
 
Did you patch IOKit?

Yes, here's the output of "./XPS9530.sh --patch-iokit":
Code:
[COLOR=#34BD26][FONT=Menlo][IOKit][/FONT][/COLOR][FONT=Menlo]: Patching IOKit for maximum pixel clock
[/FONT][FONT=Menlo][COLOR=#5330e1][B][IOKit][/B][/COLOR]: Current IOKit md5 is [B]9f99c861294afc3d643987782ce45e4f[/B][/FONT]
[FONT=Menlo]         --> Yosemite 10.10.2 IOKit ([COLOR=#c33720]patched[/COLOR])[/FONT]
[FONT=Menlo]         IOKit is already patched, no action taken.
[/FONT]
 
Yes, here's the output of "./XPS9530.sh --patch-iokit":
Code:
[COLOR=#34BD26][FONT=Menlo][IOKit][/FONT][/COLOR][FONT=Menlo]: Patching IOKit for maximum pixel clock
[/FONT][FONT=Menlo][COLOR=#5330e1][B][IOKit][/B][/COLOR]: Current IOKit md5 is [B]9f99c861294afc3d643987782ce45e4f[/B][/FONT]
[FONT=Menlo]         --> Yosemite 10.10.2 IOKit ([COLOR=#c33720]patched[/COLOR])[/FONT]
[FONT=Menlo]         IOKit is already patched, no action taken.
[/FONT]

So I guess it is possible there are two thresholds for resolution. Must be in the framebuffer config/code though, as there is already an iMac with 5k display (running the same version of OS X we are).
 
Interesting... it looks like the 5K iMac is using a Radeon graphics card <https://www.apple.com/imac-with-retina/specs/>. I have no experience in the area of reverse engineering, but from an outsider's perspective what you're saying makes sense.
 
Interesting... it looks like the 5K iMac is using a Radeon graphics card <https://www.apple.com/imac-with-retina/specs/>. I have no experience in the area of reverse engineering, but from an outsider's perspective what you're saying makes sense.

Makes me think it is some sort of limitation in the Intel drivers or just something we don't have right with the framebuffer configuration (and probably not somewhere else like some additional check in IOKit for example).
 
I spent some time playing around with the framebuffer this week. I started by increasing my framebuffer bytes to the maximum value, and I found that I lost graphics acceleration by changing either of the framebuffer values to 64MB or above. So I am now running my laptop at 384:62:62.

I tried every ig-platform-id in the list under the 4400/4600/5000 heading at http://www.tonymacx86.com/graphics/...lags-igpenabler-igplatformid-igpdeviceid.html. Except for a few ids in the list, all produced varying graphics problems, ranging from minor annoyances to show stopping graphics deformities. With the ids that didn't produce problems, graphics acceleration was disabled. So I'm back at 0x0a260006 for now.
 
I spent some time playing around with the framebuffer this week. I started by increasing my framebuffer bytes to the maximum value, and I found that I lost graphics acceleration by changing either of the framebuffer values to 64MB or above. So I am now running my laptop at 384:62:62.

I tried every ig-platform-id in the list under the 4400/4600/5000 heading at http://www.tonymacx86.com/graphics/...lags-igpenabler-igplatformid-igpdeviceid.html. Except for a few ids in the list, all produced varying graphics problems, ranging from minor annoyances to show stopping graphics deformities. With the ids that didn't produce problems, graphics acceleration was disabled. So I'm back at 0x0a260006 for now.

There are probably a few more Azul ig-platform-id values than those listed in that post. Also, some of the ig-platform-id values there are not for Azul.
 
How can I find those ig-platform-ids that aren't in the list? I'm open to trying other things to get this working.
 
How can I find those ig-platform-ids that aren't in the list? I'm open to trying other things to get this working.

I don't know of a comprehensive list, but looking at the binary in a hex editor is useful. For example, I believe the first one is 0x0c060000 (you'll see it in hex edit as 0000060c), next is 0x0c160000. Each framebuffer appears to be 128 bytes. The table appears to be terminated by 0xFFFF.

I made this list (memory order, not natural order):
Code:
ig-platform-id values Azul:

00 00 06 0C
00 00 16 0C
00 00 26 0C
00 00 06 04
00 00 16 04
00 00 26 04
00 00 26 0D
00 00 16 0A
00 00 26 0A
05 00 26 0A
06 00 26 0A
08 00 2E 0A
0C 00 16 0A
07 00 26 0D
03 00 22 0D
0A 00 2E 0A
0A 00 26 0A
0D 00 2E 0A
0D 00 26 0A
04 00 12 04
0B 00 12 04
09 00 26 0D

You might want to double check my list...

You can use Pike's AppleIntelFrameBufferAzul.sh to view them (color coded a bit).
 
Status
Not open for further replies.
Back
Top