glamor: Changes to 'master'

Zhigang Gong gongzg at kemper.freedesktop.org
Sat Apr 28 02:49:29 PDT 2012


 Makefile.am               |    4 
 README                    |   24 -
 ReleaseNote               |   76 ++++++
 conf/Makefile.am          |   24 +
 conf/glamor.conf          |    4 
 configure.ac              |   23 +
 src/glamor.c              |   11 
 src/glamor.h              |    2 
 src/glamor_copyarea.c     |  129 ++++------
 src/glamor_core.c         |    3 
 src/glamor_debug.h        |   28 ++
 src/glamor_egl.c          |    6 
 src/glamor_eglmodule.c    |    3 
 src/glamor_fbo.c          |   65 ++++-
 src/glamor_fill.c         |   22 -
 src/glamor_getimage.c     |   33 +-
 src/glamor_getspans.c     |   67 -----
 src/glamor_gl_dispatch.c  |   29 ++
 src/glamor_gl_dispatch.h  |    1 
 src/glamor_glext.h        |   29 ++
 src/glamor_glyphblt.c     |    4 
 src/glamor_picture.c      |   28 ++
 src/glamor_pixmap.c       |  213 ++++++++---------
 src/glamor_polyfillrect.c |    1 
 src/glamor_priv.h         |   77 +++---
 src/glamor_putimage.c     |  156 ++++--------
 src/glamor_render.c       |  560 +++++++++++++++++++++++++++++++++-------------
 src/glamor_setspans.c     |   61 +----
 src/glamor_tile.c         |   80 ++----
 src/glamor_utils.h        |   93 +++++--
 30 files changed, 1114 insertions(+), 742 deletions(-)

New commits:
commit d5cdad0497ae5f6cd936a74f68169c0910ea1e68
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 17:02:35 2012 +0800

    Release 0.4.
    
    Update Readme, and write a new ReleaseNote and bump the version
    to 0.4.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 8b009ce320f67b63c6bcc499acc73280acac07a6
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 14:55:34 2012 +0800

    Fixed all unused variables warnings.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 964b23a83f9367584b688b4138bd9285dd3d5573
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 14:54:38 2012 +0800

    Fixed an uninitialized problem at gradient shader functions.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 925c2436f57c22a3752fb5a10da8b21c61343808
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 14:51:27 2012 +0800

    Fixed one typo bug when fixup a mask picture.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit a4e1eec9f1d7906124065c2520bb7ee78c5d97c3
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 14:13:47 2012 +0800

    Added some copyright and author information.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 61f441223575f46f6d9c1240e41ce292b2b9d83d
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 13:43:39 2012 +0800

    Added --enable-debug configuration option.
    
    For release version, we disable asserts.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 9ed6ac6cd216bbfd53adba6bae754cf8623499eb
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sat Apr 28 13:42:48 2012 +0800

    Remove unecessary header file.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 4c882abc45111d6c5dae5bfbadc13631c3802dde
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Tue Mar 27 18:17:00 2012 +0800

    configure: Install glamor.conf to xorg.conf.d.
    
    As we need to make sure load DRI2 first and then load
    glamoregl and then load GLX module, we create a new
    xorg configuration file here and install it to system
    configuration directory.
    
    Note: If you are building xserver at your local directory
    and set the prefix to your local directory rather than
    the system directory, then the glamor.conf may
    not be loaded when you run the X server you built locally.
    
    The reason is that currently xorg will search the following dir
    /usr/share/X11/xorg.conf.d
    if it exist , then will ignore your local configuration
    directory where the glamor.conf is at. Then you may fail
    to start Xserver.
    
    If this is the case, you may need to copy the glamor.conf
    to /usr/share/X11/xorg.conf.d manually.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit d8cd4dfd24a92315636ff29d0a1c985e1e05441c
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Fri Apr 27 15:34:15 2012 +0800

    glamor_render: Fix the repeat none for GLES2.
    
    As GLES2 doesn't support clamp to the border, we have to
    handle it seprately from the normal case.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit b2d64e6065859326a89150d82d964b36a01c4818
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Thu Apr 26 20:35:09 2012 +0800

    glamor_blockhandler: Don't do glFinish every time.
    
    To do glfinish every time bring some performance overhead.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit e25304d71c3892509babcf0906e6fdcd785d90bd
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Thu Apr 26 19:59:58 2012 +0800

    glamor_copyarea: Return earlier if have zero nbox.
    
    Almost all callers will check whether the regions is empty
    before call to this internal API, but it seems the
    glamor_composite_with_copy may call into here with a zero
    nbox. A little weird, as the miComputeCompositeRegion return
    a Non-NULL, but the region is empty.
    
    Also remove a unecessary glflush.
    
    So let's check it here.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit cd0033b465f97b9af27b1a7e10953cc75ac9cb56
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Thu Apr 26 19:57:21 2012 +0800

    glamor_render: Have to use eaxct size pixmap for transformation.
    
    Use partial texture as the pixmap for the transformation
    source/mask may introduce extra errors. have to use
    eaxct size.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 623e5750c936e43b28e7ed28e22d69300185a6dd
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Thu Apr 26 18:31:07 2012 +0800

    glamor_fbo: Added a threshold value for the fbo cache pool.
    
    Currently set it to 256MB. If cache pool watermark increases
    to this value, then don't push any fbo to this pool, will purge
    the fbo directly.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 865516949d182d8fe5c99bd38e1850e342615592
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Thu Apr 26 18:28:17 2012 +0800

    Fixed a1 bug.
    
    It seems that mesa has bugs when uploading bitmap to texture.
    We switch to convert bitmap to a8 format and then upload the
    a8 texture.
    
    Also added a helper routine to dump 1bpp pixmap.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 26d5802ec12619ba05b150fc959f46bbc32f0534
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 22:35:12 2012 +0800

    glamor_render.c: Fixed repeatPad and repeatRelect.
    
    We should use difference calculation for these two repeat mode
    when we are a sub region within one texture.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 6c1c378448c725ce00895aff5c9a93bf58d6f4d5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 19:50:57 2012 +0800

    gradient: Don't need fixup flag when creating pixmap.
    
    Gradient can use a larger texture/fbo directly, don't need
    an eaxct size texture.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 6969cbf87f57698e87810037bb2831d7741c006f
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 18:58:16 2012 +0800

    glamor_copyarea: Don't access a DRM only pixmap.
    
    As EGL image/gbm only support ARGB8888 image, we don't support
    other format. We may change the way to use gbm directly latter.
    But now, we have to face this limitation, and thus if a client
    create a 16bpp drawable, and call get texture from pixmap then
    a copy to here may occur and thus we have to force retur a TRUE
    without do nothing.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 519388d6e80dac48b11ad3b8f92131e8b607c73d
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 13:54:40 2012 +0800

    Disable A8 texture format for GLES2.
    
    As PVR's GLES2 implementation doesn't support A8 texture as
    rendering target, we disable it for now.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit b48fb31d70a16976b1cff60604e39ac042d1efac
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 13:51:58 2012 +0800

    gradient: Disable gradient for gles2.
    
    As PVR glsl compiler seems doesn't support external fragment
    function, and fails at compile gradient shader. Disable it
    for now. We may need to modify gradient shader to don't use
    external function.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 4136ba52aa5437f3f40653ff8ec127a37705024f
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Wed Apr 18 08:04:26 2012 +0800

    Fix the bug caused by gradient picture set the stops at the same percentage.
    
     Fix the bug caused by gradient picture set the stops at
     the same percentage. The (stops[i] - stops[i-1]) will
     be used as divisor in the shader, which will cause
     problem. We just keep the later one if stops[i] ==
     stops[i-1].
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit a6d2e02afa15b014622fb169d66b66d66daf3d4a
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Wed Apr 25 14:25:39 2012 +0800

    Fix the problem of memory leak in gradient pixmap generating.
    
     Fix the problem of memory leak in gradient pixmap
     generating. The problem caused by we do not call
     glDeleteShader when destroy a shader program. This patch
     will split the gradient pixmap generating to three
     category. If nstops < 6, we will use the no array version
     of the shader, which has the best performance. Else if
     nstops < 16, we use array version of the shader, which is
     compiled and linked at screen init stage. Else if nstops >
     16, we dynamically create a new shader program, and this
     program will be cached until bigger nstops.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 8e9595f99075bf476390ba726da23c63c91ac4f5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 11:59:47 2012 +0800

    glamor_putimage: Optimize for direct uploading and fallback path.
    
    This commit optimize two cases:
    1. When the clip contains the whole area, we can directly upload
    the texel data to the pixmap, and don't need to do one extra
    clipped copy.
    
    2. At fallback path, we don't read back the whole pixmap, just
    need a sub region.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit bc7bfc7d94a51b6fe2953c42c117d1c5258423ca
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 11:56:43 2012 +0800

    Fixed one potential texture size mismatch problem.
    
    There are two cases which we may use a wrong texture size.
    1. A pixmap is modified by the client side after it created
    it. Then the pixmap's width may mismatch the original fbo/tex's
    size. Thus we need to check this condition when preparing
    upload the pixmap.
    
    2. We provide two API to download/upload sub region of a
    textured pixmap. The caller may pass in a larger width then
    the original pixmap's size, this may happen at putimage
    and setspans. We need to validate the width and height
    when do the downloading/uploading.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit aa64c82102ed094ca1b1662d4a93b2359584b9ec
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Wed Apr 25 09:27:06 2012 +0800

    glamor_getimage: Don't fallback to miGetImage.
    
    As miGetImage is very inefficient, we don't fallback to it.
    If the format is not ZPixmap, we download the required sub-
    region, and then call fbGetImage to do the conversion.
    This way is much faster than previous.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 24856d2f21b19b31db847719748bde1f17eb40c5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Fri Apr 13 18:15:49 2012 +0800

    pending_op: Remove the pending operations handling.
    
    We have disabled this feature for a long time, and previous
    testing shows that this(pending fill) will not bring observed
    performance gain. Now remove it.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 0077d019a2be62be19acd5fb075d664ffa5a819f
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 23:50:09 2012 +0800

    glamor_upload_pixmap: Use glTexImage2D for a fully update.
    
    Currently, intel's mesa dri driver will not check pbo for
    a TexSubImage2D. So we use glTexImage2D if we are a fully
    updating.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit e54978e41aa2710b9960f01e0f82d04b99fd5f5e
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 23:49:38 2012 +0800

    glamor_setspans: Reuse glamor_upload_sub_pixmap.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit eab6b8f93759293b57a57b14eab826bc31c3861a
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 23:18:47 2012 +0800

    code clean up.
    
    Remove unused variables.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit f2fa4f33148d198d3bec1f4c5391bf35c931ea53
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 23:16:51 2012 +0800

    glamor_getspans: Reuse glamor_download_sub_pixmap.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 25a862727c7db2ee0729cc609b8e933d166de7be
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 19:46:09 2012 +0800

    glamor_render: Don't download whole picture when fallback.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 6d25a3b8233867df22b01c4dbc9a6d97a477e4a2
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 19:43:44 2012 +0800

    glamor_put_sub_pixmap: Change to use glamor_upload_sub_pixmap.
    
    As the pixmap may be attached to a picture, we need to use
    glamor_upload_sub_pixmap to process it. glamor_copy_n_to_n
    will not consider the picture case.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit e51a23d3d21b524979e4de5690042e36560e72ca
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 17:09:06 2012 +0800

    Fixed a stride problem for textured_drm pixmap.
    
    As a textured_drm pixmap has a drm bo attached to it, and
    it's the DDX layer to set it stride value. In some case,
    the stride value is not equal to PixmapBytePad(w, depth)
    which is used within glamor.
    
    Then if it is the case, we have two choice, one is to set
    the GL_PACK_ROW_LENGTH/GL_UNPACK_ROW_LENGTH when we need
    to download or upload the pixmap. The other option is to
    change the pixmap's devKind to match the one glamor is using
    when downloading the pixmap, and restore it to the drm stride
    after uploading the pixmap.
    
    We choose the 2nd option, as GLES doesn't support the first
    method.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit a1947497a1bd430c60d11a30241fa27aee355c22
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 14:36:09 2012 +0800

    glamor_putimage: Reuse copy area to do the clipped copy.
    
    If no clip set, we load the bits to the pixmap directly.
    Otherwise, load the bits to a temporary pixmap and call
    glamor_copy_area to do the clipped copy.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit b3d1385e22391e49c798613290aca9dc81492139
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 10:30:02 2012 +0800

    Fixed a unbalanced glamor_put_dispatch.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit c4677d1c5d8f0bc3bb27aa499ecbeb0fc59c87d0
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Sun Apr 15 22:47:48 2012 +0800

    glamor_pixmap_priv: Always return a valid private pixmap.
    
    If a pixmap doesn't have a private, then set its type to
    GLAMOR_MEMORY, and thus it will get a valid private.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>



More information about the xorg-commit mailing list