New branch 'upstream-unstable' available with the following commits: commit 81aadb8ae204f58d77a948c8624f1e72659dcdf0 Author: Armin K <kre...@email.com> Date: Wed Mar 13 18:49:33 2013 +0100
Don't use AC_PROG_LIBTOOL Autoconf only needs libtool macros which are copied when autoreconf is run. There is no need for looking for "libtool" program in PATH. This properly disables static libraries from being built and installed. Reviewed-by: Michel Dänzer <michel.daen...@amd.com> commit f2d7f1cf351bdc3a8a00fe564cd6a937db3b4e19 Author: Armin K <kre...@email.com> Date: Wed Mar 13 18:49:32 2013 +0100 First attempt to make libglamor.so shared versioned library As recommended by Michel in this thread reply: http://lists.freedesktop.org/archives/glamor/2013-March/000305.html v2: Correct shared library location in glamor.pc.in Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62259 Reviewed-by: Michel Dänzer <michel.daen...@amd.com> commit c7241f097ddb4d3bfb832f6b4ee6fafe8b4d2cfe Author: Armin K <kre...@email.com> Date: Wed Mar 13 18:28:58 2013 +0100 Properly dist necesary headers Reviewed-by: Michel Dänzer <michel.daen...@amd.com> commit 3cd34ba9f0708ab7d816eeee80139257fafcb4ad Author: Armin K <kre...@email.com> Date: Wed Mar 13 18:28:57 2013 +0100 Silence Automake 1.13 warnings warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS') Reviewed-by: Michel Dänzer <michel.daen...@amd.com> commit 61879504f86c5cb326cc06a5873283234cfbbcd2 Author: Michel Dänzer <michel.daen...@amd.com> Date: Wed Mar 13 17:15:33 2013 +0100 glamoregl: Use xf86ScreenToScrn() Fixes crashes when glamor is used for a GPU screen with xserver 1.13 or newer. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57200#c17 Signed-off-by: Michel Dänzer <michel.daen...@amd.com> Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk> commit c0729336ae35dcc7e46bcf840d6e9a056d5cdd26 Author: Dave Airlie <airl...@redhat.com> Date: Sat Dec 29 06:42:30 2012 +0000 glamor_utils: fix unlikely define use using a define across a split line expression is failure, compiling with warnings shows this up. Signed-off-by: Dave Airlie <airl...@redhat.com> commit c6d9cb1eb4962a15f8bbc869e9fef6d1464165af Author: Dave Airlie <airl...@redhat.com> Date: Sat Dec 29 06:42:10 2012 +0000 glamor: add compiler.h This is also required for distchecking. Signed-off-by: Dave Airlie <airl...@redhat.com> commit 4a0ac3ff00d70b13e8483d50657187c7abdfc110 Author: Dave Airlie <airl...@redhat.com> Date: Sat Dec 29 06:28:17 2012 +0000 glamor: fix make distcheck part 1 This just adds the headers, then it falls over on the sdk_HEADERS as it overrides proper install paths by the looks of it. Signed-off-by: Dave Airlie <airl...@redhat.com> commit f1457c1c59efdadbad25f01dce9433643d688844 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Nov 13 10:08:02 2012 +0800 glamor_compositerects: Need to initialize region before fallback. As we need to call DamageRegionAppend even for fallback path, we must initialize the region before do that. Pointed by Igor Vagulin. https://bugs.freedesktop.org/show_bug.cgi?id=56940 Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit beeddaae1da253d1a442228a75f80ef40a0204ac Author: Michel Dänzer <michel.daen...@amd.com> Date: Wed Oct 31 16:56:00 2012 +0100 Don't use glBlitFramebufferEXT for overlapping copies. According to the GL_EXT_framebuffer_blit spec, the result of doing so is undefined. But we need well-defined results. :) Signed-off-by: Michel Dänzer <michel.daen...@amd.com> commit 9b8a791290af0add84269efdb315f9f58798f6d2 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Aug 10 13:46:42 2012 +0800 Bump to version 0.5. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 047c1375d6d08ac53839d0149dbbc03258f28d6a Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Aug 8 20:43:38 2012 +0800 Increase vbo size to 64K verts. This commit will benefit vertex stressing cases such as aa10text/rgb10text, and can get about 15% performance gain. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> Acked-by: Junyan <junyan...@linux.intel.com> commit 43cabf3f7c84e00d8480136d2ed5108d84ca392b Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Aug 8 20:11:43 2012 +0800 Silence compilation warnings. After increase to gcc4.7, it reports more warnings, now fix them. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> Tested-by: Junyan He<junyan...@linux.intel.com> commit a991ea45a60b0566adf9e6c15809fd4f49af7129 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Aug 8 20:08:12 2012 +0800 glamor_largepixmap: Fixed a bug in repeat clipping. If the repeat direction only has one block, then we need to set the dx/dy to cover all the extent. This commit also silence some compilation warnings. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit aa2b71332143fe7d62b3c3f16462f8335e3a7844 Author: Michel Dänzer <michel.daen...@amd.com> Date: Tue Aug 7 18:16:58 2012 +0200 Prefer KHR_surfaceless_context EGL extension over KHR_surfaceless_opengl/gles2. Current Mesa Git only advertises the former instead of the latter. Signed-off-by: Michel Dänzer <michel.daen...@amd.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 67fb454c47903d4dc9b439f2c5af73a331cbc3cb Author: Michel Dänzer <michel.daen...@amd.com> Date: Tue Aug 7 18:13:32 2012 +0200 Print space between name of missing EGL extension and 'required'. Signed-off-by: Michel Dänzer <michel.daen...@amd.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 801192caf1444d50d905de9c6133abe7de869894 Author: Junyan He <junyan...@linux.intel.com> Date: Tue Aug 7 05:01:59 2012 +0800 Fallback to pixman when trapezoid mask is big. The trapezoid generating speed of the shader is relatively slower when the trapezoid area is big. We fallback when the trapezoid's width and height is bigger enough. The big traps number will also slow down the render because of the VBO size. We fallback if ntrap > 256 Signed-off-by: Junyan He <junyan...@linux.intel.com> Reviewed-By: Zhigang Gong <zhigang.g...@linux.intel.com> commit ded419455c67846d75944c75d623d6e1c510db9f Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Thu Aug 2 18:07:07 2012 +0800 glamor_glyphs: When dst arg point to a NULL buffer, dont't flush. This is a corner case, when we render glyphs via mask cache, and when we need to upload new glyphs cache, we need to flush both the mask and dest buffer. But we the dest arg may point to a NULL buffer at that time, we need to check it firstly. If the dest buffer is NULL. Then we don't need to flush both the dest and mask buffer. This commit fix a potential crash. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit f233aeef15ca357c9a0a770687d13b6560871420 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Aug 1 18:27:29 2012 +0800 glamor_trapezoid: workaround a glsl like problem. It seems that the following statement cann't run as expected on SNB. bool trap_left_vertical = (abs(trap_left_vertical_f - 1.0) <= 0.0001); Have to rewrite it to another style to let the vertical edge trapezoid to be rendered correctly. Reviewed-by: Junyan He <junyan...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 79d369f161c78185483bf8fdeed77f79430d4a1e Author: Junyan He <junyan...@linux.intel.com> Date: Fri Jul 20 05:52:57 2012 +0800 Fix the problem of VBO leak. In some cases we allocate the VBO but have no vertex to emit, which cause the VBO fail to be released. Fix it. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 1f50d3f368c9e7135576ecb376fbaef34fd22132 Author: Junyan He <junyan...@linux.intel.com> Date: Fri Jul 20 05:52:50 2012 +0800 Just use the shader to generate trapezoid if PolyMode == Imprecise The precise mode of trapezoid rendering need to sample the trapezoid on the centre points of an (2*n+1)x(2*n-1) subpixel grid. It is computationally expensive in shader, and we use inside area ratio to replace it. The result has some difference, and we just use it if the polymode == Imprecise. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 1315ff92e2e19811cfb9a8bddab8e40bca5cd4e5 Author: Junyan He <junyan...@linux.intel.com> Date: Fri Jul 20 05:52:43 2012 +0800 Change the trapezoid render to use VBO. Because some uniform variables need to be set for every trapezoid rendering, we can not use vbo to render multi trapezoids one time, which have performance big loss. We now add attributes which contain the same value to bypass the uniform variable problem. The uniform value for one trapezoid will be set to the same value to all the vertex of that trapezoid as an attribute, then in FS, it is still a constant. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit ab212d3b90cd288da46af43390feacb489db77b1 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jul 16 17:27:22 2012 +0800 Added the missed header file for xorg 1.13 compat. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 726ad264f485ce1d39aa387e93ac224fb46ed059 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jul 16 11:25:09 2012 +0800 Synch with xorg 1.13 change. As xorg 1.13 change the scrn interaces and remove those global arrays. Some API change cause we can't build. Now fix it. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit e51e16e64b1b87a6eb96c5993183475ad8a88cfd Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Jul 13 09:20:02 2012 +0800 gles2: Fixed the compilation problem and some bugs. Previous patch doesn't set the offset to zero for GLESv2 path. Now fix it. This patch also fix a minor problem in pixmap uploading preparation. If the revert is not REVERT_NORMAL, then we don't need to prepare a fbo for it. As current mesa i965 gles2 driver doesn't support to set a A8 texture as a fbo target, we must fix this problem. As some A1/A8 picture need to be uploaded, this is the only place a A8 texture may be attached to a fbo. This patch also enable the shader gradient for GLESv2. The reason we disable it before is that some glsl linker doesn't support link different objects which have cross reference. Now we don't have that problem. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 5247854b57c3d931b5ad593a8c12b6978e6865d0 Author: Michel Dänzer <michel.daen...@amd.com> Date: Thu Jul 12 18:57:06 2012 +0800 Stream vertex data to VBOs. Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 12c5d248a3efe5afb06f0dc246b207cc497e9420 Author: Michel D=C3=A4nzer <michel.daen...@amd.com> Date: Wed Jul 11 15:01:15 2012 +0800 Fix translation of clip region for composite fallback. Fixes incorrectly clipped rendering. E.g. the cursor in Evolution composer windows became invisible. Signed-off-by: Michel Daenzer <michel.daen...@amd.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 1aeca388c9ff9d8cbdfbdd552abe764d36c73f40 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Jul 4 17:59:25 2012 +0800 glamor_glyphs: Don't merge extents for different lists. If we merge all lists's extent together, than we may have some fail overlap checking. Here is a simple: A E B F C D The first list has vertical "ABCD". And the second list has two char "EF". When detecting E, it can successfully find it doesn't overlap with previous glyphs. But after that, the original code will merge the previous extent with E's extent, then the extent will cover "F", so when detecting F, it will be treated as overlapped. We can simply solve this issue by not merge extent from different list. We can union different list's extent to a global region. And then do the intersect checkint between that region and current glyph extent, then we can avoid that fail checking. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 73d33dd2400772ad47a57dad2c2fa93caebccc80 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jul 3 18:24:07 2012 +0800 glamor_copyarea: Use blitcopy if current state is not render. Practically, for pure 2D blit, the blit copy is much faster than textured copy. For the x11perf copywinwin100, it's about 3x faster. But if we have heavy rendering/compositing, then use textured copy will get much better (>30%)performance for most of the cases. So we simply add a data element to track current state. For rendering state we use textured copy, otherwise, we use blit copy. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 1ec81c73bf4660d87b9cfa281647ca6cbda68f2e Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jul 3 18:11:12 2012 +0800 glamor_glyphs: Use cache picture to store mask picture if possible. By default, mask picture is newly created, and each time we need to clear the whole mask picture, and then composite glyphs to the mask picture and then composite the mask picture to destination. Testing results shows that the filling of the mask picture takes a big portion of the rendering time. As we don't really need to clear the whole region, we just need to clear the real overlapped region. This commit is to solve this issue. We split a large glyphs list to serval lists and each list is non-overlapped or overlapped. we can reduce the length of overlapped glyphs to do the glyphs_via_mask to 2 or 3 glyphs one time for most cases. Thus it give us a case to allocate a small portion of the corresponding cache directly as the mask picture. Then we can rendering the glyphs to this mask picture, and latter we can accumulate the second steps, composite the mask to the dest with the other non-overlapped glyphs's rendering process. It also make us implement a batch mask cache blocks clearing algorithm to avoid too frequently small region clearing. If there is no any overlapping, this method will not get performance gain. If there is some overlapping, then this algorithm can get about 15% performance gain. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 4c368b12c1af317c79469f8b6b809997d1769080 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Wed Jun 27 12:53:40 2012 +0800 glamor_compositerects: Implement optimized version. Don't call miCompositeRects. Use glamor_composite_clipped_region to render those boxes at once. Also add a new function glamor_solid_boxes to fill boxes at once. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit ecc70624ca77478a46e9fb9487d76c74c6be1d8f Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 20:00:21 2012 +0800 optimize: Use likely and unlikely. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 622bfc174ab0c8a04146bd5fb754e96bc51d38c0 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 19:56:27 2012 +0800 create_pixmap: use texture for large glyphs. As we only cache glyphs smaller than 64x64, we need to use texutre for the large glyphs. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 033349420f53cdbbdda37b3975c498a0dc885cf6 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 17:19:16 2012 +0800 glamor_copyarea: Fixed a bug introduced by 996194... Default return value should be FALSE. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit f3cff9975b1969b91b85f329be9fa925a9137f34 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 16:24:32 2012 +0800 glamor_glyphs: Slightly performance tuning. As glamor_glyphs never fallback, we don't need to keep the underlying glyphs routines, just override the ps->glys Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 593bd206bf2794dc1450e8e7d20142b8d0ca074b Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 15:39:24 2012 +0800 glamor_render: Don't allocate buffer for vbo each time. We can reuse the last one if the last one is big enough to contain current vertext data. In the meantime, Use MapBufferRange instead of MapBuffer. Testing shows, this patch brings some benefit for aa10text/rgb10text. Not too much, but indeed faster. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit e44ce79d719ece8997c777329834c5293fc668b8 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 26 13:09:05 2012 +0800 glamor_largepixmap: Walkaround for large texture's upload. I met a problem with large texture (larger than 7000x7000)'s uploading on SNB platform. The map_gtt get back a mapped VA without error, but write to that virtual address triggers BUS error. This work around is to avoid that direct uploading. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit fc3674fbf40cbe5ddb3e3a29ce86be7db743892b Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 25 23:24:37 2012 +0800 glamor_render: Optimize the two pass ca rendering. For the componentAlpha with PictOpOver, we use two pass rendering to implement it. Previous implementation call two times the glamor_composite_... independently which is very inefficient. Now we change the control flow, and do the two pass internally and avoid duplicate works. For the x11perf -rgb10text, this optimization can get about 30% improvement. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 63fb516af37d07f11b4e8d52338354de98885425 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 25 16:37:22 2012 +0800 glamor_composite_glyph: Optimize glyphs with non-solid pattern. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 07177a4842851a5ee611bdff6693bdd81c9828c1 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Thu Jun 21 19:30:51 2012 +0800 glamor_glyphs: Detect fake or real glyphs overlap. To split a glyph's extent region to three sub-boxes as below. left box 2 x h center box (w-4) x h right box 2 x h Take a simple glyph A as an example: * __* *__ ***** * * ~~ ~~ The left box and right boxes are both 2 x 2. The center box is 2 x 4. The left box has two bitmaps 0001'b and 0010'b to indicate the real inked area. The right box also has two bitmaps 0010'b and 0001'b. And then we can check the inked area in left and right boxes with previous glyph. If the direction is from left to right, then we need to check the previous right bitmap with current left bitmap. And if we found the center box has overlapped or we overlap with not only the previous glyph, we will treat it as real overlapped and will render the glyphs via mask. If we only intersect with previous glyph on the left/right edge. Then we further compute the real overlapped bits. We set a loose check criteria here, if it has less than two pixel overlapping, we treat it as non-overlapping. With this patch, The aa10text boost fom 1660000 to 320000. Almost double the performance! And the cairo test result is the same as without this patch. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 1f14ab24d716644f22846d9134883d7dda9bf0b2 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Thu Jun 21 19:29:06 2012 +0800 glamor_render: Don't fallback when rendering glyphs with OpOver. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 029ef43d5fe0148b12d832a638b2c8c8e39fd262 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Thu Jun 21 19:27:07 2012 +0800 glamor_create_pixmap: Allocate glyphs pixmap in memory. As we have glyphs atlas cache, we don't need to hold each glyphs on GPU. And for the subsequent optimization, we need to store the original glyphs pixmap on system memory. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit ba625dc12634c50bc8183e64fbfb2827b94d931f Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Thu Jun 21 19:26:28 2012 +0800 glamor_fbo: fix a memory leak for large pixmap. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 08e86e4b64b5c36b5d1db0d95effb79d82842f14 Author: Junyan He <junyan...@linux.intel.com> Date: Fri Jun 15 09:00:15 2012 +0800 Fix a bug for trapezoid clip We find in some cases the trapezoid will be render as a triangle and the left edge and right edge will cross with each other just bellow the top or over the bottom. The distance between the cross poind and the top or bottom is less than pixman_fixed_1_minus_e, so after the fixed converted to int, the cross point has the same value with the top or botton and the triangle should not be affected. But in our clip logic, the cross point will be clipped out. So add a logic to fix this problem. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit d9202dc2cb6aadfbc14983279649c2285c3e6501 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Jun 15 13:31:30 2012 +0800 gles2_largepixmap: force clip for a non-large pixmap. One case we need force clip when download/upload a drm_texture pixmap. Actually, this is only meaningful for testing purpose. As we may set the max_fbo_size to a very small value, but the drm texture may exceed this value but the drm texture pixmap is not largepixmap. This is not a problem with OpenGL. But for GLES2, we may need to call glamor_es2_pixmap_read_prepare to create a temporary fbo to do the color conversion. Then we have to force clip the drm pixmap here to avoid large pixmap handling at glamor_es2_pixmap_read_prepare. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 291402b1a9abd7a1e747c71b2e7c7104d5061614 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Jun 15 09:03:42 2012 +0800 glamor_emit_composite_vert: Optimize to don't do two times vert coping. We change some macros to put the vert to the vertex buffer directly when we cacluating it. This way, we can get about 4% performance gain. This commit also fixed one RepeatPad bug, when we RepeatPad a not eaxct size fbo. We need to calculate the edge. The edge should be 1.0 - half point, not 1.0. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 741a065f55fc78d624ef9c423d8c36d8d06a95c3 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Jun 15 08:46:24 2012 +0800 glamor_glyphs: Before get upload to cache flush is needed. When we can't get a cache hit and have to evict one cache entry to upload new picture, we need to flush the previous buffer. Otherwise, we may get corrupt glyphs rendering result. This is the reason why user-font-proxy may fail sometimes. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 996194140ce10b8c8b2b1cf8774c857fed4a6f24 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Fri Jun 15 08:43:37 2012 +0800 copyarea: Cleanup the error handling logic. Should use ok rather than mixed ok or ret. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 0604eb4aadf0162e7971b2e8b138174e376eb5e4 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Tue Jun 12 18:21:10 2012 +0800 trapezoid: Fallback to sw-rasterize for largepixmap. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 566ba215aac7c191d85410b8794d28b561e0aff5 Author: Junyan He <junyan...@linux.intel.com> Date: Tue Jun 5 03:21:03 2012 +0800 Use the direct render path for A1 Because when mask depth is 1, there is no Anti-Alias at all, in this case, the directly render can work well and it is faseter. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 0bc9a5de83063976902866e4175effedd3ae5a1f Author: Junyan He <junyan...@linux.intel.com> Date: Mon Jun 4 07:52:05 2012 +0800 Add the trapezoid direct render logic We firstly get the render area by clipping the trapezoid with the clip rect, then split the clipped area into small triangles and use the composite logic to generate the result directly. This manner is fast but have the problem that some implementation of GL do not implement the Anti-Alias of triangles fill, so the edge sometimes has sawtooth. It is not acceptable when use trapezoid to approximate circles and wide lines. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 2133d22a7e57d0151051106fa15464218ae88385 Author: Junyan He <junyan...@linux.intel.com> Date: Mon Jun 4 07:22:27 2012 +0800 Modilfy the composite logic to two phases We seperate the composite to two phases, firstly to select the shader according to source type and logic op, setting the right parameters. Then we emit the vertex array to generate the dest result. The reason why we do this is that the shader may be used to composite no only rect, trapezoid and triangle render function can also use it to render triangles and polygens. The old function glamor_composite_with_shader do the whole two phases work and can not match the new request. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 445ee22ac67976d8226f2ba743a3a6897781c404 Author: Junyan He <junyan...@linux.intel.com> Date: Mon Jun 4 03:18:40 2012 +0800 Add macro of vertex setting for triangle stripe Add macro of vertex setting for triangle stripe draw, and make the code clear. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 2f6aa7a8d3fcae266b174fd629131616ef09686a Author: RobinHe <robi...@robinhe-desktop.lan> Date: Sat Jun 2 22:00:09 2012 +0800 Use shader to generate the temp trapezoid mask The old manner of trapezoid render uses pixman to generate a mask pixmap and upload it to the GPU. This effect the performance. We now use shader to generate the temp trapezoid mask to avoid the uploading of this pixmap. We implement a anti-alias manner in the shader according to pixman, which will caculate the area inside the trapezoid dividing total area for every pixel and assign it to the alpha value of that pixel. The pixman use a int-to-fix manner to approximate but the shader use float, so the result may have some difference. Because the array in the shader has optimization problem, we need to emit the vertex of every trapezoid every time, which will effect the performance a lot. Need to improve it. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 5f03910369012e1d9b973142f704d8488df57f59 Author: RobinHe <robi...@robinhe-desktop.lan> Date: Sat Jun 2 21:52:25 2012 +0800 Create the file glamor_triangles.c Create the file glamor_trapezoid.c, extract the logic relating to trapezoid from glamor_render.c to this file. Signed-off-by: Junyan He <junyan...@linux.intel.com> commit 7ed0d760fbd4378c59fde4d88adc6eca2cb3ea95 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 14:02:59 2012 +0800 Enable large pixmap by default. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 3ed87725dc79c6dd51598a4ed060ad8c53306d55 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 13:05:48 2012 +0800 largepixmap: Fix the selfcopy issue. If the source and destination are the same pixmap/fbo, and we need to split the copy to small pieces. Then we do need to consider the sequence of the small pieces when the copy area has overlaps. This commit take the reverse/upsidedown into the clipping function, thus it can generate correct sequence and avoid corruption self copying. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit d3e0c76f8cd17784b0b57ddaafe30c9996ac67de Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 11:42:46 2012 +0800 largepixmap: Support self composite for large pixmap. The simplest way to support large pixmap's self compositing is to just clone a pixmap private data structure, and change the fbo and box to point to the correct postions. Don't need to copy a new box. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit f3c06ebd10f1518f11d75ac563f1d671df51935a Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 09:36:56 2012 +0800 largepixmap: Add transform/repeat/reflect/pad support. This commit implement almost all the needed functions for the large pixmap support. It's almost complete. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 503dc69c03421f2ea42089137c024eca2a137ff6 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 02:27:00 2012 +0800 glamor_getimage: should call miGetimage if failed to get sub-image. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit a0ae6978c712f5f8c325553d08d085693b9e6518 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 02:24:41 2012 +0800 glamor_putimage: Correct the wrong stride value. We should not use the destination pixmap's devkind as the input image data's stride. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit b0257c3a67798d44e0f8218ccc798c5392729c62 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 02:15:53 2012 +0800 largepixmap: Enable glamor_composite. Now we start to enable glamor_composite on large pixmap. We need to do a three layer clipping to split the dest/source/mask to small pieces. This commit only support non-transformation and repeat normal case. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit e836be57a45c3acee73251190593a882428fa7ed Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 01:52:14 2012 +0800 largepixmap: Implement infrastructure for large pixmap. Added infrastructure for largepixmap, this commit implemented: 1. Create/Destroy large pixmap. 2. Upload/Download large pixmap. 3. Implement basic repeat normal support. 3. tile/fill/copyarea large pixmap get supported. The most complicated part glamor_composite still not implemented. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 25ba2dcf0e9858edc93fafa0d77f6d1a574bd833 Author: Zhigang Gong <zhigang.g...@linux.intel.com> Date: Mon Jun 11 01:02:30 2012 +0800 glamor_largepixmap: first commit for large pixmap. This is the first commit to add support for large pixmap. The large here means a pixmap is larger than the texutre's size limitation thus can't fit into one single texutre. The previous implementation will simply fallback to use a in memory pixmap to contain the large pixmap which is very slow in practice. The basic idea here is to use an array of texture to hold the large pixmap. And when we need to get a specific area of the pixmap, we just need to compute/clip the correct region and find the corresponding fbo. We need to implement some auxiliary routines to clip every rendering operations into small pieces which can fit into one texture. The complex part is the transformation/repeat/repeatReflect and repeat pad and their comination. We will support all of them step by step. This commit just add some necessary data structure to represent the large pixmap, and doesn't change any rendering process. This commit doesn't add real large pixmap support. Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 6116de526bc174baa6292c216e44ad0109855d2d Author: Junyan He <junyan...@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.g...@linux.intel.com> Signed-off-by: Junyan He <junyan...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit ce9c97547cc5897e2435c20c11ce13ae45fffeff Author: Junyan He <junyan...@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.g...@linux.intel.com> Signed-off-by: Junyan He <junyan...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit 98402a908f36aebc1537a22d86d77667c25a1136 Author: Junyan He <junyan...@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.g...@linux.intel.com> Signed-off-by: Junyan He <junyan...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit c1ec3ef1f0a86c5977d9623d1cbbc2159885d0af Author: Junyan He <junyan...@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...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit a3bbd3bc6299680ac6f4dd382ee403f556e15a92 Author: Junyan He <junyan...@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.g...@linux.intel.com> Signed-off-by: Junyan He <junyan...@linux.intel.com> Signed-off-by: Zhigang Gong <zhigang.g...@linux.intel.com> commit da9563fd123263c5124ae336369d2aa8a5bdb9e4 Author: Zhigang Gong <zhigang.g...@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 -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1ups1n-0004pq...@vasks.debian.org