Permalink
Switch branches/tags
Nothing to show
Commits on Mar 22, 2012
  1. xv: don't try to init textured video without 3d engine object

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    committed Mar 21, 2012
  2. recognise kepler

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

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    committed Mar 5, 2012
  2. dri2: Fix corner case crash for swaplimit > 1

    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>
    kleinerm committed with Feb 15, 2012
  3. dri2: Reimplement hack for triple-buffering on old X-Servers.

    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>
    kleinerm committed with Feb 15, 2012
  4. dri2: Allow vblank controlled swaps for redirected windows. Part II

    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>
    kleinerm committed with Feb 15, 2012
  5. dri2: Allow vblank controlled swaps for redirected windows. Part I

    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>
    kleinerm committed with Feb 15, 2012
  6. dri2: Fixes to swap scheduling.

    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>
    kleinerm committed with Feb 15, 2012
  7. dri2: Update front buffer pixmap and name before exchanging buffers

    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>
    kleinerm committed with Feb 15, 2012
  8. dri2: Add support for DRI2SwapLimit() API.

    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>
    kleinerm committed with Feb 15, 2012
  9. dri2: Implement handling of pageflip completion events.

    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>
    kleinerm committed with Feb 15, 2012
  10. dri2: Fix can_exchange() to allow page-flipping on more mesa versions.

    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>
    kleinerm committed with Mar 1, 2012
Commits on Jan 9, 2012
  1. dri2: CreateBuffer format may be 0, use depth in that case

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

    Untested, but I don't see why this wouldn't work...
    committed Dec 9, 2011
Commits on Dec 10, 2011
  1. dri2: fix allocation of Z16 depth attachments

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

    subchan auto-assignment is now gone.
    committed Dec 1, 2011
  2. Append _CLASS to object class id definitions

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

    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>
    committed Nov 30, 2011
Commits on Nov 30, 2011
Commits on Nov 9, 2011
Commits on Oct 10, 2011
  1. dri2: Add vdpau driver name entry

    libvdpau has a driver loading mechanism that looks for a dri2 driver
    first before falling back to nvidia, so lets use that.
    mlankhorst committed with Oct 8, 2011
  2. xv: support AI44/IA44

    It's needed for osd in mplayer's xvmc output.
    mslusarz committed with Sep 10, 2011
Commits on Aug 23, 2011
  1. dri2: Disable the "exchange" swapbuffers path for the moment (bug 359…

    …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>
    maximlevitsky committed with curro Aug 23, 2011
Commits on Aug 1, 2011
  1. g3dvl: update for compatibility with latest pipe-video branch in Mesa

    Signed-off-by: Bryan Cain <bryancain3@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Plombo committed with Jul 20, 2011
Commits on Jul 19, 2011
  1. drmmode_display: Resolve missing brackets

    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>
    evelikov committed with Jul 18, 2011
Commits on Jul 11, 2011
Commits on Jun 17, 2011
  1. nvc0: accept 0xdx chipsets

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

    This appears to be the case thus far, and is what the 3D driver does.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    committed Jun 17, 2011
Commits on May 30, 2011
Commits on Mar 23, 2011
  1. nv50-nvc0/exa: fix bug causing surface state to not be reemitted afte…

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

    Christoph Bumiller committed Mar 3, 2011