Bug #90

Framebuffer seems to have an incorrect pixel format on qemu 0.11.0 on OS X

Added by Rich Edelman over 2 years ago. Updated about 1 year ago.

Status:Assigned Start:11/12/2009
Priority:Normal Due date:
Assigned to:Matthew Iselin % Done:

90%

Category:TUI Spent time: 0.20 hour
Target version:Foster Post-Release Milestone #1

Description

The framebuffer seems like it is using an incorrect pixel format when I boot pedigree using qemu 0.11.0 on my macbook pro. It works fine in vmware, however. Oddly, if I try qemu first, it looks bad. If I then boot vmware where it works fine, and then boot qemu again, it looks fine in qemu. Rebooting qemu though, it will look bad again. Really not sure what's going on here.

Pedigree's boot log and a screenshot attached.

Pedigree_Bad_Framebuffer.tiff - Screenshot of the splash screen that really describes the problem (95.4 KB) Rich Edelman, 11/12/2009 12:39 pm

pedigree.log - Pedigree's boot log at the time the screenshot was taken. (11.3 KB) Rich Edelman, 11/12/2009 12:39 pm

History

Updated by Rich Edelman over 2 years ago

  • Assigned to deleted (James Molloy)

Updated by Rich Edelman over 2 years ago

TkTech said he had some similar issues when running qemu with kvm, and to try with -no-kvm. However I don't have kvm support compiled in.

This happens when passing both -std vga and -std cirrus, by the way.

Updated by Matthew Iselin over 2 years ago

  • Status changed from New to Assigned
  • Assigned to set to Matthew Iselin

Rich and I are working towards a solution here. It turns out changing the VBE module to switch to 24-bit mode rather than 16-bit mode removes the corruption, but also creates a hang (due to incorrect pixel format interpretation).

Updated by Matthew Iselin about 1 year ago

  • % Done changed from 0 to 30

Seems to be an incorrect pixel format issue. We really need a generic "framebuffer" class that does pixel format conversions of incoming data to avoid this problem (eg, swapping R and B components).

Updated by Matthew Iselin about 1 year ago

  • % Done changed from 30 to 40

New graphics framework has been designed, and is currently being (slowly) implemented. This shouldn't be a problem anymore once it's done as it'll do the conversion for buffers in the wrong pixel format automatically, as long as 8-bit isn't involved.

Updated by Matthew Iselin about 1 year ago

  • % Done changed from 40 to 90

New graphics framework in place, TUI and splash screen now use it. Does the problem remain with this new code?

Updated by Matthew Iselin about 1 year ago

  • Target version set to Foster Post-Release Milestone #1

I've updated the splash screen module to use 24-bit modes by default and fall back to 16-bit modes if the 24-bit modes don't work. I believe the issue here is actually a problem with QEMU and SDL on non-Macs, and QEMU and whatever UI library the Mac uses.

Just waiting now for a response before I keep working on it, or declare the bug closed.

Also available in: Atom PDF