Jump to content

Intel Framebuffer patching using WhateverGreen


headkaze
486 posts in this topic

Recommended Posts

On 7/19/2020 at 5:01 PM, MisterKeeks said:

I'm wondering if there is a way to use Whatevergreen to tell macOS that a display is internal and is of type "AppleBackLightDisplay" rather than "AppleDisplay"?

You can try to do this using Hackintool. It will generate a "Display Injector" codeless kext (Eg. "Display-469-24ad.kext") on your desktop. I have no idea if it will help in your instance.

 

The Kernel/Add entry would look something like this:

            <dict>
                <key>BundlePath</key>
                <string>Display-469-24ad.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>

AppleDisplay1.png

AppleDisplay2.png

  • Thanks 1
Link to comment
Share on other sites

Sorry for the noob question, this is my first time diving into more detail with WEG. 

I am installing 10.15.6 on my NUC6i3, stable so far, but I cannot have digital audio works. I use recommended framebuffers 0x19120000 already with AppleALC installed and audio from headphone port works and I can also see hda-gfx in my IORegistryExplorer. I am using a DP to HDMI converter and it does not shown any audio output in SysPref - Sound (only Headphone port shown as audio device). Even using HDMI port connecting natively to HDMI TV, no HDMI Audio device shown. Another issue is that I got blank display after wake from sleep, blank display after wake from display off, and also blank display if hotplug the monitor/TV after booting. 

I used the WEG debug version with -igfxdump boot arg, successfully open it with 010editor and the template, but (I think) it shows the default list of connectors. What do I need to do to enable digital audio in this case? 

Any help is appreciated. Thanks.

Link to comment
Share on other sites

On 7/22/2020 at 5:49 AM, headkaze said:

You can try to do this using Hackintool. It will generate a "Display Injector" codeless kext (Eg. "Display-469-24ad.kext") on your desktop. I have no idea if it will help in your instance.

 

The Kernel/Add entry would look something like this:

 


            <dict>
                <key>BundlePath</key>
                <string>Display-469-24ad.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>

 

 

 

Thanks for your reply! I did successfully generate and a kext. The connection type is now listed as Internal in System Profiler, but unfortunately it is still seen as AppleDisplay rather and AppleBacklightDisplay in IORegExplorer. Still no controls, no backlight after sleep. 

 

I really wonder what controls AppleDisplay vs AppleBacklightDisplay... On my laptops this seems to be picked up automatically.

Link to comment
Share on other sites

On 7/14/2020 at 4:29 PM, MacKonsti said:

So not for Coffee Lake or Whiskey Lake, for example? Interesting, I guess.

 

@tonyx86 it was just a guess i.e. the use of HDAU, in order to be able to attach the audio codec that FakePCIID succeeds with the HDMI Audio injection :( Oh well.

 

Someone in another forum claims that new (not-yet-released) versions of Lilu / WhateverGreen fix their HDMI audio.  Not sure if this helps you.  Google 'Asus PRIME Z490-P Catalina 10.5.5' and look for post by RockArtist.

  • Thanks 1
Link to comment
Share on other sites

On 7/22/2020 at 5:49 AM, headkaze said:

You can try to do this using Hackintool. It will generate a "Display Injector" codeless kext (Eg. "Display-469-24ad.kext") on your desktop. I have no idea if it will help in your instance.

 

The Kernel/Add entry would look something like this:

 


            <dict>
                <key>BundlePath</key>
                <string>Display-469-24ad.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string></string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>

 

 

 

I've tried further but now the display doesn't even read as internal. I think the .kext only rarely works. I'm injecting Apple VIDs/PIDs and it shows in the .kext plist but there is no change in Sys Profiler or IORegExplorer. Yes, the kext is enabled in the OC config.plist.

Edited by MisterKeeks
Link to comment
Share on other sites

Lilu 1.4.5 / WEG 1.4.0 continue to work perfectly for me with my HP EliteDesk 800 G4 Mini / MacMini8,1 running Catalina 10.15.6.  I'm continuing to try to learn more about how/what WEG is doing, so this question is more out of curiosity than necessity.   

 

The IGPU graphics attributes below are defined for a real MacMini8,1, but are not defined for my HackMini8,1.  Does anyone know why these attributes should or should not be defined on a hackintosh with Intel UHD 630 graphics?  I found this blog by Pikeralpha which suggests that AAPL,GfxYTile is a fix for Skylake.  Maybe the setting does not matter for the i7-8700T/UHD 630 Coffee Lake?I tried manually adding these attributes (injected via CLOVER device properties) and while I observe them in IORegistryExplorer, I don't observe any behavioral differences.  Thank you.

 

Attribute

Data

Data (Reverse byte order)

AAPL,GfxYTile           

0x00000001       

0x01000000

graphic-options

0x0000000c

0x0c000000

 

EDIT: 
A grep of /System/Library/Extensions for 'graphic-options' reveals the following matches:

  • Binary file ./AMDFramebuffer.kext/Contents/MacOS/AMDFramebuffer matches
  • Binary file ./IONDRVSupport.kext/IONDRVSupport matches
  • Binary file ./IOGraphicsFamily.kext/IOGraphicsFamily matches

 

A grep of /System/Library/Extensions for 'GfxYTile' reveals the following matches:

  • Binary file ./AppleIntelKBLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelKBLGraphicsFramebuffer matches
  • Binary file ./AppleIntelCFLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelCFLGraphicsFramebuffer matches
  • Binary file ./AppleIntelICLLPGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelICLLPGraphicsFramebuffer matches
  • Binary file ./AppleIntelSKLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelSKLGraphicsFramebuffer matches

 

Edited by tonyx86
Added grep results
Link to comment
Share on other sites

On 7/3/2020 at 9:05 PM, headkaze said:

Back when the macOS Mojave beta 1 was released I discovered the Intel framebuffer data was no longer stored as a struct in the kext binary for easy patching using KextToPatch. I then contacted vit9696 and we devised a new patching system that would hook into the gPlatformInformationList data in memory and provide a mechanism for patching the data directly in memory.

 

WhateverGreen provides a couple of boot args to dump the platform list data from memory:


-igfxdump to dump IGPU framebuffer kext to /var/log/AppleIntelFramebuffer_X_Y (available in DEBUG binaries).
-igfxfbdump to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen

If you want to take a look at the binary dumps they are located in the Hackintool repo. There's also a detailed explanation of the data layout in IntelFramebuffer.bt.

 

applyFramebufferPatches located in kern_igfx.cpp is the method used to patch the gPlatformInformationList data in memory.

 

It's likely still possible to patch the kext framebuffer binaries but because data is not in an organized layout anymore the patches are likely to break every update.

 

For the sake of argument if you want to try and patch the kext binary anyway you can open the framebuffer kext in a hex editor (eg. /System/Library/Extensions/AppleIntelKBLGraphicsFramebuffer.kext/Contents/MacOS/AppleIntelKBLGraphicsFramebuffer). You can see from the screenshots the data is in there; it's just not organized into a nice structure. As long as your patch can find and replace this data appropriately then the patch should in theory work. That being said it's not a recommended way to patch anymore so I advise against it.

fbmojave.thumb.png.9c3c5a90db98d38f22fbc96bb021e391.png

fbpatch01.png

fbpatch02.png

 

for my knowledge, what's the difference between "DVMT"/"DVMT Pre-Allocated"/"framebuffer-stolenmem"? seems people are using them interchangeably. 

reading this thread, I saw people using "EFI Shell" to change "DVMT Pre-Allocation", the steps seem quite tricky. 

just wonder whether they are equivalent, or what's the advantage one over the other.

Thanks

 

Link to comment
Share on other sites

Hi there, would anyone share a qiuck recipe: there must be one.


Acer a515/54g/52zp, 10th gen i5, nvida egpu turrned off by -wegnoegpu

Properties in clover:

 device-id 9b3e0000

 layout-id 3ea60005

 framebuffer-patch-enable 01000000

 

Patched SSDT-PNLF.aml from the WEG release. Otherwise black screen ONLY, no way to get it working. With this aml the screen is VERY dim, ~~30% brightness. The native brightness slider DOES work, from 0 to the maximum 30%

Tried SetIntelBacklight, SetIntelMaxBacklight - no shade of success.

 

Where shall i dig to set normal brightness? I tried to edit the SSDT but I cannot get into that abracadabra language and can spend half an age poking and peeking with no guiding [back]light.

Tried to use appleBacklightFixup kext together with its own aml - well, max brightness, but no slider...

 

Thanks for possible help! Maybe even a working HDMI out, someone... That's the second task.

 

Edited by cu6apum
Link to comment
Share on other sites

1 hour ago, MacKonsti said:

Thanks @tonyx86 good to know, but did you compare with same kernel and macOS 10.15.5 or 10.15.6? Changes in macOS updates tend to also have changes in Geekbench scores... I know that myself for a fact.

 

Yes - all the same.  Follow the links I posted to see that the two GeekBench5 tests I compared were after I had already upgraded to Catalina 10.15.6.  I posted my GeekBench5 screenshots which show the macOS version (10.15.6) and the GeekBench5 version (5.2.3) for tests before and after upgrading WEG.  

Edited by tonyx86
  • Like 1
Link to comment
Share on other sites

Hello.

 

Thanks @headkaze and everyone for this, after a while I got to set up my iGPU framebuffer.

 

Don't know if this is the right place, but I'd like to share my config with people who uses the same MOBO.

 

Following, there is my (partial) config.plist. Pay attention to the "DeviceProperties/Add" item, where you can find audio and video properties.

 

Specs:

- Gigabyte Z390 Aorus Ultra (One HDMI port)

- Intel i9-9900K (Intel UHD Graphics 630)

biscate_Config.plist

Link to comment
Share on other sites

I experienced a "black screen" issue with my UHD 630 graphics after temporarily connecting different displays. The new, temporary displays had a different screen resolution from the original displays. The black screen "fix" was to change the CLOVER Screen Resolution to match the native display resolution of the new, temporary displays.

 

You're not likely to experience this problem if you're creating your own CLOVER config.plist; however, if you are copying someone else's config.plist, this may be an issue for you.

See full explanation here.

Link to comment
Share on other sites

 

On 5/9/2020 at 12:20 AM, joevt said:

I mean the driver expects different numbers from the "CDCLK_CTL" register. The register and list of possible values is documented at https://01.org/linuxgraphics/documentation

https://01.org/linuxgraphics/hardware-specification-prms/2019-intelr-processors-based-ice-lake-platform

Volume 2c: Command Reference: Registers Part 1 – Registers A through L

 

In the BIOS settings what are the options for "Cd Clock Frequency" and "Skip Full CD Clock Init"?

 

What does "Intel Graphics Pei Display Peim" do?

 

image.thumb.png.b39647db792d657d9788b554466b8782.png

Now I am also confused, about this, there is no more information to solve this problem for the time being, I would like to ask you for help and suggestions for solving this problem.The above picture is the information of the related setting items in my bios.

s740 panic.txt

Link to comment
Share on other sites

On 5/8/2020 at 8:15 PM, Andrey1970 said:

 

 

ICL doesn't work on Hackintosh, you will receive a panic.
ICL the driver has many changes, research is necessary, but developers have no ICL.
 

Please, do you have any more information about icl now? I know that there is a machine in South Korea that can drive the graphics card. Their cpu is 1035G4, but I don’t know why we can’t reproduce their success. Even if my device is 1065G7, we have this "unsupported cd clock 0x158" problem. There is currently no relevant information to get answers, do you have any suggestions? Can we only use whatevergreen updates its support for icl?

Link to comment
Share on other sites

  • 2 weeks later...
On 8/14/2020 at 12:23 PM, frozenzero123 said:

Please, do you have any more information about icl now? I know that there is a machine in South Korea that can drive the graphics card. Their cpu is 1035G4, but I don’t know why we can’t reproduce their success. Even if my device is 1065G7, we have this "unsupported cd clock 0x158" problem. There is currently no relevant information to get answers, do you have any suggestions? Can we only use whatevergreen updates its support for icl?

In progress by @0xFireWolf https://github.com/acidanthera/WhateverGreen/pull/62

 

Edit: 

Merged https://github.com/acidanthera/WhateverGreen/commit/6319f826f7c4c0c2f9b8097cea847ad5265e8946

Edited by Andrey1970
Link to comment
Share on other sites

It appears that I have resolved this problem by increasing 'Video Memory Size' configured in BIOS from 64MB to 512MB.  I am continuing to monitor this and have not observed any display issues for several days after making this BIOS configuration change.

---------------------------------------------------------------------

After extended sleep for more than 24 hours, my HP EliteDesk 800 G4 Mini (UHD 630, dual DP->DVI displays) woke to switched display positions.  The left and right displays were swapped.  Proper display position was restored after a reboot.  My display properties and system configuration are below.  I have never observed this before after many days of flawless operation.  Has anyone observed this and if so, how did you fix it?  Thank you.

 

System Configuration

  • Catalina 10.15.6 19G2021
  • CLOVER r5119 (UEFI)
  • SMBIOS MacModel: MacMini8,1
  • Boot Args: darkwake=3 igfxonln=1 igfxagdc=0
  • CPU: i7-8700T / GPU: UHD 630
  • 3 DP Ports with DP->DVI Adapters
  • Lilu.kext 1.4.6, WhateverGreen 1.4.1

Graphics Device Properties

Property

Value

Comment

AAPL,GfxYTile

01000000

Added because it is present on a real MacMini8,1

AAPL,ig-platform-id

0000923E

 

framebuffer-con0-busid

01000000

 

framebuffer-con0-enable

01000000

 

framebuffer-con0-flags

C7030000

 

framebuffer-con0-index

01000000

 

framebuffer-con0-type

04000000

DigitalDVI – required with
DP->DVI adapters

framebuffer-con1-busid

02000000

 

framebuffer-con1-enable

01000000

 

framebuffer-con1-flags

C7030000

 

framebuffer-con1-index

02000000

 

framebuffer-con1-type

04000000

DigitalDVI

framebuffer-con2-busid

04000000

 

framebuffer-con2-enable

01000000

 

framebuffer-con2-flags

C7030000

 

framebuffer-con2-index

03000000

 

framebuffer-con2-type

04000000

DigitalDVI

framebuffer-patch-enable

01000000

 

graphic-options

0C000000

Added because it is present on a real MacMini8,1

Edited by tonyx86
Added note about Video Memory Size
Link to comment
Share on other sites

On 8/23/2020 at 7:05 PM, Andrey1970 said:

 

It does indeed bypass the CD clock error. Sadly, now getting kernel panic after that - details attached.

 

 

panic.txt

Link to comment
Share on other sites

On 8/24/2020 at 12:05 AM, Andrey1970 said:

I saw this. In fact, the work of debugging is the equipment in the qq group in China (thanks to firewalf)! We have a question about the problem of abnormal screen during startup!

like this (Time reaches 13s)kernel1.log

 

Link to comment
Share on other sites

It appears that I have resolved this problem by increasing 'Video Memory Size' (configured in BIOS) from 64MB to 512MB.  I am continuing to monitor this and have not observed any display issues for several days after making this BIOS configuration change.  I am currently running without defining "pipes" and "con3" device properties in my CLOVER config.plist.  My EliteDesk 800 G4 Mini BIOS does not offer a way to configure 'DVMT Pre-Allocated' and only allows configuration of max video memory.  According to this, video memory should be set at max, so it appears that I did have this configured incorrectly when I was observing the problems described below.

---------------------------------------------------------------------

I have not observed this "switched displays" issue again, but I have suspicions that it might have something to do with the fact that I do not define framebuffer-conX-pipe values for each connector or I don't have a "dummy" connector for con3. I have added pipe values and con3 values and am currently running with the attached CLOVER config.plist. Note that I have upgraded to CLOVER r5122 and am using OCQuirks instead of AptioMemoryFix, so the attached config.plist also includes a Quirks block.

 

 

config.plist.zip

 

 

EDIT: I have not been able to reproduce the problem described here and have reverted to my config.plist without pipes and without "dummy" con3 graphics device properties.

 

EDIT2: My system booted to black screens when attempting to run without pipes and "dummy" con3 properties.  I have more reason to believe that pipes and/or a "dummy" con3 graphics properties are required for my system.

Edited by tonyx86
Added note about video memory size
Link to comment
Share on other sites

  • 3 weeks later...

I have installed macOS Catalina (10.15.7) on a Dell XPS 13 9300.

 

Hardware & Software configuration:
CPU: Intel Core i7-1065G7 (Ice Lake)
GPU: Intel Iris Plus Graphics
RAM: 32GB
Disk: Samsung 970 EVO Plus 2TB NVMe SSD
Bootloader: OpenCore 0.6.1
SystemProductName: MacBookAir9,1

 

The OS loads properly and then the internal display (4K) goes blank but the USB-C connected monitor (Dell U2719DC) works fine. The internal display does not even show up in the list of displays.

 

If I use an incorrect device-id, then the internal display works, but there is no graphics acceleration and obviously the connected monitor does not work.

 

I have tried other framebuffers, but have not found one that works. By the way, Hackintool provides a framebuffer patch with a framebuffer ID that does not work and is not even listed in the Whatevergreen guide for Ice Lake.

 

I have tried changing the flags for con0 so that it is not an internal monitor, but that does not work.

 

I also have Windows 10 and Ubuntu 20.04 installed on this laptop, so if needed I can look up configuration info on those OS.

 

I have attached screenshots of the relevant entries in config.plist and the Graphics/Displays configuration.

 

45533922_ScreenShot-DeviceProperties.thumb.png.57475f3727cd6e3c3a66888d2929006e.png

15846782_ScreenShot-Graphics-Displays.png.0a6b54f597c2bd0a33ec4445b97d612d.png

 

Thanks in advance for any help you can provide to resolve this issue.

Edited by najeeb_anwer
Link to comment
Share on other sites

On 9/25/2020 at 10:52 PM, najeeb_anwer said:

I have installed macOS Catalina (10.15.7) on a Dell XPS 13 9300.

 

Hardware & Software configuration:
CPU: Intel Core i7-1065G7 (Ice Lake)
GPU: Intel Iris Plus Graphics
RAM: 32GB
Disk: Samsung 970 EVO Plus 2TB NVMe SSD
Bootloader: OpenCore 0.6.1
SystemProductName: MacBookAir9,1

 

The OS loads properly and then the internal display (4K) goes blank but the USB-C connected monitor (Dell U2719DC) works fine. The internal display does not even show up in the list of displays.

 

I found this in the system log:

Quote

2020-09-27 13:15:02.543887-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][INFO ][DISPLAY   ] getCurrentDisplayMode: FB=0 fCurrentMode = 0xfffffffb fCurrentDepth = 0, fBootDisplay = 1.
2020-09-27 13:15:02.543890-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][LOG  ][DISPLAY   ] Setting current mode to 0xfffffffb and depth=0
2020-09-27 13:15:02.543970-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][INFO ][DISPLAY   ] getCurrentDisplayMode: FB=0 fCurrentMode = 0xfffffffb fCurrentDepth = 0, fBootDisplay = 1.
2020-09-27 13:15:02.543971-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][LOG  ][DISPLAY   ] Setting current mode to 0xfffffffb and depth=0
2020-09-27 13:15:02.544154-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:592500000 ScalerFlags:0 SignalConfig:0x2 Requested pixel encoding 1 Colorimetry 1 dynamic range 1
2020-09-27 13:15:02.544156-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Detailed timing validated by AGDC (response = 0x0)
2020-09-27 13:15:02.544160-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:592500000 ScalerFlags:0 SignalConfig:0x2: Requested pixel encoding 1 dynamic range 1
2020-09-27 13:15:02.544162-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: fEnablePlaneRotation = 1, fittable = 1
2020-09-27 13:15:02.544164-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::ValidateSourceSize(IODetailedTimingInformationV2*)> [IGFB][LOG  ][DISPLAY   ] FB0: Mode rejected (not enough memory)
2020-09-27 13:15:02.544165-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Source size validation failed - rejecting mode
2020-09-27 13:15:02.544231-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:592500000 ScalerFlags:0 SignalConfig:0x2 Requested pixel encoding 1 Colorimetry 1 dynamic range 1
2020-09-27 13:15:02.544242-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Detailed timing validated by AGDC (response = 0x0)
2020-09-27 13:15:02.544247-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:592500000 ScalerFlags:0 SignalConfig:0x2: Requested pixel encoding 1 dynamic range 1
2020-09-27 13:15:02.544248-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: fEnablePlaneRotation = 1, fittable = 1
2020-09-27 13:15:02.544250-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::ValidateSourceSize(IODetailedTimingInformationV2*)> [IGFB][LOG  ][DISPLAY   ] FB0: Mode rejected (not enough memory)
2020-09-27 13:15:02.544251-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Source size validation failed - rejecting mode
2020-09-27 13:15:02.544353-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:474000000 ScalerFlags:0 SignalConfig:0x2 Requested pixel encoding 1 Colorimetry 1 dynamic range 1
2020-09-27 13:15:02.544354-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Detailed timing validated by AGDC (response = 0x0)
2020-09-27 13:15:02.544357-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:474000000 ScalerFlags:0 SignalConfig:0x2: Requested pixel encoding 1 dynamic range 1
2020-09-27 13:15:02.544359-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: fEnablePlaneRotation = 1, fittable = 1
2020-09-27 13:15:02.544360-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::ValidateSourceSize(IODetailedTimingInformationV2*)> [IGFB][LOG  ][DISPLAY   ] FB0: Mode rejected (not enough memory)
2020-09-27 13:15:02.544361-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Source size validation failed - rejecting mode
2020-09-27 13:15:02.544419-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:474000000 ScalerFlags:0 SignalConfig:0x2 Requested pixel encoding 1 Colorimetry 1 dynamic range 1
2020-09-27 13:15:02.544420-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Detailed timing validated by AGDC (response = 0x0)
2020-09-27 13:15:02.544423-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Online:1 Mode:0 Depth:1 Active:3840x2400 Scaled:0x0 PixelClock:474000000 ScalerFlags:0 SignalConfig:0x2: Requested pixel encoding 1 dynamic range 1
2020-09-27 13:15:02.544425-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: fEnablePlaneRotation = 1, fittable = 1
2020-09-27 13:15:02.544426-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::ValidateSourceSize(IODetailedTimingInformationV2*)> [IGFB][LOG  ][DISPLAY   ] FB0: Mode rejected (not enough memory)
2020-09-27 13:15:02.544427-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::validateDetailedTiming(void*, unsigned long long)> [IGFB][LOG  ][VDT       ] FB0: Source size validation failed - rejecting mode
2020-09-27 13:15:02.544536-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][INFO ][DISPLAY   ] getCurrentDisplayMode: FB=0 fCurrentMode = 0xfffffffb fCurrentDepth = 0, fBootDisplay = 1.
2020-09-27 13:15:02.544538-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) <AppleIntelICLLPGraphicsFramebuffer`AppleIntelFramebuffer::getCurrentDisplayMode(int*, int*)> [IGFB][LOG  ][DISPLAY   ] Setting current mode to 0xfffffffb and depth=0

 

So, it looks like there is a problem with framebuffer memory for FB0 which is what drives the internal display.

  1. On this laptop, Dell has set the DVMT Pre-Alloc to 60MB and it cannot be changed (I have tried using modGRUBShell.efi and RU.efi - both fail to load).
  2. I have tried setting framebuffer-stolenmem=32MB and framebuffer-fbmem=16MB, but I still get the "not enough memory" error in the log. Setting framebuffer-stolenmem=48MB and framebuffer-fbmem=9MB causes macOS boot failure. Is there a set of values in Whatevergreen that would work?
  3. Alternatively, is there a way to set the internal display to a lower (scaled) resolution using Whatevergreen properties, so that a smaller framebuffer memory would work?
Edited by najeeb_anwer
Link to comment
Share on other sites

×
×
  • Create New...