nin39z, lunari,
I had the same issues as you post 10.8.3 update. The problem is related to both the HD4000 and dedicated graphics loading at the same time. This can be seen in the logs here:
Code:
Debugger called: </SourceCache/GraphicsDrivers/GraphicsDrivers-8.10.44/Common/IONDRV/Intel/IVB/AppleIntelFramebuffer/AppleIntelController.cpp:12351 Assertion failed: (0 == i) || ((pfbInfo->rangeStolen.physBase - pfbInfoPrev->rangeSt
The IVB - ivy bridge, ie HD4000 AppleIntelFramebuffer is failing to load. Something to do with a stolen range.
This is caused by a conflict between dedicated and non-dedicated graphics. This happens because when your DSDT is edited to allow HDMI audio, it renames the graphics adapters internally - and presumably, the framebuffer calls back to its old name or something.
I found three solutions to the problem:
1. Set the IGPU to the default graphics adapter in the BIOS (I believe under northbridge in the UEFI settings).
This does have some drawbacks however, namely that you now have to plug a monitor into the motherboard to see anything while the system is booting. You will still get the full power of your dedicated graphics card, as long as the main monitor you are using is plugged into it. There is a way to do this being able to see your boot on a dedicated card, but it is fairly complex and only works on some cards, so I'm not going to go into it right now. No drawbacks at all apart from the extra screen in some setups.
2. Don't do the HDMI audio DSDT edit.
The problem is caused by the DSDT edit for HDMI audio loading both the IGPU and the dedicated card at the same time. The integrated HD4000 has some kind of problem loading its framebuffer in this situation. If you don't do this edit when you edit your DSDT, then all will be fine. You will lose HDMI audio, but another edit is available to get your on-board audio working apart from this. Also, you lose airplay mirroring.
3. Delete the HD4000 Kexts.
The easiest stop gap solution. The problem is with the framebuffer for the HD4000 loading. If you simply delete these kexts, then all will work. When I did this as a stop-gap solution, I think I deleted all the AppleIntelHD4000-whatever kexts, but I think you could probably just delete AppleIntelHDGraphicsFB.kext (which is the framebuffer that the error calls back to). I did this in single user mode I think, but if you can boot in safemode, that will also work fine. Remember to repair permissions and rebuild the kernel cache with kext wizard afterwards. Not ideal in case you want/need to switch to HD graphics in the future, and you lose airplay mirroring and maybe HDMI audio (even on your dedicated card) as well.
To start with, No1 is probably easiest, followed by 3. If anyone wants me to do some DSDT editing, then let me know, I'm happy to help. Let me know what graphics cards you have and I may be able to help you with the more advanced version of 1 that will allow you to plug all monitors into your graphics card, have integrated graphics as default, and have it all working.