xserver-multidpi/glamor
Junyan He 1026327cdc Add the feature of generating linear gradient picture by using shader.
Add the feature of generating linear gradient picture
 by using shader.  This logic will replace the original
 linear gradient picture generating manner in glamor
 which firstly use pixman and then upload it to GPU.
 Compare it to the result generated by pixman, the
 difference of each color component of each pixel is
 normally 0, sometimes 1/255, and 2/255 at most. The
 pixman use fixed-point but shader use float-point, so may have
 difference. The feature of transform matrix and 4 types
 of repeat modes have been supported. The array usage in
 shader seems slow, so use 8 uniform variables to avoid
 using array when stops number is not very big. This
 make code look verbose but the performance improved a
 lot.

 We still have slightly performance regression compare to
 original pixman version. There are one further optimization
 opportunity which is to merge the gradient pixmap generation
 and the latter compositing into one shader, then we don't need
 to generate the extra texture, we can use the gradient value
 directly at the compositing shader. Hope that can beat pixman
 version. Will do that latter.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>

Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
2013-12-18 11:23:49 -08:00
..
glamor_addtraps.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_copyarea.c glamor_copyarea: Don't use GL_CLAMP_TO_BORDER when GLES2 enabled. 2013-12-18 11:23:48 -08:00
glamor_copyplane.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_copywindow.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_core.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_debug.h glamor_fbo: Introduce glamor fbo to manage all the fb/tex. 2013-12-18 11:23:47 -08:00
glamor_egl.c For DRI swap buffers. 2013-12-18 11:23:49 -08:00
glamor_eglmodule.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_fbo.c Fixup For list.h change in xorg 2013-12-18 11:23:49 -08:00
glamor_fill.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_fillspans.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_getimage.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_getspans.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_gl_dispatch.c Prepare for modification of gradient using shader. 2013-12-18 11:23:49 -08:00
glamor_gl_dispatch.h Prepare for modification of gradient using shader. 2013-12-18 11:23:49 -08:00
glamor_glext.h glamor: Re-arrange some macros/definitions in header files. 2011-09-26 16:47:02 +08:00
glamor_glyphblt.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_glyphs.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_picture.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_pixmap.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_polyfillrect.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_polylines.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_polyops.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_priv.h Prepare for modification of gradient using shader. 2013-12-18 11:23:49 -08:00
glamor_putimage.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_render.c Add the feature of generating linear gradient picture by using shader. 2013-12-18 11:23:49 -08:00
glamor_setspans.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_tile.c glamor_tile/composite: Modify fs to re-calculate texture coords. 2013-12-18 11:23:48 -08:00
glamor_triangles.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor_utils.h Prepare for modification of gradient using shader. 2013-12-18 11:23:49 -08:00
glamor_window.c Fixup glx support 2013-12-18 11:23:48 -08:00
glamor.c Prepare for modification of gradient using shader. 2013-12-18 11:23:49 -08:00
glamor.h For DRI swap buffers. 2013-12-18 11:23:49 -08:00
glapi.h GLX: Enable glx support. 2013-12-18 11:23:48 -08:00
Makefile.am GLX: Enable glx support. 2013-12-18 11:23:48 -08:00