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> |
||
---|---|---|
composite | ||
config | ||
damageext | ||
dbe | ||
dix | ||
doc | ||
dri3 | ||
exa | ||
fb | ||
glamor | ||
glx | ||
hw | ||
include | ||
m4 | ||
man | ||
mi | ||
miext | ||
os | ||
present | ||
pseudoramiX | ||
randr | ||
record | ||
render | ||
test | ||
Xext | ||
xfixes | ||
Xi | ||
xkb | ||
.dir-locals.el | ||
.gitignore | ||
autogen.sh | ||
configure.ac | ||
COPYING | ||
devbook.am | ||
docbook.am | ||
fix-miregion | ||
fix-miregion-private | ||
fix-patch-whitespace | ||
fix-region | ||
Makefile.am | ||
manpages.am | ||
README | ||
xorg-server.m4 | ||
xorg-server.pc.in | ||
xserver.ent.in |
X Server The X server accepts requests from client applications to create windows, which are (normally rectangular) "virtual screens" that the client program can draw into. Windows are then composed on the actual screen by the X server (or by a separate composite manager) as directed by the window manager, which usually communicates with the user via graphical controls such as buttons and draggable titlebars and borders. For a comprehensive overview of X Server and X Window System, consult the following article: http://en.wikipedia.org/wiki/X_server All questions regarding this software should be directed at the Xorg mailing list: http://lists.freedesktop.org/mailman/listinfo/xorg Please submit bug reports to the Xorg bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg The master development code repository can be found at: git://anongit.freedesktop.org/git/xorg/xserver http://cgit.freedesktop.org/xorg/xserver For patch submission instructions, see: http://www.x.org/wiki/Development/Documentation/SubmittingPatches For more information on the git code manager, see: http://wiki.x.org/wiki/GitPage