Problems on the VMWare SVGA2 FIFO
Posted: Fri Mar 29, 2013 6:53 pm
Hi,
i have a small problem. Im programming a graphics driver for the vmware api. Everything works and i can directly draw into the Framebuffer. BUT: I cant use the FIFO correctly:
If i call:
SVGA_FillRect(VgaGfxBase, 0xff00ff00, 5, 5, 30, 240);
SVGA_FifoUpdateFullscreen(VgaGfxBase);
Nothing happens.
if i do the following:
for(;;) SVGA_FillRect(VgaGfxBase, 0xff00ff00, 5, 5, 30, 240);
I can see my green box.
My "testing" system: Qemu -vga vmware and vmware workstation.
Anyone knows where i need to look at?
i have a small problem. Im programming a graphics driver for the vmware api. Everything works and i can directly draw into the Framebuffer. BUT: I cant use the FIFO correctly:
Code: Select all
void SVGA_FillRect(VgaGfxBase *VgaGfxBase, UINT32 color, UINT32 x, UINT32 y, UINT32 width, UINT32 height )
{
SVGA_FifoBeginWrite(VgaGfxBase);
SVGA_FifoWrite(VgaGfxBase, SVGA_CMD_RECT_FILL );
SVGA_FifoWrite(VgaGfxBase, color );
SVGA_FifoWrite(VgaGfxBase, x );
SVGA_FifoWrite(VgaGfxBase, y );
SVGA_FifoWrite(VgaGfxBase, width );
SVGA_FifoWrite(VgaGfxBase, height );
SVGA_FifoEndWrite(VgaGfxBase);
SVGA_FifoSync(VgaGfxBase);
}
SVGA_FillRect(VgaGfxBase, 0xff00ff00, 5, 5, 30, 240);
SVGA_FifoUpdateFullscreen(VgaGfxBase);
Nothing happens.
if i do the following:
for(;;) SVGA_FillRect(VgaGfxBase, 0xff00ff00, 5, 5, 30, 240);
I can see my green box.
My "testing" system: Qemu -vga vmware and vmware workstation.
Anyone knows where i need to look at?