xf86-video-geode: Changes to 'master'

Martin-Éric Racine q-funk at kemper.freedesktop.org
Thu Aug 5 21:55:26 PDT 2010


 src/lx_exa.c |  351 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 315 insertions(+), 36 deletions(-)

New commits:
commit ecb741f27de4ca66555d312a4699efc22f873d0e
Author: Huang, FrankR <FrankR.Huang at amd.com>
Date:   Fri Aug 6 11:16:02 2010 +0800

    Fix the Nautilus file browser misrendering issue
    
    This is patch 4 final this week.
    This one has fixed several bugs below:
    1)google chrome hang
    2)Some website using repeat for source picture with PictOpSrc. To sum up, right now this patch has gracefully solved the Nautilus bug and some special rendering under PictOpSrc and PictOpOver I will describe all special conditions I met
    Websites for test before and after this patch:
    	1)http://daduke.org (greater srcX and srcY)
    	2)http://bjdns2.cncmax.cn (negative srcX and srcY)
    
    From: Frank Huang <frankr.huang at amd.com>
    
    *When the srcX or srcY is greater than source width or source height
    (or negative),the driver should do the correct region to render. Add a
    function lx_composite_onepass_special to handle this. The source start
    point should be calculated by a modulus operation.
    *If the opeartion is with a shifted position src, then adjust the
    operation region based on the operations src width and height
    parameters. The rotation condition should be excluded. This part still
    need investigation
    
    Signed-off-by: Frank Huang <frankr.huang at amd.com>

commit 5b93fdd42d7d8af4535fd62ce0749f2c4434f9fe
Author: Huang, FrankR <FrankR.Huang at amd.com>
Date:   Fri Jul 23 17:17:49 2010 +0800

    Fix the PictOpOver operation
    
    Fix the PictOpOver operation
    
    *Fix the PictOpOver blend_ops struct. The PictOpOver operation is
    Src + (1-a) * Dest. So change from CIMGP_ALPHA_A_PLUS_BETA_B to
    CIMGP_A_PLUS_BETA_B. And add one pass operation to do the
    Src * (alpha of Mask) if there is a mask
    *Convert the source format in lx_prepare_composite if it is not
    ARGB32 when doing the first pass
    *Add a function lx_do_composite_mask_opover to handle the PictOpOver
    operation, the first pass is to do the Src * (alpha of Mask), the
    second pass is to do the Src + (1-a) * Dest.
    *Due to our off-screen buffer is only 256KB, so split big Mask region
    into several small region(256KB) to do the rendering.
    *Progressbar, scrollbar and button display well with this patch
    *See Free Desktop Bugzilla #28352
    
    Signed-off-by: Frank Huang <frankr.huang at amd.com>

commit 969844d51967aa79ce2c151fc5f1bd296d74437a
Author: Huang, FrankR <FrankR.Huang at amd.com>
Date:   Fri Jul 23 17:17:34 2010 +0800

    Fix the PictOpSrc rendering
    
    Fix the PictOpSrc rendering
    
    *Add the maskrepeat variabel to record mask picture's repeat attribute
    *Add the maskflag to record the exaScratch.type when it is COMP_TYPE_MASK
    *Use the PictOpClear to make other non-blending region(out of src or mask)
    to be black if the op is PictOpSrc or PictOpClear
    
    Signed-off-by: Frank Huang <frankr.huang at amd.com>

commit 2771fb365107976e76e175e7f8953dd41ecb91c1
Author: Huang, FrankR <FrankR.Huang at amd.com>
Date:   Fri Jul 23 17:17:15 2010 +0800

    Put the one pixel rendering work back to the server to handle if the pMsk is not zero
    
    Put the one pixel rendering work back to the server to handle if the pMsk is not zero
    
    *exaScratch.srcWidth and exaScratch.srcHeight are used to reocrd
    mask's width and mask's height if mask is not zero. So the one pixel
    source's width and height are missing in lx_do_composite. So we must
    fallback. Otherwise, bigger region will be wrongly rendered.
    
    Signed-off-by: Frank Huang <frankr.huang at amd.com>



More information about the xorg-commit mailing list