Seems fine
I think windows is probably initializing the Thunderbolt Chip and if you warm-reboot, it stays in that state and then MacOS doesn't have to do anything and it works.
That's just a guess though
Can you describe your eGPU setup and all connections related to graphics?
I made two IOREGs with artifacts and without then. Added to attachments.
=======================================================================================
=======================================================================================
UPD1:
AND AFTER A SECOND>
=======================================================================================
=======================================================================================
UPD2: bootarg "-wegnoigpu" fully disabling igpu and now egpu is fully functional. So it is clear, that the problem of artifacts is apearing when IGPU trying render UI elements, than send it to egpu, and egpu send it back to display. As laptop will always work with screen, even if disconnect it from display. The important moment: zbook power off IGPU when egpu connected, as the any screen connected to laptop wont work before any os is loaded.
My sugestions. So Mac is loading os, powering on IGPU. After first stage of boot and on the stage when drivers are loaded (verbose listing) the first device order maybe is wrong. Thats why displays (Internal HDMI, EGPU HDMI) is dancing cross different graphics unit.
=======================================================================================
=======================================================================================
UPD 3. What if the reason of this problem is OpenGL? Different versions or priority to default OpenGL device? Is it possible to test metal 3D engine? If this is working so somehow os or some kext or device policy disabling metal for os GUI???
I use rehabman igpu inject via device property config plist.
=======================================================================================
=======================================================================================
UPD 4. Its framebuffer issue. Possible related to whatevergreen. I compare your efi kext folder, and find huge difference to hotpatch kexts. SO I FOUND IN WHATEVERGREEN MANUAL TO DISABLE THIS KEXTS:
Manual: https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md
Remove (if used previously) these kexts:
— IntelGraphicsFixup.kext
— NvidiaGraphicsFixup.kext
— CoreDisplayFixup.kext
— Shiki.kext
— IntelGraphicsDVMTFixup.kext
— AzulPatcher4600.kext
— AppleBacklightFixup.kext,
— FakePCIID_Intel_HD_Graphics.kext
— FakePCIID_Intel_HDMI_Audio.kext
— and FakePCIID.kext (if there are no other FakePCIID plugins)
But ihave
FakePCIID_XHCIMux
So back to IOREG tree, my two displays become 3 displays, because when no display connected to laptop, the internal display is enabling (like on real mac, its a huge problem when using eGPU).
Also I note, that have no DRM support.
iTunes/Apple Store Content Access Problem. Content playback may be disabled on this computer. You can continue to use the machine, but you should contact an Apple support representative. ErrorCode: 8877652
So planing to follow whatevergreen manual and disable or enable required options
=======================================================================================
=======================================================================================
UPD 5.
theroadw said:
I think windows is probably initializing the Thunderbolt Chip and if you warm-reboot, it stays in that state and then MacOS doesn't have to do anything and it works.
Thunderbolt chip is simple HOST PCI lanes + UART data to network-type cable and then to DEVICE PCI+UART. All pci states, like Wake, CLK request and two different mossfets pnp and npn, all of them are connected to cortex arm cpu. Arm CPU connected to UART (LowSpeed Interface, directly to TB cable), to PCI Control lanes, and to thunderbolt chip via SPInterface. So this chip is simple operation. I done some different hardware hacks with tb1 devices, and they are really simple to modify. And for those who know how to reverse engineering firmware, even is possible to make any thunderbolt device work as they want.
\\\\ Thunderbolt ethernet dongle
What windows is doing, is simple power on IGPU and after that it working well. maybe its really a conflict with wrong properties, or drivers. Will test and check