baconeveryday 2 Posted November 20, 2020 Posted November 20, 2020 Installed and running Big Sur but only able to get 1 DP output. Having been trying different boot options and settings but unsuccessful. Hoping to get any ideas on this and what I'm missing. I've read countless threads and probably tired them just out of desperation. Any help would be much appreciated. thanks! I'm guessing it could be DVMT-prealloc but i've done the framebuffer and that didn't help. I've tried setting DVMT on a Dell desktop under Clover before on catalina but still only single monitor. However, couldn't find a good way to very it set to 64MB or 128MB. https://github.com/optiplex-osx/Dell-OptiPlex-7040-Clover-EFI GPU acceleration is working. Applied the kernel patches as shown in screen shot. I have tired the usual but no effect so removed the framebuffer settings. PciRoot(0x0)/Pci(0x2,0x0) AAPL,ig-platform-id 00001219 framebuffer-fbmem 00009000 framebuffer-patch-enable 01000000 framebuffer-stolenmem 00003001 Current boot args (yes duplicating AGDP disablement) but why not agdpmod=ignore igfxonln=1 agdpmod=pikera Desktop System is Dell Optiplex 7040 i7-6700 Skylake 6th gen. Intel HD530 iGPU OC 0.6.3 using Whatevergreen.kext 1.4.4. config.plist is pretty standard following Skylake recommedation. https://dortania.github.io/OpenCore-Install-Guide/config.plist/skylake.html#starting-point Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 20, 2020 Posted November 20, 2020 You would not normally be expected to inject framebuffer-conX-busid or framebuffer-conX-index properties. the conX-enable and conX-type are expected to be sufficient to set display output types. What you ought to check though is if the number of output ports of the SKL framebuffer (ig-platform-id) you use matches the number of output ports you want to use. DVMT (StolenMem) or framebuffer memory size parameters do not apply to the number or type of display outputs so, indeed, no patch or property settings on those will make any difference. Start by getting your active framebuffer settings from Hackintool. Quote Share this post Link to post Share on other sites
HenryV 22 Posted November 20, 2020 Posted November 20, 2020 (edited) Read what Apple has to say, there are many potential incompatibility issues: https://support.apple.com/en-us/HT201177 https://support.apple.com/en-us/HT204388 Edited November 20, 2020 by HenryV additional reference Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 21, 2020 Posted November 21, 2020 Thanks for the comments. I agree I would not need the conX [busid,Index]. I went ahead to be certain. I did have to correct the type from HDMI to DP on con2. For completeness, SMBios is set to iMac17,1 The motherboard has 2 DP ports and 1 HDMI. I just want to use 2 displays, 2 DP or 1 DP and 1 HDMI. Either combination doesn't matter. IOReg shows only 2 DP. My only guess why IOReg only shows 2 display is that my Framebuffer Port Limit is 2 currently according to Hackintool->Patch->Patch->Advanced. Is this a correct assumption? Oddly enough Hackintool shows 3 connectors. So I could try to inject BusID6. Is there significance why BusID 4 and 6 have the same Pipe 10? Would appreciate and suggestions on how to match the outputs. I will search around and see what I cant find. thanks. Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 21, 2020 Posted November 21, 2020 I think the problem is that, as you've illustrated with your WEG manual and Hackintool screenshots, SKL platform-id 0x19120000 is a mobile FB with a dummy video output and 2 x DP outputs. I don't have any Skylake computer so never looked into this but you ought to patch that framebuffer's connectors arrangement to support your DP+DP or DP+HDMI dual outputs. So you could try and experiment with various things such as: change the connector type of DP output #1 to HDMI change the pipe of DP output #1 to 0x10 change the Index and Bus id of DP output #1 to 0306 (since you get video out of DP #2) mix 2 & 3 change port count to 4 and add a 4th DP or HDMI connector with Index/Bus id 0306 replace the dummy connector by a 3rd DP or HDMI connector I think you already know this but the WEG user manual provides you will all the necessary documentation to apply the above. You may also use Hackintool to create those settings and prepare your properties injection through the patch generation facility (use iASL DSL Source or KextstoPatch (Hex) form rather than DeviceProperties which returns Base64 text). Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 22, 2020 Posted November 22, 2020 (edited) Hi @Hervé Thanks for your continued help. And yes I noticed the SKL is mobile and so milage may very. change the connector type of DP output #1 to HDMI -> tried...no go change the pipe of DP output #1 to 0x10 -> tried no go change the Index and Bus id of DP output #1 to 0306 (since you get video out of DP #2) -> tried no go mix 2 & 3 -> tried no go change port count to 4 and add a 4th DP or HDMI connector with Index/Bus id 0306 How do you change the port count? Or is it just a matter of injecting another conX? If so, I've tried it and no go also. replace the dummy connector by a 3rd DP or HDMI connector How reliable is Hackintool if WEG is the release version? Hackintosh says my current working DP is port 6 but port 2 is the correct seeing. If I change index 2 to port 6, just no signal. Let me know if you want to see any IOreq or hackintosh screen shots or logs. thanks. Edited November 22, 2020 by baconeveryday Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 22, 2020 Posted November 22, 2020 I don't know what you mean by "Hackintosh says my current working DP is port 6" but if you mean connector 0204, that would be right. In IOReg, you should see Port 6 reported against that connector FB@2. You would change port count to 4 with the following property injection: framebuffer-patch-enable 1 NUMBER (or 01000000 DATA) framebuffer-pipecount 4 NUMBER framebuffer-portcount 4 NUMBER after which you would add properties for 4th connector con3: framebuffer-con3-enable 1 NUMBER framebuffer-con3-alldata 03060A000004000087010000 DATA where: Index = 03 Bus Id = 06 Pipe = 0A00 Type = 00040000 (DP) Flags = 01870000 You could also add a property to declare a desktop platform rather than a mobile one: framebuffer-mobile 0 NUMBER Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 22, 2020 Posted November 22, 2020 (edited) Maybe I don't understand port 6 is the same as connection 0204? I thought if you have something like this 02040A00 00040000 87010000, 02 = Port, 04 = busId, 0A = pipe, etc... Okay...tried increasing port count and injected con3: No go still. I'll try switch con3 to HDMI. IOReg still shows only 3 connectors I also went back and added pipecount even though its not in the screenshot. still no difference in number of connectors. However, if you look at IOReg -> framebuffer-portcount, it is special characters. Makes me wonder is that a valid injection? thanks. Edited November 22, 2020 by baconeveryday Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 22, 2020 Posted November 22, 2020 Select connector/output port FB@2 in IORegistryExplorer, then, in the right part of the app, go to the bottom of the displayed data. In connector 0204.... 02=Index and 04=Bus id. Usually: con0 (FB@0) is Port 0 con1 (FB@1) is port 5 (i.e. connector 0105... in the platform layout definition) con2 (FB@2) is Port 6 (i.e. connector 0204... in the platform layout definition) con3 (FB@3) is Port 7 (i.e. connector 0306... in the platform layout definition) Example with the Capri framebuffer of my Latitude E6230: ID: 01660003, STOLEN: 64 MB, FBMEM: 16 MB, VRAM: 1536 MB, Flags: 0x00000000 TOTAL STOLEN: 16 MB, TOTAL CURSOR: 1 MB, MAX STOLEN: 32 MB, MAX OVERALL: 33 MB (34619392 bytes) Camellia: CamelliaUnsupported (255), Freq: 1808 Hz, FreqMax: 1808 Hz Mobile: 1, PipeCount: 2, PortCount: 4, FBMemoryCount: 2 [5] busId: 0x03, pipe: 0, type: 0x00000002, flags: 0x00000030 - ConnectorLVDS [2] busId: 0x05, pipe: 0, type: 0x00000400, flags: 0x00000407 - ConnectorDP [3] busId: 0x04, pipe: 0, type: 0x00000400, flags: 0x00000081 - ConnectorDP [4] busId: 0x06, pipe: 0, type: 0x00000400, flags: 0x00000081 - ConnectorDP 05030000 02000000 30000000 02050000 00040000 07040000 03040000 00040000 81000000 04060000 00040000 81000000 Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 22, 2020 Posted November 22, 2020 Right..I think I was confused with the definition of the term port. Looking at IOReg for my Optiplex 7040, this is what is assigned AppleIntelFramebuffer@0 port-number is 0x0 AppleIntelFramebuffer@1 port-number is 0x5 AppleIntelFramebuffer@2 port-number is 0x6 Therefore, similar to your example, this is the same as how I am injecting framebuffer con0 (FB@0) is Port 0 con1 (FB@1) is port 5 (i.e. connector 0105... in the platform layout definition) con2 (FB@2) is Port 6 (i.e. connector 0204... in the platform layout definition) <- is my primary boot display (working one) Adding con3 as HDMI pipe 8 and pipe 10. But also in IOReg, there is unknown characters. See blue highlight. And also FB@3 is not created or visible in IOReg. thanks. Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 22, 2020 Posted November 22, 2020 Is there a tool in Win10 that I can run to find out the exact iGPU configuration? I assume it should still be the same when running on Big Sur. Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 24, 2020 Posted November 24, 2020 Hi @Hervé Is it possible to use iGPU and dGPU simultaneously? I just don't think it is possible with the framebuffers to do this. I've searched all over and yet to see real results that dual monitor works for HD 530. thanks. Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 24, 2020 Posted November 24, 2020 I suggested a patch, you applied something else... -> suggested: framebuffer-patch-enable 1 NUMBER (or 01000000 DATA) framebuffer-pipecount 4 NUMBER framebuffer-portcount 4 NUMBER framebuffer-con3-enable 1 NUMBER framebuffer-con3-alldata 03060A000004000087010000 DATA -> applied: framebuffer-patch-enable 01000000 DATA framebuffer-pipecount 04000000 DATA framebuffer-portcount 04000000 DATA framebuffer-con1-enable 01000000 DATA framebuffer-con1-alldata 010509000004000087010000 DATA framebuffer-con2-enable 01000000 DATA framebuffer-con2-alldata 02040A000004000087010000 DATA framebuffer-con3-enable 01000000 DATA framebuffer-con3-alldata 030608000008000087010000 DATA Please note that injecting same properties as framebuffer's default ones is useless. Framebuffers do not suffer from Alzheimer disease... framebuffer-con1-enable 01000000 DATA framebuffer-con1-alldata 010509000004000087010000 DATA framebuffer-con2-enable 01000000 DATA framebuffer-con2-alldata 02040A000004000087010000 DATA I'm pretty sure that HDMI would attach to connector 1 so I would patch it accordingly. With the additional 4th port, the entire injection would be as follows (connector 2 being left untouched): AAPL,ig-platform-id 00001219 DATA framebuffer-patch-enable 1 NUMBER framebuffer-pipecount 4 NUMBER -> for test, otherwise remove framebuffer-portcount 4 NUMBER framebuffer-con1-enable 1 NUMBER framebuffer-con1-alldata 010509000008000087010000 DATA -> con1 to HDMI framebuffer-con3-enable 1 NUMBER framebuffer-con3-alldata 03060A000004000087010000 DATA -> new con3, set to DP Good luck in the rest of your endaevour. Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 25, 2020 Posted November 25, 2020 Hi @Hervé I apologize if it seem I wasn't trying to follow your changes. I was and I was trying different combinations. As mentioned in the early post, I continue to inject con2 because the default is HDMI where it should be DP. The interesting thing, and i'm not sure why, with or w/o con2 injection, the primary display is always DP and it works. This display has to be connected at boot up. So I tried your EXACT suggestion...I still only get 1 display. I'm willing to try any other suggestions. thanks again. Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 25, 2020 Posted November 25, 2020 It looks like several other people suffer similar issues on such Dell Skylake platforms and no solutions to date either. Maybe you ought to consider the alternative of a discrete graphics card instead... Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 27, 2020 Posted November 27, 2020 Thanks again for all your help. I might got down the dGPU route another time. Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 27, 2020 Posted November 27, 2020 One last thing I've only just thought of (sorry, I must be tired), is the old matter of Mac model video output capabilities as controlled by AppleGraphicsDevicePolicy kext (itself a PlugIn of AppleGraphicsControl kext). I don't know if that remains applicable in Big Sur but there used to be a binary patch to bypass the kext and remove display output capabilities restrictions. WEG also handles this through agdpmod boot arg. Again, I don't know if this has remained applicable to Big Sur but you may want to try out multiple displays again with boot args such as agdpmod=vit9696 or agdpmod=pikera. https://github.com/acidanthera/WhateverGreen Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 27, 2020 Posted November 27, 2020 @baconeveryday, a friend of mine's got a Dell Optiplex 7050 with HD530. Using platform-id 0x19120000 + setting boot arg agdpmod=pikera (to bypass AppleGraphicsDevicePolicy kext's graphics capabilities control), we got HDMI on con1 (0105....) + DP on con2 (0204...). After injecting properties for 4th connector con3, we got 3 x concurrent displays: 1 x HDMI + 2 x DP. Config injecting following properties for iGPU device@2, i.e. PciRoot(0x0)/Pci(0x2,0x0): AAPL,ig-platform-id 00001219 DATA device-id 12190000 DATA (only if required) framebuffer-patch-enable 01000000 DATA framebuffer-fbmem 00009000 DATA framebuffer-stolenmem 00003001 DATA framebuffer-pipecount 3 NUMBER framebuffer-portcount 4 NUMBER framebuffer-memorycount 3 NUMBER framebuffer-con1-enable 01000000 DATA framebuffer-con1-alldata 01050900000800008701000002040A00000400008701000003060A000004000087010000 DATA hda-gfx onboard-1 STRING framebuffer-con1-alldata basically injects the following 3 connectors properties/info in a single 36xbytes statement: con1: 01050900 00080000 87010000 -> sets connector-type to HDMI (for HDMI audio support) con2: 02040A00 00040000 87010000 -> unchanged, DP con3: 03060A00 00040000 87010000 -> 2nd DP output and in parallel, pipe count, port count and memory count of SKL layout 19120000 are respectively set to 3, 4 and 3 to support 4 x display connectors, con0 remaining a dummy one throughout. Add agdpmod=pikera as boot arg in NVRAM of your OC config or in boot arg section of your Clover config. With OC, apply a Reset NVRAM at 1st reboot. Experiment with agdpmod=vit9696 too if you're game! Hope it works for you. Don't get scared if all screens go black for a few seconds after login challenge. Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 28, 2020 Posted November 28, 2020 (edited) Hi @Hervé I'm game! Thanks for getting back on this! Unfortunately I'm still unable to get it to work on Big Sur. I've tried the following combinations with 2 monitors connected at all times. 1 DP connected (primary and always working on con2), 1 DP and 1 HDMI both connected to 2nd monitor (I switch between DP and HDMI inputs to see if they work at all) Injection agdpmod=pikera agdpmod=vit9696 Kernel->patch agdp (#7 in config.plist) 1 x x Disabled 2 x x Enabled 3 x x Disabled 4 x x Enabled 5 w/ device-id x Enabled 6 w/ device-id x Disabled Note, I've applied the following Kernel patches in the config.plist (see uploaded file) Attaching the config.plist. Maybe I'm missing something. I've removed my serial number and the system UUID. I've used the latest kexts (2wks ago) w/ OC 0.6.3. Ran SSDTTime on the 7040 to get the settings. Let me know if you need me to upload the EFI folder. Thanks. Also if your friend can attach his/her config.plist, I can take a look. Thanks again. config.plist Edited November 28, 2020 by baconeveryday Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 28, 2020 Posted November 28, 2020 @baconeveryday, Oups! Copy/paste error in my previous post for the properties injection, my apologies. The injection of fbmem/stolenmem/pipecount/portcount/memcount were all incorrect by syntax and therefore inapplicable. I've corrected this above. My friend is also using the additional boot args in NVRAM section of config: igfxfcms=1 -igfxdvmt igfxonln=1 Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 28, 2020 Posted November 28, 2020 @Hervé Sorry, what did you correct? I don't see any changes in your previous post? I will try the additional 3 boot args with agdpmod=pikera or agdpmod=vit9696 Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 28, 2020 Posted November 28, 2020 I had posted this: framebuffer-patch-fbmem 00009000 DATA framebuffer-patch-stolenmem 00003001 DATA framebuffer-patch-pipecount 3 NUMBER framebuffer-patch-portcount 4 NUMBER framebuffer-patch-memcount 3 NUMBER instead of this: framebuffer-fbmem 00009000 DATA framebuffer-stolenmem 00003001 DATA framebuffer-pipecount 3 NUMBER framebuffer-portcount 4 NUMBER framebuffer-memorycount 3 NUMBER Try this adjusted config of yours (which is still without the serial numbers): config.plist.zip Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 28, 2020 Posted November 28, 2020 Ah...I was so focused on the values and didn't notice the key. BTW, the kernel patch AGDP should be enabled from the post I've read elsewhere. Is that correct? I was worried it might have interfere with the boot args related to agdp. Quote Share this post Link to post Share on other sites
baconeveryday 2 Posted November 28, 2020 Posted November 28, 2020 (edited) @Hervé You did it! 2 DP. Thank you very much. HDMI still doesn't work but I'm find with 2 displays. I used the mod config.plist you sent to me. I see you removed the kernel patches. Was that all that changed? I would not have figured this recipe out nor seen it in other posts. The mem, pipe, port still don't quite make sense to me. I'll look into it further. I did have to make a change by removing the stolenmem and fbmem. For whatever reason, when I included these two injections, my resolution is limited to 2K. If I remove them, I get 4K. Edited November 28, 2020 by baconeveryday MINHANH 1 Quote Share this post Link to post Share on other sites
Hervé 2,041 Posted November 28, 2020 Posted November 28, 2020 Not my day/night with copy/paste .. Sorry I had made another typo! incorrect: framebuffer-memcount 3 DATA Correct: framebuffer-memorycount 3 DATA Quote Share this post Link to post Share on other sites