Contribute
Register

Chimera missing display modes when booting from 4k DisplayPort

Status
Not open for further replies.
Joined
Nov 1, 2014
Messages
12
Motherboard
Lenovo m93p tiny
CPU
i5-4570T
Graphics
hd4600
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hello,

Please help me debug this; not sure if it's a bad monitor or bug with Chimera. Let me know if it should be in the bug reports section.

The setup:
  • Asus PB287Q 4k/UHD display (native 3840x2160@60Hz) :eek:
  • Lenovo m93p desktop with HD4600 / Q87 Haswell / Core i5-4570T. DisplayPort and HDMI inputs, although the HDMI input is an optional add-on due to the small case (smaller and more powerful than Mac Mini :D)
  • Monitor works great at native 60Hz in Ubuntu / Windows 8.1 connected via DisplayPort
  • All symptoms the same no matter how much VRAM I pre-allocate in the BIOS
  • Boot.plist options are:
    • DropSSDT=yes
    • EthernetBuiltIn=yes
    • GraphicsEnabler=yes
    • HDAEnabler=yes
    • HDEFLayoutID=01000000
    • IGPEnabler=yes
    • Kernel Flags=kext-dev-mode=1
    • Legacy Logo=yes
    • Timeout=2

The problem:
  • Booting chimera 4.0.1 from an old ViewSonic display using a VGA -> DP adapter works fine, all OS X settings and usefulness work as expected
  • Booting from the Asus using HDMI input boots fine, but resolutions available in OS X do not include options over 1920x1080 (not sure if related, but at least it boots)
  • Booting from the Asus using DisplayPort input results in: "Memory allocation error! Addr: 0xdeadbeef, Size: 0x0, File: gui.c, Line:505 This is a non recoverable error! System HALTED!!!"
  • Booting with GUI=no in the Boot.plist at least gives me the Chimera boot prompt, but if I let it boot, it very quickly results in a reboot loop; ~15 blue smiley faces are displayed immediately and the PC reboots
    • If I boot with -x and -v at that point, it'll load a bunch of kexts before it reboots
  • Big freaking clue that ties back to the gui.c error: when I do a ?video at the chimera prompt on all input methods described above, I see mostly normal graphics modes EXCEPT for DisplayPort to the Asus where I see an entire list of "0x0x0 mm:0 attr:0" for all modes listed.
    • Is this a hint that something in the Monitor is screwed up or that there's a bug with Chimera? Or neither?

Extra notes:
  • Clover boots into a funky video state as well with Asus via DisplayPort when I've tried it. I get a nice pretty boot screen with clover and the DisplayPort -> VGA adapter on the ViewSonic.
  • I've tried all sorts of different SMBIOS and IGPEnabler / GraphicsEnabler combos
  • No matter what else I've tried, I can't get OS X to allow a 3840x2160 display mode when I hot plug the Asus via DisplayPort after a successful boot with a different input type. Again, other OSes work great with that resolution and the HD4600 can indeed output 3840x2160@60Hz via DisplayPort 1.2 with my processor type.
    • Tried the pixel clock / IOKit patch :banghead:
    • Tried a custom Overrides with EDID and scaled-resolutions :banghead:
    • Tried my best with SwitchResX once booted / hot plugged :banghead:
  • The relevant line from gui.c makes sense; it tries to malloc(0) because it doesn't find any supported modes / heights / widths. So I guess the question is: how do the modes get there in the first place?
    • gui.backbuffer->pixels = malloc( window->width * window->height * 4);
What do you guys think?
 
I think what you are experiencing is a limitation with your computer.

According to the Lenovo documentation,
http://www.lenovo.com/psref/pdf/tcbook_we.pdf , the maximum resolution on the DP ports is 2560x1600

"Intel HD Graphics 4600 in processor, uses main memory, DirectX11, one VGA, one DisplayPort, one optional HDMI or one optional 2nd DisplayPort onselect models, supports up to triple independent display;
Maximum resolution: 2560x1600 (DisplayPort)@60Hz; 1920x1080 (HDMI)@60Hz; 1920x1200 (VGA)@60Hz (Reduced Blanking) "




If OS X doesn't allow that resolution, try SwitchResX.
 
Thanks for that spec sheet, MacMan, I hadn't seen that before.

I would agree with you except for the fact that it works great in Ubuntu 14.04 LTS and Windows 8.1.

The setup:
  • Monitor works great at native 60Hz in Ubuntu / Windows 8.1 connected via DisplayPort

I will look into SwitchResX again.
 
SwitchResX picks up the EDID fine:
Code:
Monitor Description blocks:---------------------------
    Descriptor #0 - Timing definition:
    Mode = 3840 x 2160 @ 59.997Hz
        Pixel Clock............. 533.25 MHz        Non-Interlaced


                                Horizontal        Vertical
        Active.................. 3840 pixels        2160 lines
        Front Porch.............   48 pixels           3 lines
        Sync Width..............   32 pixels           5 lines
        Back Porch..............   80 pixels          54 lines
        Blanking................  160 pixels          62 lines
        Total................... 4000 pixels        2222 lines
        Scan Rate............... 133.312 kHz         59.997 Hz


        Image Size..............  621 mm         341 mm
        Border..................    0 pixels           0 lines


            Sync: Digital separate with
                * Negative vertical polarity
                * Positive horizontal polarity


    Descriptor #1 - Timing definition:
    Mode = 3840 x 2160 @ 30.000Hz
        Pixel Clock............. 297.00 MHz        Non-Interlaced


                                Horizontal        Vertical
        Active.................. 3840 pixels        2160 lines
        Front Porch.............  176 pixels           8 lines
        Sync Width..............   88 pixels          10 lines
        Back Porch..............  296 pixels          72 lines
        Blanking................  560 pixels          90 lines
        Total................... 4400 pixels        2250 lines
        Scan Rate...............  67.500 kHz         30.000 Hz


        Image Size..............  621 mm         341 mm
        Border..................    0 pixels           0 lines


            Sync: Digital separate with
                * Negative vertical polarity
                * Positive horizontal polarity


    Descriptor #2 - Monitor limits:
        Horizontal frequency range.......24-160 kHz
        Vertical frequency range.........30-80 Hz
        Maximum bandwidth range..........600 MHz
But even when I create custom resolutions with the specific settings and reboot (again hot plugging after a reboot due to this Chimera boot problem) it lists them as "Not active - invalid?" -- with or without the pixel clock unlock patch.

I will try different boot loaders next I guess.
 
The Chimera boot screen only allows for VESA boot resolutions. If you want to use the resolution you want you need to configure SwitchResX to configure it for when you reach your desktop.
 
Status
Not open for further replies.
Back
Top