--- glamor-egl-0.5.1.orig/ReleaseNote +++ glamor-egl-0.5.1/ReleaseNote @@ -0,0 +1,76 @@ += What's New = + +The latest version is 0.4. Here is the new features in this releae: + 1. DRI2 now works well, and texture-from-pixmap also works well. + 2. Fully support glx including AIGLX, indirect glx's GL context + coexists with glamor's GL context safely. Thanks for Chris + Wilson's help to refine this function. + 3. Optimize most of the fallback path and avoid whole pixmap + downloading/uploading as much as possible. + 4. 1BPP picture uploading now will not fallback the whole rendering + path. + 5. Fully support all color formats for GLES2 port. Thanks for + Lipeng's contribution and testing for the GLES2 port on + PVR545 platform. And thanks Zhengyu to fix some PVR releated problems. + 6. Fixed many of the bugs for cairo-test-suite, now we get almost + identical or even better result than UXA. + 7. Implemented a fbo/texture cache pool mechanism which will reduce + the over head of texture/fbo destruction and creation, and bring + overall 15-20% performance imprvoement. On PVR545 platform, we + even get about 10x performance improvement with this feature. + += How to Enable Glamor? = +To enable the Glamor, the following steps is needed: + + 1. Rebuild the mesa using the parameter: + --with-egl-platforms=x11,drm --with-gallium-drivers= --enable-gbm --enable-shared-glapi --enable-glx-tls + 2. Rebuild the xf86-video-intel driver, add parameter + --enable-glamor + to enable glamor module which is embedded in intel driver. + 3. Build and install glamor source. + 4. Make sure you have the xorg configure file named glamor.conf + at conf/glamor.conf under the directory + /usr/share/X11/xorg.conf.d or /etc/X11/xorg.conf.d/. + Although make install will try to install that file to the correct + directory. But it may failed, as if you are installing the xserver + to a local directory, then the "make install" will install + glamor.conf to your local directory rather than the two system + directories. So you may need to manually copy the file to the system's + configuration directory. Otherwise, you will encounter segfault when + start the xserver. Here is teh content of the glamor.conf. + + . Section "Module" + . Load "dri2" + . Load "glamoregl" + . EndSection + +The reason why we need to load dri2/glamoregl earlier is both glx-xserver +and glamor are a dri2 loader. And glx-xserver side has a own glapi/dispatch table +implementation which is a subset of the standard mesa's implementation. So if +the glx module is loaded earlier than dri2/glamoregl, then we will get an incomplete +dispatch table and everything is broken in glamor then. This is also why we need to +add --enable-glx-tls parameters when build mesa, as we need to keep mesa align +with Xserver's behavious, xserver will enable-glx-tls by default, but mesa will not. + +After yuo finish all the above steps, then you can try to start x with glamor enabled +DDX. To make sure it's the glamor running, you can refer to Xorg.0.log, and +check that the Glamor is enabled if you can find the log like: + ''__intel(0): Use GLAMOR acceleration.__'' + += Plan = + +We plan to release next version 0.5 at early of June. And the following major features will be added: + 1. Fully gradient optimization including linear and radial. Actually, + the code is already in this release, but as it has some bugs and + we disable it currently. Will fix those bug and enable it at next + release. + 2. Large pixmap support. Currently, mesa only support 8Kx8K texture + size, if a pixmap has larger size, we have to store it in main + memory and is not efficient. This feature will tile a large + pixmap to a texture array. + 3. Fully trapezoid optimization. Currently, the trapezoid rendering + is not optimized, and it will call pixman to do the rasterization + and then call glamor_composite to do the following composition, + and then many texture uploading overhead is triggered there. + 4. Fine tune the fbo cache mechanism. + --- glamor-egl-0.5.1.orig/debian/libglamor0.install +++ glamor-egl-0.5.1/debian/libglamor0.install @@ -0,0 +1 @@ +usr/lib/*/libglamor.so.* --- glamor-egl-0.5.1.orig/debian/control +++ glamor-egl-0.5.1/debian/control @@ -0,0 +1,63 @@ +Source: glamor-egl +Section: x11 +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: Cyril Brulebois +Build-Depends: + debhelper (>= 9), + dh-autoreconf, + pkg-config, + quilt, + xutils-dev, + x11proto-dri2-dev, + libdrm-dev (>= 2.4.23), + xserver-xorg-dev (>= 2:1.10), + libgl1-mesa-dev, + libpixman-1-dev, + libegl1-mesa-dev, + libgbm-dev, + libatomic-ops-dev, +Standards-Version: 3.9.4 +Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/glamor-egl +Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/glamor-egl.git +Homepage: http://www.freedesktop.org/wiki/Software/Glamor + +Package: libglamor0 +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends}, +Multi-Arch: same +Description: shared graphics acceleration library based on OpenGL + Glamor is a library for accelerating 2D graphics using GL functions. + . + This package contains the shared library. + +Package: libglamor-dev +Section: libdevel +Architecture: linux-any +Depends: + libglamor0 (= ${binary:Version}), + ${misc:Depends}, +Multi-Arch: same +Description: shared graphics acceleration library based on OpenGL -- development files + Glamor is a library for accelerating 2D graphics using GL functions. + . + This package contains the development environment for compiling drivers against + the libglamor library. + +Package: xserver-xorg-glamoregl +Section: x11 +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends}, +Multi-Arch: same +Description: X.Org X server -- graphics acceleration module based on OpenGL + Glamor is a library for accelerating 2D graphics using GL functions. + . + This package contains the X.Org module. --- glamor-egl-0.5.1.orig/debian/changelog +++ glamor-egl-0.5.1/debian/changelog @@ -0,0 +1,33 @@ +glamor-egl (0.5.1-0ubuntu3) saucy; urgency=low + + * temporarily add libatomic-ops-dev to build-depends. + + -- Timo Aaltonen Thu, 26 Sep 2013 11:06:02 +0300 + +glamor-egl (0.5.1-0ubuntu2) saucy; urgency=low + + * Reformat the patch to have a subject as required by DEP-3. + + -- Timo Aaltonen Thu, 26 Sep 2013 08:01:19 +0300 + +glamor-egl (0.5.1-0ubuntu1) saucy; urgency=low + + * Sync from unreleased debian git + - use tagged 0.5.1 release + - move the module to /usr/lib/xorg/modules so it's actually used + - mark libglamor-dev as M-A: same. + * fix-fdo65964.diff: Add a patch from git master to fix fdo bug 65964. + + -- Timo Aaltonen Fri, 20 Sep 2013 18:45:55 +0300 + +glamor-egl (0.5.0-0ubuntu1) saucy; urgency=low + + * Sync from unreleased debian git. + + -- Timo Aaltonen Thu, 29 Aug 2013 13:12:36 +0300 + +glamor-egl (0.5.1-1) UNRELEASED; urgency=low + + * Initial release. (Closes: #XXXXXX) + + -- Timo Aaltonen Wed, 03 Apr 2013 10:35:26 +0300 --- glamor-egl-0.5.1.orig/debian/rules +++ glamor-egl-0.5.1/debian/rules @@ -0,0 +1,16 @@ +#!/usr/bin/make -f + +override_dh_auto_configure: + dh_auto_configure -- --disable-static + +override_dh_auto_install: + dh_auto_install --destdir=debian/tmp + +# Kill *.la files, and forget no-one: +override_dh_install: + find debian/tmp -name '*.la' -delete + dh_install --fail-missing + +%: + dh $@ --with autoreconf,xsf,quilt --builddirectory=build/ + --- glamor-egl-0.5.1.orig/debian/README.source +++ glamor-egl-0.5.1/debian/README.source @@ -0,0 +1,49 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated using this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. --- glamor-egl-0.5.1.orig/debian/xserver-xorg-glamoregl.install +++ glamor-egl-0.5.1/debian/xserver-xorg-glamoregl.install @@ -0,0 +1,2 @@ +usr/lib/*/xorg/modules/libglamoregl.so usr/lib/xorg/modules +usr/share/X11/xorg.conf.d/glamor.conf --- glamor-egl-0.5.1.orig/debian/compat +++ glamor-egl-0.5.1/debian/compat @@ -0,0 +1 @@ +9 --- glamor-egl-0.5.1.orig/debian/watch +++ glamor-egl-0.5.1/debian/watch @@ -0,0 +1,3 @@ +#git=git://anongit.freedesktop.org/xorg/driver/glamor +version=3 +ftp://freedesktop.org/pub/xorg/individual/driver/ glamor-egl-(.*)\.tar\.gz --- glamor-egl-0.5.1.orig/debian/copyright +++ glamor-egl-0.5.1/debian/copyright @@ -0,0 +1,31 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-name: glamor +Source: http://www.freedesktop.org/wiki/Software/Glamor + +Files: * +Copyright: © 2010-2011 Intel Corporation +License: MIT + +Files: debian/* +Copyright: 2013 Timo Aaltonen +License: MIT + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. --- glamor-egl-0.5.1.orig/debian/libglamor-dev.install +++ glamor-egl-0.5.1/debian/libglamor-dev.install @@ -0,0 +1,4 @@ +usr/include/xorg/glamor.h +usr/lib/*/libglamor.so +usr/lib/*/pkgconfig/glamor.pc +usr/lib/*/pkgconfig/glamor-egl.pc --- glamor-egl-0.5.1.orig/debian/patches/series +++ glamor-egl-0.5.1/debian/patches/series @@ -0,0 +1 @@ +fix-fdo65964.diff --- glamor-egl-0.5.1.orig/debian/patches/fix-fdo65964.diff +++ glamor-egl-0.5.1/debian/patches/fix-fdo65964.diff @@ -0,0 +1,27 @@ +commit 29c0907d413ad5be2af3480d008018cd7f5a9e85 +Author: Michel Dänzer +Date: Tue Sep 17 13:25:02 2013 +0200 +Subject: Fix RegionContainsRect test for PutImage + + The return value of RegionContainsRect() is not a boolean but an enum + indicating that the region contains the rectangle completely, partially + or not at all. We can only take the PutImage fastpath when the region + contatins the rectangle completely. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65964 + Signed-off-by: Michel Dänzer + Reviewed-by: Zhigang Gong + +diff --git a/src/glamor_putimage.c b/src/glamor_putimage.c +index 34e86a1..6567f14 100644 +--- a/src/glamor_putimage.c ++++ b/src/glamor_putimage.c +@@ -287,7 +287,7 @@ _glamor_put_image(DrawablePtr drawable, GCPtr gc, int depth, int x, int y, + box.x2 = x + w + drawable->x; + box.y2 = y + h + drawable->y; + +- if ((clip != NULL && !RegionContainsRect(clip, &box)) ++ if ((clip != NULL && RegionContainsRect(clip, &box) != rgnIN) + || gc->alu != GXcopy) { + temp_pixmap = glamor_create_pixmap(drawable->pScreen, w, h, depth, 0); + if (temp_pixmap == NULL) --- glamor-egl-0.5.1.orig/debian/source/format +++ glamor-egl-0.5.1/debian/source/format @@ -0,0 +1 @@ +1.0