From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhigang Gong" Subject: [ANNOUNCE] glamor 0.5.0 Date: Fri, 10 Aug 2012 18:37:17 +0800 Message-ID: <003901cd76e4$1e286fc0$5a794f40$@linux.intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2122983743==" Return-path: Content-Language: zh-cn List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: glamor@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, xorg@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org This is a multipart message in MIME format. --===============2122983743== Content-Type: multipart/alternative; boundary="----=_NextPart_000_003A_01CD7727.2C5C78A0" Content-Language: zh-cn This is a multipart message in MIME format. ------=_NextPart_000_003A_01CD7727.2C5C78A0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable After three moths development, I=92m pleased to release glamor version = 0.5.0. The major improvements are as below: =20 1. Support tiling large pixmap to multiple small textures. 2. Enable gradient shader. 3. Optimize glyphs rendering performance 4. Implement first shader to generate trapezoids. =20 Cairo-demo=92s spinner on a large picture(12000x12000) get about 10x improvement, and gradient also get about 2x improvement. Aa10text and rgb10text also get about 2x improvement. =20 Thanks for Junyan and Michel=92s contribution. =20 Glamor has a restriction with latest xserver. The main issue is that = glamor rely on the module loading sequence which is not guaranteed by current xserver. We will fix this = issue in next version. If you want to try a full functional xserver with glamor, it=92s recommended to use = the following xserver version: commit a615b90cab7569fae9d123e4da1d3373c871d84b Author: Keith Packard Date: Wed Mar 14 11:32:36 2012 -0700 =20 Bump version number to 1.12.99.0 =20 Now that 1.12 has branched, reset the version on master to a development number. =20 Signed-off-by: Keith Packard keithp@keithp.com =20 We have the following work items for next release: =20 1. Fix the coexisting problem with glx for latest xserver. Don=92t = rely on the module loading sequence. 2. Continue performance tuning: a) Implement delay flushing mechanism to avoid tiny drawing operation for each DrawElements/DrawArrays call. b) Implement atlas for small pixmap. c) Optimize trapezoid shader to reduce the overhead for those non-edge pixels. d) Optimize trapezoid/gradient shader to merge the mask/source creation and compositing into one shader. e) Optimize glamor itself=92 overhead. 3. Xv support. =20 The following changes since commit = d5cdad0497ae5f6cd936a74f68169c0910ea1e68: =20 Release 0.4. (2012-04-28 17:02:35 +0800) =20 are available in the git repository at: =20 git://anongit.freedesktop.org/xorg/driver/glamor tag v0.5 =20 tar ball is at: http://cgit.freedesktop.org/xorg/driver/glamor/snapshot/glamor-0.5.tar.gz= =20 Please refer the following wiki page for how to try glamor with Intel driver. http://www.freedesktop.org/wiki/Software/Glamor =20 for you to fetch changes up to 9b8a791290af0add84269efdb315f9f58798f6d2: =20 Bump to version 0.5. (2012-08-10 13:46:42 +0800) =20 ---------------------------------------------------------------- Junyan He (14): Extract the gradient related code out. Fix a bugy macro definition. Fix the problem of set the same stop several times. Fix the problem of vertical and horizontal case error in linear gradient. Fix the problem of x_source and y_source causing radial error Add macro of vertex setting for triangle stripe Modilfy the composite logic to two phases Add the trapezoid direct render logic Use the direct render path for A1 Fix a bug for trapezoid clip Change the trapezoid render to use VBO. Just use the shader to generate trapezoid if PolyMode =3D=3D = Imprecise Fix the problem of VBO leak. Fallback to pixman when trapezoid mask is big. =20 Michel D=E4nzer (4): Fix translation of clip region for composite fallback. Stream vertex data to VBOs. Print space between name of missing EGL extension and 'required'. Prefer KHR_surfaceless_context EGL extension over KHR_surfaceless_opengl/gles2. =20 RobinHe (2): Create the file glamor_triangles.c Use shader to generate the temp trapezoid mask =20 Zhigang Gong (43): We should not call gradient finalization code if we disable it. Added strict warning flags to CFLAGS. Remove the texture cache code. glamor_set_destination_pixmap_priv_nc: set drawable's width x = height. glamor_largepixmap: first commit for large pixmap. largepixmap: Implement infrastructure for large pixmap. largepixmap: Enable glamor_composite. glamor_putimage: Correct the wrong stride value. glamor_getimage: should call miGetimage if failed to get = sub-image. largepixmap: Add transform/repeat/reflect/pad support. largepixmap: Support self composite for large pixmap. largepixmap: Fix the selfcopy issue. Enable large pixmap by default. trapezoid: Fallback to sw-rasterize for largepixmap. copyarea: Cleanup the error handling logic. glamor_glyphs: Before get upload to cache flush is needed. glamor_emit_composite_vert: Optimize to don't do two times vert coping. gles2_largepixmap: force clip for a non-large pixmap. glamor_fbo: fix a memory leak for large pixmap. glamor_create_pixmap: Allocate glyphs pixmap in memory. glamor_render: Don't fallback when rendering glyphs with OpOver. glamor_glyphs: Detect fake or real glyphs overlap. glamor_composite_glyph: Optimize glyphs with non-solid pattern. glamor_render: Optimize the two pass ca rendering. glamor_largepixmap: Walkaround for large texture's upload. glamor_render: Don't allocate buffer for vbo each time. glamor_glyphs: Slightly performance tuning. glamor_copyarea: Fixed a bug introduced by 996194... create_pixmap: use texture for large glyphs. optimize: Use likely and unlikely. glamor_compositerects: Implement optimized version. glamor_glyphs: Use cache picture to store mask picture if = possible. glamor_copyarea: Use blitcopy if current state is not render. glamor_glyphs: Don't merge extents for different lists. gles2: Fixed the compilation problem and some bugs. Synch with xorg 1.13 change. Added the missed header file for xorg 1.13 compat. glamor_trapezoid: workaround a glsl like problem. glamor_glyphs: When dst arg point to a NULL buffer, dont't flush. glamor_largepixmap: Fixed a bug in repeat clipping. Silence compilation warnings. Increase vbo size to 64K verts. Bump to version 0.5. =20 configure.ac | 2 +- src/Makefile.am | 6 +- src/compat-api.h | 107 ++ src/compiler.h | 59 + src/glamor.c | 98 +- src/glamor.h | 16 +- src/glamor_compositerects.c | 278 +++++ src/glamor_copyarea.c | 356 ++++-- src/glamor_copyplane.c | 3 - src/glamor_core.c | 26 +- src/glamor_debug.h | 4 +- src/glamor_egl.c | 61 +- src/glamor_eglmodule.c | 4 +- src/glamor_fbo.c | 274 ++-- src/glamor_fill.c | 173 ++- src/glamor_fillspans.c | 3 - src/glamor_getimage.c | 4 +- src/glamor_glext.h | 3 + src/glamor_glyphs.c | 1452 +++++++++++++++++---- src/glamor_gradient.c | 1584 +++++++++++++++++++++++ src/glamor_largepixmap.c | 1324 ++++++++++++++++++++ src/glamor_picture.c | 16 +- src/glamor_pixmap.c | 441 +++++-- src/glamor_polyfillrect.c | 3 - src/glamor_polylines.c | 2 - src/glamor_priv.h | 363 +++++- src/glamor_putimage.c | 8 +- src/glamor_render.c | 2912 +++++++++++-------------------------------- src/glamor_tile.c | 202 ++- src/glamor_trapezoid.c | 1810 +++++++++++++++++++++++++++ src/glamor_utils.h | 841 +++++++++++-- src/glapi.h | 6 +- 32 files changed, 9338 insertions(+), 3103 deletions(-)=20 create mode 100644 src/compat-api.h create mode 100644 src/compiler.h create mode 100644 src/glamor_compositerects.c create mode 100644 src/glamor_gradient.c create mode 100644 src/glamor_largepixmap.c create mode 100644 src/glamor_trapezoid.c =20 ------=_NextPart_000_003A_01CD7727.2C5C78A0 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable

After = three moths development, Im = pleased to release glamor version 0.5.0. The major = improvements

are as below:

 

1.       = Support tiling large = pixmap to multiple small textures.

2.       = Enable gradient = shader.

3.       = Optimize glyphs = rendering performance

4.       = Implement first shader = to generate trapezoids.

 

Cairo-demos spinner on a large picture(12000x12000) get about 10x = improvement, and gradient also

get about 2x improvement. = Aa10text and rgb10text also get about 2x = improvement.

 

Thanks for Junyan and Michels = contribution.

 

Glamor has a restriction with latest xserver. The main = issue is that glamor rely on the module loading

sequence which is not guaranteed = by current xserver. We will fix this issue in next version. If you = want

to = try a full functional xserver with glamor, its = recommended to use the following xserver = version:

commit = a615b90cab7569fae9d123e4da1d3373c871d84b

Author: Keith Packard <keithp@keithp.com>

Date:=A0=A0 Wed Mar 14 11:32:36 2012 = -0700

 

=A0=A0=A0 Bump version = number to 1.12.99.0

 

=A0=A0=A0 Now that 1.12 = has branched, reset the version on master to a

=A0=A0=A0 development number.

 

=A0=A0=A0=A0=A0=A0=A0=A0 =A0=A0 = Signed-off-by: Keith Packard keithp@keithp.com=

 

We have the following work items for next = release:

 

1.       = Fix the coexisting = problem with glx for latest xserver. Dont = rely on the module loading sequence.

2.       = Continue performance = tuning:

a)         = Implement delay = flushing mechanism to avoid tiny drawing operation for each = DrawElements/DrawArrays call.

b)         = Implement atlas for = small pixmap.

c)         = Optimize trapezoid = shader to reduce the overhead for those non-edge = pixels.

d)         = Optimize = trapezoid/gradient shader to merge the mask/source creation and = compositing into one shader.

e)         = Optimize glamor = itself = overhead.

3.       = Xv = support.

 

The following changes since commit = d5cdad0497ae5f6cd936a74f68169c0910ea1e68:

 

=A0 Release 0.4. (2012-04-28 = 17:02:35 +0800)

 

are available in the git repository = at:

 

git://anongit.f= reedesktop.org/xorg/driver/glamor

tag v0.5

 

tar ball is = at:

http://cgit.freedesktop.org/xorg/driver/glamor/snapshot/glamor-= 0.5.tar.gz

 

Please refer the following wiki page for how to try glamor = with Intel driver.

http://www.freed= esktop.org/wiki/Software/Glamor

 

for you to fetch changes up to = 9b8a791290af0add84269efdb315f9f58798f6d2:

 

=A0 Bump to version 0.5. = (2012-08-10 13:46:42 +0800)

 

------------------------------------------------------------= ----

Junyan He (14):

=A0=A0=A0=A0=A0 Extract the = gradient related code out.

=A0=A0=A0=A0=A0 Fix a bugy macro = definition.

=A0=A0=A0=A0=A0 Fix the problem of set the same stop = several times.

=A0=A0=A0=A0=A0 Fix the problem of vertical and horizontal = case error in linear gradient.

=A0=A0=A0=A0=A0 Fix the problem = of x_source and y_source causing radial error

=A0=A0=A0=A0=A0 Add macro of = vertex setting for triangle stripe

=A0=A0=A0=A0=A0 Modilfy the = composite logic to two phases

=A0=A0=A0=A0=A0 Add the = trapezoid direct render logic

=A0=A0=A0=A0=A0 Use the direct = render path for A1

=A0=A0=A0=A0=A0 Fix a bug for trapezoid = clip

=A0=A0=A0=A0=A0 Change the trapezoid render to use = VBO.

=A0=A0=A0=A0=A0 Just use the shader to generate trapezoid = if PolyMode =3D=3D Imprecise

=A0=A0=A0=A0=A0 Fix the problem = of VBO leak.

=A0=A0=A0=A0=A0 Fallback to pixman when trapezoid mask is = big.

 

Michel D=E4nzer = (4):

=A0=A0=A0=A0=A0 Fix translation of clip region for = composite fallback.

=A0=A0=A0=A0=A0 Stream vertex data to = VBOs.

=A0=A0=A0=A0=A0 Print space between name of missing EGL = extension and 'required'.

=A0=A0=A0=A0=A0 Prefer = KHR_surfaceless_context EGL extension over = KHR_surfaceless_opengl/gles2.

 

RobinHe = (2):

=A0=A0=A0=A0=A0 Create the file = glamor_triangles.c

=A0=A0=A0=A0=A0 Use shader to generate the temp trapezoid = mask

 

Zhigang Gong (43):

=A0=A0=A0=A0=A0 We should not = call gradient finalization code if we disable = it.

=A0=A0=A0=A0=A0 Added strict warning flags to = CFLAGS.

=A0=A0=A0=A0=A0 Remove the texture cache = code.

=A0=A0=A0=A0=A0 glamor_set_destination_pixmap_priv_nc: set = drawable's width x height.

=A0=A0=A0=A0=A0 = glamor_largepixmap: first commit for large = pixmap.

=A0=A0=A0=A0=A0 largepixmap: Implement infrastructure for = large pixmap.

=A0=A0=A0=A0=A0 largepixmap: Enable = glamor_composite.

=A0=A0=A0=A0=A0 glamor_putimage: Correct the wrong stride = value.

=A0=A0=A0=A0=A0 glamor_getimage: should call miGetimage if = failed to get sub-image.

=A0=A0=A0=A0=A0 largepixmap: Add = transform/repeat/reflect/pad support.

=A0=A0=A0=A0=A0 largepixmap: = Support self composite for large pixmap.

=A0=A0=A0=A0=A0 largepixmap: Fix = the selfcopy issue.

=A0=A0=A0=A0=A0 Enable large pixmap by = default.

=A0=A0=A0=A0=A0 trapezoid: Fallback to sw-rasterize for = largepixmap.

=A0=A0=A0=A0=A0 copyarea: Cleanup the error handling = logic.

=A0=A0=A0=A0=A0 glamor_glyphs: Before get upload to cache = flush is needed.

=A0=A0=A0=A0=A0 glamor_emit_composite_vert: Optimize to = don't do two times vert coping.

=A0=A0=A0=A0=A0 = gles2_largepixmap: force clip for a non-large = pixmap.

=A0=A0=A0=A0=A0 glamor_fbo: fix a memory leak for large = pixmap.

=A0=A0=A0=A0=A0 glamor_create_pixmap: Allocate glyphs = pixmap in memory.

=A0=A0=A0=A0=A0 glamor_render: Don't fallback when = rendering glyphs with OpOver.

=A0=A0=A0=A0=A0 glamor_glyphs: = Detect fake or real glyphs overlap.

=A0=A0=A0=A0=A0 = glamor_composite_glyph: Optimize glyphs with non-solid = pattern.

=A0=A0=A0=A0=A0 glamor_render: Optimize the two pass ca = rendering.

=A0=A0=A0=A0=A0 glamor_largepixmap: Walkaround for large = texture's upload.

=A0=A0=A0=A0=A0 glamor_render: Don't allocate buffer for = vbo each time.

=A0=A0=A0=A0=A0 glamor_glyphs: Slightly performance = tuning.

=A0=A0=A0=A0=A0 glamor_copyarea: Fixed a bug introduced by = 996194...

=A0=A0=A0=A0=A0 create_pixmap: use texture for large = glyphs.

=A0=A0=A0=A0=A0 optimize: Use likely and = unlikely.

=A0=A0=A0=A0=A0 glamor_compositerects: Implement optimized = version.

=A0=A0=A0=A0=A0 glamor_glyphs: Use cache picture to store = mask picture if possible.

=A0=A0=A0=A0=A0 glamor_copyarea: = Use blitcopy if current state is not render.

=A0=A0=A0=A0=A0 glamor_glyphs: = Don't merge extents for different lists.

=A0=A0=A0=A0=A0 gles2: Fixed the = compilation problem and some bugs.

=A0=A0 =A0=A0=A0Synch with xorg = 1.13 change.

=A0=A0=A0=A0=A0 Added the missed header file for xorg 1.13 = compat.

=A0=A0=A0=A0=A0 glamor_trapezoid: workaround a glsl like = problem.

=A0=A0=A0=A0=A0 glamor_glyphs: When dst arg point to a NULL = buffer, dont't flush.

=A0=A0=A0=A0=A0 glamor_largepixmap: Fixed a bug in repeat = clipping.

=A0=A0=A0=A0=A0 Silence compilation = warnings.

=A0=A0=A0=A0=A0 Increase vbo size to 64K = verts.

=A0=A0=A0=A0=A0 Bump to version = 0.5.

 

configure.ac=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0=A0 2 +-

src/Makefile.am=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0=A0 6 +-

src/compat-api.h=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 107 = ++

src/compiler.h=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0 59 +

src/glamor.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0 98 +-

src/glamor.h=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0 16 +-

src/glamor_compositerects.c |=A0 278 = +++++

src/glamor_copyarea.c=A0=A0=A0=A0=A0=A0 |=A0 356 = ++++--

src/glamor_copyplane.c=A0=A0=A0=A0=A0 |=A0=A0=A0 3 = -

src/glamor_core.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=A0 26 = +-

src/glamor_debug.h=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=A0=A0 4 = +-

src/glamor_egl.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=A0 = 61 +-

src/glamor_eglmodule.c=A0=A0=A0=A0=A0 |=A0=A0=A0 4 = +-

src/glamor_fbo.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 274 = ++--

src/glamor_fill.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 173 = ++-

src/glamor_fillspans.c=A0=A0=A0=A0=A0 |=A0=A0=A0 3 = -

src/glamor_getimage.c=A0=A0=A0=A0=A0=A0 |=A0=A0=A0 4 = +-

src/glamor_glext.h=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0=A0=A0 3 = +

src/glamor_glyphs.c=A0=A0=A0=A0=A0=A0=A0=A0 | 1452 = +++++++++++++++++----

src/glamor_gradient.c=A0=A0=A0=A0=A0=A0 | 1584 = +++++++++++++++++++++++

src/glamor_largepixmap.c=A0=A0=A0 | 1324 = ++++++++++++++++++++

src/glamor_picture.c=A0=A0=A0=A0=A0 =A0=A0|=A0=A0 16 = +-

src/glamor_pixmap.c=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 441 = +++++--

src/glamor_polyfillrect.c=A0=A0 |=A0=A0=A0 3 = -

src/glamor_polylines.c=A0=A0=A0=A0=A0 |=A0=A0=A0 2 = -

src/glamor_priv.h=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 363 = +++++-

src/glamor_putimage.c=A0=A0=A0=A0=A0=A0 |=A0=A0=A0 8 = +-

src/glamor_render.c=A0=A0=A0=A0=A0=A0=A0=A0 | 2912 = +++++++++++--------------------------------

src/glamor_tile.c=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 202 = ++-

src/glamor_trapezoid.c=A0=A0=A0=A0=A0 | 1810 = +++++++++++++++++++++++++++

src/glamor_utils.h=A0=A0=A0=A0=A0=A0=A0=A0=A0 |=A0 841 = +++++++++++--

src/glapi.h=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = |=A0=A0=A0 6 +-

32 files changed, 9338 insertions(+), 3103 deletions(-) =

create = mode 100644 src/compat-api.h

create mode 100644 = src/compiler.h

create mode 100644 = src/glamor_compositerects.c

create mode 100644 = src/glamor_gradient.c

create mode 100644 = src/glamor_largepixmap.c

create mode 100644 = src/glamor_trapezoid.c

 

------=_NextPart_000_003A_01CD7727.2C5C78A0-- --===============2122983743== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx --===============2122983743==--