Skip to content

Commit

Permalink
Use corect depth from DisplaySurface in vmware_vga.c
Browse files Browse the repository at this point in the history
Hello,
for what I can tell, there is no way for vmware_vga to work correctly
right now. It assumes that the framebuffer bits-per-pixel and the one
from the DisplaySurface are identical (it uses directly the VRAM from
vga.c), but it always assumes 3 bytes per pixel, which is never possible
with the current version of DisplaySurface.
Attached patch fixes that by using ds_get_bits_per_pixel.
  • Loading branch information
rdoeffinger authored and balrog-kun committed Aug 23, 2009
1 parent 13f59cb commit c00a9de
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions hw/vmware_vga.c
Original file line number Diff line number Diff line change
Expand Up @@ -923,7 +923,7 @@ static void vmsvga_reset(struct vmsvga_state_s *s)
s->width = -1;
s->height = -1;
s->svgaid = SVGA_ID;
s->depth = 24;
s->depth = ds_get_bits_per_pixel(s->vga.ds);
s->bypp = (s->depth + 7) >> 3;
s->cursor.on = 0;
s->redraw_fifo_first = 0;
Expand Down Expand Up @@ -1126,8 +1126,6 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
s->scratch_size = SVGA_SCRATCH_SIZE;
s->scratch = (uint32_t *) qemu_malloc(s->scratch_size * 4);

vmsvga_reset(s);

#ifdef EMBED_STDVGA
vga_common_init((VGAState *) s, vga_ram_size);
vga_init((VGAState *) s);
Expand All @@ -1142,6 +1140,8 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size)
vmsvga_screen_dump,
vmsvga_text_update, &s->vga);

vmsvga_reset(s);

#ifdef CONFIG_BOCHS_VBE
/* XXX: use optimized standard vga accesses */
cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
Expand Down

0 comments on commit c00a9de

Please sign in to comment.