glamor: Changes to 'master'
Zhigang Gong
gongzg at kemper.freedesktop.org
Sat Apr 28 02:43:24 PDT 2012
Makefile.am | 4
README | 24 -
ReleaseNote | 76 ++++++
conf/Makefile.am | 24 +
conf/glamor.conf | 4
configure.ac | 23 +
src/glamor.c | 11
src/glamor.h | 2
src/glamor_copyarea.c | 129 ++++------
src/glamor_core.c | 3
src/glamor_debug.h | 28 ++
src/glamor_egl.c | 6
src/glamor_eglmodule.c | 3
src/glamor_fbo.c | 65 ++++-
src/glamor_fill.c | 22 -
src/glamor_getimage.c | 33 +-
src/glamor_getspans.c | 67 -----
src/glamor_gl_dispatch.c | 29 ++
src/glamor_gl_dispatch.h | 1
src/glamor_glext.h | 29 ++
src/glamor_glyphblt.c | 4
src/glamor_picture.c | 28 ++
src/glamor_pixmap.c | 213 ++++++++---------
src/glamor_polyfillrect.c | 1
src/glamor_priv.h | 77 +++---
src/glamor_putimage.c | 156 ++++--------
src/glamor_render.c | 560 +++++++++++++++++++++++++++++++++-------------
src/glamor_setspans.c | 61 +----
src/glamor_tile.c | 80 ++----
src/glamor_utils.h | 93 +++++--
30 files changed, 1114 insertions(+), 742 deletions(-)
New commits:
commit d5cdad0497ae5f6cd936a74f68169c0910ea1e68
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 17:02:35 2012 +0800
Release 0.4.
Update Readme, and write a new ReleaseNote and bump the version
to 0.4.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 8b009ce320f67b63c6bcc499acc73280acac07a6
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 14:55:34 2012 +0800
Fixed all unused variables warnings.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 964b23a83f9367584b688b4138bd9285dd3d5573
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 14:54:38 2012 +0800
Fixed an uninitialized problem at gradient shader functions.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 925c2436f57c22a3752fb5a10da8b21c61343808
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 14:51:27 2012 +0800
Fixed one typo bug when fixup a mask picture.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit a4e1eec9f1d7906124065c2520bb7ee78c5d97c3
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 14:13:47 2012 +0800
Added some copyright and author information.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 61f441223575f46f6d9c1240e41ce292b2b9d83d
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 13:43:39 2012 +0800
Added --enable-debug configuration option.
For release version, we disable asserts.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 9ed6ac6cd216bbfd53adba6bae754cf8623499eb
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sat Apr 28 13:42:48 2012 +0800
Remove unecessary header file.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 4c882abc45111d6c5dae5bfbadc13631c3802dde
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Tue Mar 27 18:17:00 2012 +0800
configure: Install glamor.conf to xorg.conf.d.
As we need to make sure load DRI2 first and then load
glamoregl and then load GLX module, we create a new
xorg configuration file here and install it to system
configuration directory.
Note: If you are building xserver at your local directory
and set the prefix to your local directory rather than
the system directory, then the glamor.conf may
not be loaded when you run the X server you built locally.
The reason is that currently xorg will search the following dir
/usr/share/X11/xorg.conf.d
if it exist , then will ignore your local configuration
directory where the glamor.conf is at. Then you may fail
to start Xserver.
If this is the case, you may need to copy the glamor.conf
to /usr/share/X11/xorg.conf.d manually.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit d8cd4dfd24a92315636ff29d0a1c985e1e05441c
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Fri Apr 27 15:34:15 2012 +0800
glamor_render: Fix the repeat none for GLES2.
As GLES2 doesn't support clamp to the border, we have to
handle it seprately from the normal case.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit b2d64e6065859326a89150d82d964b36a01c4818
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Thu Apr 26 20:35:09 2012 +0800
glamor_blockhandler: Don't do glFinish every time.
To do glfinish every time bring some performance overhead.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit e25304d71c3892509babcf0906e6fdcd785d90bd
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Thu Apr 26 19:59:58 2012 +0800
glamor_copyarea: Return earlier if have zero nbox.
Almost all callers will check whether the regions is empty
before call to this internal API, but it seems the
glamor_composite_with_copy may call into here with a zero
nbox. A little weird, as the miComputeCompositeRegion return
a Non-NULL, but the region is empty.
Also remove a unecessary glflush.
So let's check it here.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit cd0033b465f97b9af27b1a7e10953cc75ac9cb56
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Thu Apr 26 19:57:21 2012 +0800
glamor_render: Have to use eaxct size pixmap for transformation.
Use partial texture as the pixmap for the transformation
source/mask may introduce extra errors. have to use
eaxct size.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 623e5750c936e43b28e7ed28e22d69300185a6dd
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Thu Apr 26 18:31:07 2012 +0800
glamor_fbo: Added a threshold value for the fbo cache pool.
Currently set it to 256MB. If cache pool watermark increases
to this value, then don't push any fbo to this pool, will purge
the fbo directly.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 865516949d182d8fe5c99bd38e1850e342615592
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Thu Apr 26 18:28:17 2012 +0800
Fixed a1 bug.
It seems that mesa has bugs when uploading bitmap to texture.
We switch to convert bitmap to a8 format and then upload the
a8 texture.
Also added a helper routine to dump 1bpp pixmap.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 26d5802ec12619ba05b150fc959f46bbc32f0534
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 22:35:12 2012 +0800
glamor_render.c: Fixed repeatPad and repeatRelect.
We should use difference calculation for these two repeat mode
when we are a sub region within one texture.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 6c1c378448c725ce00895aff5c9a93bf58d6f4d5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 19:50:57 2012 +0800
gradient: Don't need fixup flag when creating pixmap.
Gradient can use a larger texture/fbo directly, don't need
an eaxct size texture.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 6969cbf87f57698e87810037bb2831d7741c006f
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 18:58:16 2012 +0800
glamor_copyarea: Don't access a DRM only pixmap.
As EGL image/gbm only support ARGB8888 image, we don't support
other format. We may change the way to use gbm directly latter.
But now, we have to face this limitation, and thus if a client
create a 16bpp drawable, and call get texture from pixmap then
a copy to here may occur and thus we have to force retur a TRUE
without do nothing.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 519388d6e80dac48b11ad3b8f92131e8b607c73d
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 13:54:40 2012 +0800
Disable A8 texture format for GLES2.
As PVR's GLES2 implementation doesn't support A8 texture as
rendering target, we disable it for now.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit b48fb31d70a16976b1cff60604e39ac042d1efac
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 13:51:58 2012 +0800
gradient: Disable gradient for gles2.
As PVR glsl compiler seems doesn't support external fragment
function, and fails at compile gradient shader. Disable it
for now. We may need to modify gradient shader to don't use
external function.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 4136ba52aa5437f3f40653ff8ec127a37705024f
Author: Junyan He <junyan.he at linux.intel.com>
Date: Wed Apr 18 08:04:26 2012 +0800
Fix the bug caused by gradient picture set the stops at the same percentage.
Fix the bug caused by gradient picture set the stops at
the same percentage. The (stops[i] - stops[i-1]) will
be used as divisor in the shader, which will cause
problem. We just keep the later one if stops[i] ==
stops[i-1].
Signed-off-by: Junyan He <junyan.he at linux.intel.com>
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit a6d2e02afa15b014622fb169d66b66d66daf3d4a
Author: Junyan He <junyan.he at linux.intel.com>
Date: Wed Apr 25 14:25:39 2012 +0800
Fix the problem of memory leak in gradient pixmap generating.
Fix the problem of memory leak in gradient pixmap
generating. The problem caused by we do not call
glDeleteShader when destroy a shader program. This patch
will split the gradient pixmap generating to three
category. If nstops < 6, we will use the no array version
of the shader, which has the best performance. Else if
nstops < 16, we use array version of the shader, which is
compiled and linked at screen init stage. Else if nstops >
16, we dynamically create a new shader program, and this
program will be cached until bigger nstops.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 8e9595f99075bf476390ba726da23c63c91ac4f5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 11:59:47 2012 +0800
glamor_putimage: Optimize for direct uploading and fallback path.
This commit optimize two cases:
1. When the clip contains the whole area, we can directly upload
the texel data to the pixmap, and don't need to do one extra
clipped copy.
2. At fallback path, we don't read back the whole pixmap, just
need a sub region.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit bc7bfc7d94a51b6fe2953c42c117d1c5258423ca
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 11:56:43 2012 +0800
Fixed one potential texture size mismatch problem.
There are two cases which we may use a wrong texture size.
1. A pixmap is modified by the client side after it created
it. Then the pixmap's width may mismatch the original fbo/tex's
size. Thus we need to check this condition when preparing
upload the pixmap.
2. We provide two API to download/upload sub region of a
textured pixmap. The caller may pass in a larger width then
the original pixmap's size, this may happen at putimage
and setspans. We need to validate the width and height
when do the downloading/uploading.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit aa64c82102ed094ca1b1662d4a93b2359584b9ec
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Wed Apr 25 09:27:06 2012 +0800
glamor_getimage: Don't fallback to miGetImage.
As miGetImage is very inefficient, we don't fallback to it.
If the format is not ZPixmap, we download the required sub-
region, and then call fbGetImage to do the conversion.
This way is much faster than previous.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 24856d2f21b19b31db847719748bde1f17eb40c5
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Fri Apr 13 18:15:49 2012 +0800
pending_op: Remove the pending operations handling.
We have disabled this feature for a long time, and previous
testing shows that this(pending fill) will not bring observed
performance gain. Now remove it.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 0077d019a2be62be19acd5fb075d664ffa5a819f
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 23:50:09 2012 +0800
glamor_upload_pixmap: Use glTexImage2D for a fully update.
Currently, intel's mesa dri driver will not check pbo for
a TexSubImage2D. So we use glTexImage2D if we are a fully
updating.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit e54978e41aa2710b9960f01e0f82d04b99fd5f5e
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 23:49:38 2012 +0800
glamor_setspans: Reuse glamor_upload_sub_pixmap.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit eab6b8f93759293b57a57b14eab826bc31c3861a
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 23:18:47 2012 +0800
code clean up.
Remove unused variables.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit f2fa4f33148d198d3bec1f4c5391bf35c931ea53
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 23:16:51 2012 +0800
glamor_getspans: Reuse glamor_download_sub_pixmap.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 25a862727c7db2ee0729cc609b8e933d166de7be
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 19:46:09 2012 +0800
glamor_render: Don't download whole picture when fallback.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit 6d25a3b8233867df22b01c4dbc9a6d97a477e4a2
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 19:43:44 2012 +0800
glamor_put_sub_pixmap: Change to use glamor_upload_sub_pixmap.
As the pixmap may be attached to a picture, we need to use
glamor_upload_sub_pixmap to process it. glamor_copy_n_to_n
will not consider the picture case.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit e51a23d3d21b524979e4de5690042e36560e72ca
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 17:09:06 2012 +0800
Fixed a stride problem for textured_drm pixmap.
As a textured_drm pixmap has a drm bo attached to it, and
it's the DDX layer to set it stride value. In some case,
the stride value is not equal to PixmapBytePad(w, depth)
which is used within glamor.
Then if it is the case, we have two choice, one is to set
the GL_PACK_ROW_LENGTH/GL_UNPACK_ROW_LENGTH when we need
to download or upload the pixmap. The other option is to
change the pixmap's devKind to match the one glamor is using
when downloading the pixmap, and restore it to the drm stride
after uploading the pixmap.
We choose the 2nd option, as GLES doesn't support the first
method.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit a1947497a1bd430c60d11a30241fa27aee355c22
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 14:36:09 2012 +0800
glamor_putimage: Reuse copy area to do the clipped copy.
If no clip set, we load the bits to the pixmap directly.
Otherwise, load the bits to a temporary pixmap and call
glamor_copy_area to do the clipped copy.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit b3d1385e22391e49c798613290aca9dc81492139
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 10:30:02 2012 +0800
Fixed a unbalanced glamor_put_dispatch.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
commit c4677d1c5d8f0bc3bb27aa499ecbeb0fc59c87d0
Author: Zhigang Gong <zhigang.gong at linux.intel.com>
Date: Sun Apr 15 22:47:48 2012 +0800
glamor_pixmap_priv: Always return a valid private pixmap.
If a pixmap doesn't have a private, then set its type to
GLAMOR_MEMORY, and thus it will get a valid private.
Signed-off-by: Zhigang Gong <zhigang.gong at linux.intel.com>
More information about the xorg-commit
mailing list