glamor: Changes to 'master'

Zhigang Gong gongzg at kemper.freedesktop.org
Tue May 15 21:15:06 PDT 2012


 src/Makefile.am       |    1 
 src/glamor_copyarea.c |    4 
 src/glamor_fill.c     |    2 
 src/glamor_gradient.c | 1601 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/glamor_pixmap.c   |   19 
 src/glamor_priv.h     |   15 
 src/glamor_render.c   | 1589 -------------------------------------------------
 src/glamor_tile.c     |    2 
 src/glamor_utils.h    |  101 +--
 9 files changed, 1695 insertions(+), 1639 deletions(-)

New commits:
commit 6116de526bc174baa6292c216e44ad0109855d2d
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Tue May 15 10:08:03 2012 +0800

    Fix the problem of x_source and y_source causing radial error
    
     The x_source and y_source cause some problem in
     gradient. The old way to handle it by recaulate P1 P2
     to minus the x_source and y_source, but this causes
     problem in radial shader. Now we modify the manner to
     set the texture coordinates: (x_source, y_source) -->
     (x_source + width, y_source + height) to handle all the
     cases.
    
    Reviewed-by: Zhigang Gong <zhigang.gong at linux.intel.com>
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit ce9c97547cc5897e2435c20c11ce13ae45fffeff
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Tue May 15 10:07:55 2012 +0800

    Fix the problem of vertical and horizontal case error in linear gradient.
    
     1. The vertical and horizontal judgement in linear
     gradient have problem when p1 point and p2 point
     distance is very small but the gradient pict have a
     transform matrix which will convert the X Y coordinates
     to small values. So the judgement is not suitable.
     Because this judgement's purpose is to assure the
     divisor not to be zero, so we simply it to enter
     horizontal judgement when p1 and p2's Y is same.
     Vertical case is deleted. 2. Delete the unused p1 p2
     uniform variable.
    
    Reviewed-by: Zhigang Gong <zhigang.gong at linux.intel.com>
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit 98402a908f36aebc1537a22d86d77667c25a1136
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Tue May 15 10:07:46 2012 +0800

    Fix the problem of set the same stop several times.
    
     Some gradient set the stops at the same position, for
     example: firstly 0.5 to red color and then set 0.5 to
     blue. This kind of setting will cause the shader work
     not correctly because the percentage caculating need to
     use the stop[i] - stop[i-1] as dividend. The previous
     patch we just kill some stop if the distance between
     them is 0. But this cause the problem that the color
     for next stop is wrong. We now modify to handle it in
     the shader to avoid the 0 as dividend.
    
    Reviewed-by: Zhigang Gong <zhigang.gong at linux.intel.com>
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit c1ec3ef1f0a86c5977d9623d1cbbc2159885d0af
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Tue May 15 10:07:35 2012 +0800

    Fix a bugy macro definition.
    
     The macro like "#define LINEAR_SMALL_STOPS 6 + 2" causes
     the problem. When use it to define like "GLfloat
     stop_colors_st[LINEAR_SMALL_STOPS*4];" The array is
     small than what we supposed it to be. Cause memory
     corruption problem and cause the bug of render wrong
     result. Fix it.
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit a3bbd3bc6299680ac6f4dd382ee403f556e15a92
Author: Junyan He <junyan.he at linux.intel.com>
Date:   Tue May 15 10:07:24 2012 +0800

    Extract the gradient related code out.
    
     1. Extract the logic of gradient from the glamor_render.c
     to the file glamor_gradient.c.
     2. Modify the logic of gradient pixmap gl draw. Use the
     logic like composite before, but the gradient always just
     have one rect to render, so no need to set the VB and EB,
     replace it with just call glDrawArrays. 3.Kill all the
     warning in glamor_render.c
    
    Reviewed-by: Zhigang Gong<zhigang.gong at linux.intel.com>
    
    Signed-off-by: Junyan He <junyan.he at linux.intel.com>
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>

commit da9563fd123263c5124ae336369d2aa8a5bdb9e4
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date:   Tue May 15 15:25:41 2012 +0800

    glamor_set_destination_pixmap_priv_nc: set drawable's width x height.
    
    Previous implementation set the whole fbo's width and height as the
    viewpoint. This may increase the numerical error as we may only has
    a partial region as the valid pixmap. So add a new marco
    pixmap_priv_get_dest_scale to get proper scale factor for the
    destination pixmap. For the source/mask pixmap, we still need to
    consider the whole fbo's size.
    
    Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>



More information about the xorg-commit mailing list