Page 1 of 1

VBE with linear framebuffer on VMware

Posted: Fri Jul 15, 2011 3:28 pm
by Andy1988
Hi everybody,

I'm currently developing some framebuffer blitting code.
I'm using v86 to find and switch to a VBE mode with linear framebuffer and just write into the physical base address I get from VBE.

Now, on qemu everything works fine, but in VMware the mode switch happens, the window resizes and I just see some stretched text on the display. Any write operation in the linear framebuffer doesn't seem to have any effect.
All VBE operations (get device information, get mode information and switch mode) don't return any error.

I've been searching for an hour now and I'm out of ideas.
Any advises?


edit:
Just to clarify. I'm currently writing a whole bunch of 0x00FFFFFF into every pixel in a 32 bit mode to test if I can see anything, but nothing happens on the display:

Code: Select all

uint32_t* bla = (uint32_t*)vbe_currentVbeMode.physbase;
    for(int i = 0; i < 1000*10000; i++)
        *bla++ = 0x00FFFFFF;
The base address also makes sense with 0xD0000000.

I also don't have paging enabled and didn't configure any kind of caching.

Re: VBE with linear framebuffer on VMware

Posted: Fri Jul 15, 2011 5:48 pm
by Brendan
Hi,
Andy1988 wrote:Now, on qemu everything works fine, but in VMware the mode switch happens, the window resizes and I just see some stretched text on the display. Any write operation in the linear framebuffer doesn't seem to have any effect.
Do you enable LFB when setting the mode?

For e.g. "BX = mode_number | (1 << 14)" when calling VBE function 2 (rather than just "BX = mode_number")?


Cheers,

Brendan

Re: VBE with linear framebuffer on VMware

Posted: Fri Jul 15, 2011 5:51 pm
by Andy1988
Brendan wrote:Do you enable LFB when setting the mode?
No, I didn't ;)
It works now, thank you very much!