Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Commits on Mar 22, 2012
  1. xv: don't try to init textured video without 3d engine object

    Ben Skeggs authored
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  2. recognise kepler

    Ben Skeggs authored
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Mar 5, 2012
  1. remove use of xf86PciInfo.h, deprecated now apparently

    Ben Skeggs authored
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  2. @kleinerm

    dri2: Fix corner case crash for swaplimit > 1

    kleinerm authored Ben Skeggs committed
    If a swaplimit > 1 is set on a server which
    supports the swaplimit api (XOrg 1.12.0+),
    the following can happen:
    
    1. Client calls glXSwapBuffersMscOML() with a
       swap target > 1 vblank in the future, or a
       client calls glXSwapbuffers() while the swap
       interval is set to > 1 (unusual but possible).
    
    2. nouveau_dri2_finish_swap() is therefore called
       only at the target vblank, instead of immediately.
    
    3. Because of the deferred execution of
       nouveu_dri2_finish_swap(), the OpenGL client
       can call x-servers DRI2GetBuffersWithFormat()
       before nouveau_dri2_finish_swap() executes and
       it deletes pixmaps that would be needed by
       nouveau_dri2_finish_swap() --> Segfault --> Crash.
    
    Prevent this: When a swap is scheduled into the
    future, we temporarily reduce the swaplimit to 1
    until nouveau_dri2_finish_swap() is done, then
    restore it to its original value. This throttles
    the client inside the server in DRI2ThrottleClient()
    before it can call the evil DRI2GetbuffersWithFormat().
    
    The client will still be released one video refresh
    interval before swap completion, so there is still
    some potential win.
    
    This doesn't affect the common case of swapping at
    the next vblank, where this throttling is not needed
    or done.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  3. @kleinerm

    dri2: Reimplement hack for triple-buffering on old X-Servers.

    kleinerm authored Ben Skeggs committed
    X-Servers before 1.12.0 don't have the DRI2SwapLimit()
    API. On these, default to a swaplimit of 1 - double-buffering.
    
    This patch implements support for swap limit of 2,
    triple-buffering, on old x-servers via Francisco Jerez
    previous hack:
    
    Return DRI2SwapComplete() before the swap has completed,
    so clients don't get blocked on the pending swap. This
    allows for a "triple-buffering look-alike" behaviour, but
    breaks the swap scheduling and timestamping defined
    in the OML_sync_control spec, so applications which
    rely on conformant behaviour will break with a swap
    limit of 2 on pre 1.12.0 x-servers.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  4. @kleinerm

    dri2: Allow vblank controlled swaps for redirected windows. Part II

    kleinerm authored Ben Skeggs committed
    This part implements proper throttling for clients. For
    vblank synchronized blits, it defers DRI2SwapComplete()
    until 1 vblank after the framebuffer blit is submitted to
    the gpu.
    
    Rationale:
    
    For unredirected windows, this is the earliest time the
    "blit swap" can complete, as blits are submitted one vblank
    before the target vblank and synchronized with vblank in the
    gpu. This makes swap completion timestamps at least reasonable.
    
    For redirected windows, the compositor will probably pick
    up the "blit swapped" frontbuffer pixmap of the window quickly,
    but defer its own recomposition to the next vblank, at least
    if sync to vblank for the compositor is on.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  5. @kleinerm

    dri2: Allow vblank controlled swaps for redirected windows. Part I

    kleinerm authored Ben Skeggs committed
    Make sure that swaps for redirected windows under a
    compositor are still scheduled via vblank events, to
    avoid effects like 2900 fps swaps under a compositor.
    
    See discussion with Francisco Jerez at:
    
    http://lists.freedesktop.org/archives/nouveau/2011-September/009278.html
    http://lists.freedesktop.org/archives/nouveau/2011-September/009292.html
    
    This is part I of the agreed upon band-aid, in a separate patch.
    
    It allows to use vblank related functions on redirected
    windows and thereby fixes functions from sgi_sync_control
    and oml_sync_control extension, e.g., glXWaitForMscOML(),
    glXGetSyncValuesOML(), glXWaitVideoSyncSGI, ...
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  6. @kleinerm

    dri2: Fixes to swap scheduling.

    kleinerm authored Ben Skeggs committed
    Fix some small off-by-one errors and a mismatch
    between 32 bit kernel interfaces for vblank count
    and 64 bit dri2 interfaces for target_msc et al.
    
    Return corrected target_msc to swap scheduling in
    x-server.
    
    A revised version of the patch discussed here:
    http://lists.freedesktop.org/archives/nouveau/2011-September/009143.html
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  7. @kleinerm

    dri2: Update front buffer pixmap and name before exchanging buffers

    kleinerm authored Ben Skeggs committed
    Buffer exchange assumes that the front buffer pixmap and name
    information is accurate. That may not be the case eg. if the window
    has been (un)redirected since the buffer was created.
    
    This is a translation to nouveau of a fix that was originally developed
    by Ville Syrjala <syrjala@sci.fi> for the ati/radeon ddx to fix the
    same bug there.
    
    See thread at:
    
    http://lists.x.org/archives/xorg-devel/2011-May/021908.html
    
    Fixes FDO bug #35452.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  8. @kleinerm

    dri2: Add support for DRI2SwapLimit() API.

    kleinerm authored Ben Skeggs committed
    Uses the new DRI2SwapLimit() API of X-Server 1.12+
    to allow to change the maximum number of pending
    swaps on a drawable before the OpenGL client is
    throttled by the server.
    
    The new optional xorg.conf parameter "SwapLimit"
    allows to select a new swap limit >= 1. The default
    swap limit is 2 for triple-buffering on XOrg 1.12+,
    1 for double-buffering on older servers, as we can't
    change the swap limit there.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  9. @kleinerm

    dri2: Implement handling of pageflip completion events.

    kleinerm authored Ben Skeggs committed
    Requests pageflip completion events from the kernel.
    Implements pageflip completion handler to finalize
    and timestamp swaps.
    
    Completion handler includes a consistency check, and
    disambiguation if multiple crtc's are involved in a
    pageflip (e.g., clone mode, extendend desktop). Only
    the timestamp of the crtc whose vblank event initially
    triggered the swap is used, but handler waits for flip
    completion on all involved crtc's before completing the
    swap and releasing the old framebuffer.
    
    This code is almost identical to the code used in the
    ati/radeon ddx and intel ddx.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  10. @kleinerm

    dri2: Fix can_exchange() to allow page-flipping on more mesa versions.

    kleinerm authored Ben Skeggs committed
    can_exchange() returns false and thereby prevents page
    flipping on some drawables where page flipping would
    work fine. This due to non-matching drawable depths values
    between front buffer pixmap and back buffer pixmap, because
    front buffer pixmaps inherit the depth of the screen, typically
    24 bits, whereas the depth value of back buffer pixmaps for a
    given RGB8 or RGBA8 visual depends on the mesa version in use,
    either 24 bits or 32 bits.
    
    Use bitsPerPixel instead of depth to decide if drawable
    is flippable. This will still catch really incompatible
    formats like 32 bpp vs. 16 bpp buffers.
    
    Tested for screen DefaultDepth 24 and also 30 bits
    (for RGB10 framebuffers) on NV-50.
    
    The problem was fixed in the same way in the ati & intel ddx.
    
    Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Jan 9, 2012
  1. dri2: CreateBuffer format may be 0, use depth in that case

    Christoph Bumiller authored
Commits on Dec 22, 2011
  1. nv50/xv: bump max dims to 8k

    Ben Skeggs authored
    Untested, but I don't see why this wouldn't work...
  2. xv: stop using custom m2mf code

    Ben Skeggs authored
Commits on Dec 10, 2011
  1. dri2: fix allocation of Z16 depth attachments

    Christoph Bumiller authored
Commits on Dec 1, 2011
  1. move away from libdrm's BEGIN_RING (and variants) macros

    Ben Skeggs authored
    subchan auto-assignment is now gone.
  2. Append _CLASS to object class id definitions

    Ben Skeggs authored
    I want to be able to use ring macros of the same name
  3. exa: create general m2mf rect copy for each chipset, use for UTS/DFS

    Ben Skeggs authored
    No point having duplicated UTS/DFS logic in each implementation.  This also
    splits nv50 out into its own code, in preparation for it being made to not
    use relocs at all.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Nov 30, 2011
  1. @mslusarz

    fix typo in conversion to rnn headers

    mslusarz authored Ben Skeggs committed
  2. convert entire ddx to rnn headers

    Ben Skeggs authored
Commits on Nov 9, 2011
  1. @mslusarz

    Default to 16bpp for low memory cards.

    mslusarz authored Ben Skeggs committed
  2. @mslusarz

    nv50/exa: wait for enough space for at least one composite operation

    mslusarz authored Ben Skeggs committed
  3. @mslusarz

    add missing return in nv50_accel_init failure path

    mslusarz authored Ben Skeggs committed
Commits on Oct 10, 2011
  1. @mlankhorst

    dri2: Add vdpau driver name entry

    mlankhorst authored Ben Skeggs committed
    libvdpau has a driver loading mechanism that looks for a dri2 driver
    first before falling back to nvidia, so lets use that.
  2. @mslusarz

    xv: support AI44/IA44

    mslusarz authored Ben Skeggs committed
    It's needed for osd in mplayer's xvmc output.
Commits on Aug 23, 2011
  1. @maximlevitsky @curro

    dri2: Disable the "exchange" swapbuffers path for the moment (bug 359…

    maximlevitsky authored curro committed
    …30).
    
    Allow page flipping only for scanout buffer for now as simple swapping
    between off-screen pixmaps confuses compiz because there is no
    syncronization method to tell it about that swap
    
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Commits on Aug 1, 2011
  1. @Plombo

    g3dvl: update for compatibility with latest pipe-video branch in Mesa

    Plombo authored Ben Skeggs committed
    Signed-off-by: Bryan Cain <bryancain3@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Jul 19, 2011
  1. @evelikov

    drmmode_display: Resolve missing brackets

    evelikov authored Ben Skeggs committed
    Correct some missing/misplaced brackets in drmmode_pre_init()
    The issue was exposed when trying a 4 monitor desktop using two
    cards/gpus
    
    Resolves https://bugs.freedesktop.org/show_bug.cgi?id=39099
    
    Reported-By: Damian Nowak <nowaker@geozone.pl>
    Tested-By: Damian Nowak <nowaker@geozone.pl>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Jul 11, 2011
  1. kms: fix multiple rotations in noaccel mode

    Ben Skeggs authored
Commits on Jun 17, 2011
  1. nvc0: accept 0xdx chipsets

    Ben Skeggs authored
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  2. nvc0: assume 0x9097's presence on all chipsets

    Ben Skeggs authored
    This appears to be the case thus far, and is what the 3D driver does.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on May 30, 2011
  1. kms: clear new fb to black on fb resize

    Ben Skeggs authored
Commits on Mar 23, 2011
  1. nv50-nvc0/exa: fix bug causing surface state to not be reemitted afte…

    Ben Skeggs authored
    …r flush
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Commits on Mar 3, 2011
  1. nvc0/accel: allow nvc1,nvc3,nvc4 in 3D engine init and use 9097

    Christoph Bumiller authored
Something went wrong with that request. Please try again.