[ros-dev] Livecd video regression
ionucu at videotron.ca
Tue Oct 18 21:31:51 UTC 2011
What's missing is the magic function that takes the VGA data and prints out as a 4-layer region… that didn't work and required some changes to ExtCreateRegion I believe -- otherwise ReactOS was booting with just black and white.
Eventually those were changes were reverted I think, then re-added back? I don't know anymore.
I'll try to commit the missing file.
On 2011-10-17, at 5:49 AM, Timo Kreuzer wrote:
> Since one of my recent video driver loading changes, livecd video is vga mode. The reson is:
> When installing bootcd, there will be only 1 video driver installed: based on 1st stage selection, either vbe or vga will be installed the other one is deactivated (start mode = manual). When installing a 3rd party driver, that one used to be installed and loaded prior to VBE and thus became Device/Video0, which win32k happily used as primary adapter.
> This behaviour changed with ACPI hal and VBE is loaded first, resulting is non functional VBox driver.
> I fixed this, by having win32k decide which driver to use, by looking if its a vga compatible driver and use that one only as fallback, if no other is present. additionally the VBE was marked as VgaCompatible.
> Now livecd behaves differently and simply installs both VGA and VBE. and since both are now marked as VgaCompatible, win32k doesn't know which one to use and currently uses VGA.
> Now how does this work in Windows? Windows has only one Adapter installed for VGA and VBE (vga.sys + vga.dll/vga256.dll/vga64k.dll/framebuf.dll) This service is always loaded and marked as "VgaCompatible". It is also used when a 3rd party driver is installed, when you switch to fullscreen console mode.
> This adapter is only replaced by a 3rd party adapter if that one is also vga compatible.
> This way its easy for win32k to decide which one to use: based on whether /BASEVIDEO is passed, either the vga compatible one or the other one can be selected.
> Possible solutions:
> 1) Add another workaround to win32k, checking if 2 VGA adapters are installed and then using the first one, instead of the second one as currently (because 1st is VGA, simply the second is used), but thats not a real solution.
> 2) Fix whatever is neccessary to have VBE be replaced by a 3rd party driver that is installed. (Cameron said it was related to VBE not being PNP ready.) This way we can stop marking it as VgaCompatible.
> 3) Combine VGA and VBE miniport into one vga compatible driver, like it's in windows. Alex mentioned that eVb has more or less finished that. Question is: whats missing to have the code comitted?
> Comments and feedback appreciated,
> Ros-dev mailing list
> Ros-dev at reactos.org
More information about the Ros-dev