Skip to content

Commits

Permalink
vga-work
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Jul 14, 2014

  1. ui/pixman: Fix qemu_pixelformat_from_pixman() for BGRA and RGBA with …

    …no alpha
    
    The conversion for these is incorrect when the alpha field is empty,
    as it doesn't properly account for the unused 8 bits.
    
    Instead, substract from bpp to calculate the shifts
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    6de7737 View commit details
    Browse the repository at this point in the history
  2. ui/sdl: Support shared surface for more pixman formats

    At least all the ones I've tested. We make the assumption that
    SDL is going to be better at conversion than we are.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    fd42559 View commit details
    Browse the repository at this point in the history
  3. ui/vnc: Support shared surface for most pixman formats

    At least all the ones I've tested. We make the assumption that
    pixman is going to be better at conversion than we are.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    ceda8ca View commit details
    Browse the repository at this point in the history
  4. ui/gtk: Support shared surface for most pixman formats

    At least all the ones I've tested. We make the assumption that
    pixman is going to be better at conversion than we are.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    7188f66 View commit details
    Browse the repository at this point in the history
  5. ui: Add dpy_gfx_check_format() to check backend shared surface support

    This allows VGA to decide whether to use a shared surface based on
    whether the UI backend supports the format or not. Backends that
    don't provide the new callback fallback to native 16 and 32bpp
    which is equivalent to what was supported before.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    7548b16 View commit details
    Browse the repository at this point in the history
  6. ui: Make qemu_default_pixman_format() return 0 on unsupported formats

    In order to remove the logic for detecting supported shared
    pixmap formats from device models, make qemu_default_pixman_format()
    capable for failing by returning 0 which is not a possible format
    value rather than asserting.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    5633ce6 View commit details
    Browse the repository at this point in the history
  7. ui/pixman: Don't use an alpha channel for byteswapped 32bpp

    Otherwise some backends like SDL are actually going to try to
    blend the pixels with a not very nice result
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    33e0747 View commit details
    Browse the repository at this point in the history
  8. sdl: Fix crash when calling sdl_switch() with NULL surface

    This happens for example when doing ctrl-alt-u and segfaults
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    4ea25a8 View commit details
    Browse the repository at this point in the history
  9. sdl: Refresh debug statements

    Put them under a #define similar to the VGA model and make them
    actually compile. Add a couple too.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    17af379 View commit details
    Browse the repository at this point in the history
  10. cirrus: Force use of shadow pixmap when HW cursor is enabled

    The HW cursor cannot be painted on a shared surface. This fixes HW
    cursor display in Windows NT 4.0 and Windows 98.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    c476006 View commit details
    Browse the repository at this point in the history
  11. vga: Add mechanism to force the use of a shadow surface

    This prevents surface sharing which will be necessary to
    fix cirrus HW cursor support.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    301f17b View commit details
    Browse the repository at this point in the history
  12. ppc/spapr/vga: Switch VGA endian on H_SET_MODE

    When the guest switches the interrupt endian mode, which essentially
    means a global machine endian switch, we want to change the VGA
    framebuffer endian mode as well in order to be backward compatible
    with existing guests who don't know about the new endian control
    register.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    11df1e1 View commit details
    Browse the repository at this point in the history
  13. vga: Add endian control register

    Include the endian state in the migration stream as an optional
    subsection which we only include when the endian isn't the default,
    thus enabling backward compatibility of the common case.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    4f4d269 View commit details
    Browse the repository at this point in the history
  14. vga: Rename vga_template.h to vga-helpers.h

    It's no longer a template, we only instanciate the file once.
    
    Keep it a #included file so the functions remain static.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    4e95a8a View commit details
    Browse the repository at this point in the history
  15. vga: Make fb endian a common state variable

    And initialize it based on target endian
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    0d91b4e View commit details
    Browse the repository at this point in the history
  16. vga: Remove some "should be done in BIOS" comments

    Not all platforms have a VGA BIOS, powerpc typically relies on
    using the DISPI interface to initialize the card.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    6f9a9db View commit details
    Browse the repository at this point in the history
  17. cirrus: Remove non-32bpp cursor drawing

    We only draw cursor on non-shared surfaces (so it seems...) and
    these are always 32bpp
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    25f4bce View commit details
    Browse the repository at this point in the history
  18. vga: Simplify vga_draw_blank() a bit

    The test for surface_bits_per_pixel() isn't necessary anymore,
    the 8bpp case never happens.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    c699e9a View commit details
    Browse the repository at this point in the history
  19. vga: Remove rgb_to_pixel indirection

    We always use rgb_to_pixel32 nowadays.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    eb797e6 View commit details
    Browse the repository at this point in the history
  20. vga: Separate LE and BE conversion functions

    Provide different functions for converting from an LE vs a BE
    framebuffer. We cannot rely on the simple cases always being
    shared surfaces since cirrus will need to always shadow for
    cursor emulation, so we need the full set of functions to
    be able to later handle runtime switching.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>\
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    0577af4 View commit details
    Browse the repository at this point in the history
  21. vga: Remove remainder of old conversion cruft

    All the macros used to generate different versions of vga_template.h
    are now unnecessary, take them all out and remove the _32 suffix from
    most functions.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    05620a2 View commit details
    Browse the repository at this point in the history
  22. vga: Start cutting out non-32bpp conversion support

    Nowadays, we either share a surface with the host, or we create
    a 32bpp ARGB console surface.
    
    So we only need to draw/convert to 32bpp, enabling us to remove
    all but one instance of vga_template.h inclusion (to be further
    cleaned up), rgb_to_pixel_* etc...
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    f9ca4d2 View commit details
    Browse the repository at this point in the history
  23. ui: Remove unused QEMU_BIG_ENDIAN_FLAG

    If we need to, we should use the pixman formats instead but for
    now this is unused except in commented out code so take it out
    to avoid further confusion about surface endianness.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    e266f88 View commit details
    Browse the repository at this point in the history
  24. console: Fix Gerd missing conversion

    [Should be folded into Gerd's patch]
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ozbenh committed Jul 14, 2014
    Copy the full SHA
    e08ba47 View commit details
    Browse the repository at this point in the history
  25. gtk: update mouse position in mouse_set()

    Without that the next mouse motion event uses the old position
    as base for relative move calculation, giving wrong results and
    making your mouse pointer jump around.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    cb4518d View commit details
    Browse the repository at this point in the history
  26. Copy the full SHA
    346aa78 View commit details
    Browse the repository at this point in the history
  27. [wip] pl110: start using pixman

    Turn pl110_draw_fn into a struct, carrying both conversion function
    and pixman format for a given guest framebuffer layout.  Create a
    DisplaySurface backed by guest memory in case pixman can handle the
    format, thereby collecting the low-hanging fruits.
    
    A common case (linux kernel running pl111 with 16bpp, little endian
    host) runs powered by pixman now.  Lot of work left to be able to kill
    the template stuff completely though.
    
    Debug printf left in for now to see what formts the guest is using.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    796470d View commit details
    Browse the repository at this point in the history
  28. add framebuffer_update_display_swap_pixman

    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    603ecd3 View commit details
    Browse the repository at this point in the history
  29. console: add qemu_pixman_linebuf_copy

    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    c3d8a16 View commit details
    Browse the repository at this point in the history
  30. console: add dpy_gfx_update_dirty

    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    9b959e5 View commit details
    Browse the repository at this point in the history
  31. console: add qemu_unmap_displaysurface_guestmem

    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    77af4b2 View commit details
    Browse the repository at this point in the history
  32. pl110: move resize

    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    c57781a View commit details
    Browse the repository at this point in the history
  33. pl100: Drop support for depths other than 32bpp.

    DisplaySurfaces created by qemu_create_displaysurface (called indirectly
    via by qemu_console_resize) are always 32bpp in host byte order.  So
    this is the only format we have to support when converting the guest
    framebuffer for the host user interface (i.e. gtk / vnc / ...).
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    37e969d View commit details
    Browse the repository at this point in the history
  34. console: stop using PixelFormat

    With this patch the qemu console core stops using PixelFormat and pixman
    format codes side-by-side, pixman format code is the primary way to
    specify the DisplaySurface format:
    
     * DisplaySurface stops carrying a PixelFormat field.
     * qemu_create_displaysurface_from() expects a pixman format now.
    
    Functions to convert PixelFormat to pixman_format_code_t (and back)
    exist for those who still use PixelFormat.   As PixelFormat allows
    easy access to masks and shifts it will probably continue to exist.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    b2fb119 View commit details
    Browse the repository at this point in the history
  35. console: reimplement qemu_default_pixelformat

    Use the new qemu_pixelformat_from_pixman and qemu_default_pixman_format
    functions to reimplement qemu_default_pixelformat
    (qemu_different_endianness_pixelformat too).
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    kraxel authored and ozbenh committed Jul 14, 2014
    Copy the full SHA
    fe118ac View commit details
    Browse the repository at this point in the history
Older