I think I've read most of the posts.
You're mainly talking about dual GPU macbook's - and the problems HD 3000 is making.
What about the 2011 MBA's with just the HD 3000 under the hood? Will it still have all those GPU problems as of now ?
Not really... At this stage, the application works like a charm regardless of the number of GPUs. It's able to identify all of them. It's able to identify the currently active one. It can load the VGA Option ROM of any VGA card from the firmware, the PCI BAR or from the filesystem. The only two problems that I'm still trying to solve are the VGA emulation (required for Windows Vista SP1+ and Windows 7 GA/SP1, but not Windows 7 SP2 or Windows 8) and the RS->QueryVariableInfo implementation (required for all Windows releases for BCD editing).
For the VGA emulation, POST-ing the OptionROM with the CSM doesn't work for some odd reason, so I'm trying to POST it using x86-emu from Scitech.
For the RS-QueryVariableInfo, my implementation works before SetVirtualMap is requested, but afterwards (during the OS runtime) it doesn't yet work. For some reason, I'm not using RS->ConvertPointer properly. I'm either using it on pointers that have already been converted, or not using it on some other pointers that are needed by my implementation at runtime. Unfortunately, I don't know how to debug it yet.
Once these problems are solved, the application will be released as version 1.0.
For version 2, I'll add support for selecting the VGA card to be used by Windows (instead of using the same one the EFI is using), the ability to shutdown any VGA card (in multi-GPU setups), a configurable boot loader to chain load, configurable SATA/IDE, and a nice setup screen for all of these.
Optionally, I'm planning to embed my application as a DXE driver straight in the Flash of the Macs, so that it runs automatically before the boot-picker, regardless of the OS being used.
This should also make all UEFI compliant Linux distributions work like a charm.