<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'><div class=WordSection1><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Hi,<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>I'm pleased to announce a new version of glamor project. The new version<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>is 0.4, here are the details:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>= What's New =<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>The latest version is 0.4. Here is the new features in this release:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 1. DRI2 now works well, and texture-from-pixmap also works well.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 2. Fully support glx including AIGLX, indirect glx's GL context<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; coexists with glamor's GL context safely. Thanks for Chris<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; Wilson's help to refine this function.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 3. Optimize most of the fallback path and avoid whole pixmap <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;downloading/uploading as much as possible.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 4. 1BPP picture uploading now will not fallback the whole rendering<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; path.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 5. Fully support all color formats for GLES2 port. Thanks for<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; Lipeng's contribution and testing for the GLES2 port on<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; PVR545 platform. And thanks Zhengyu to fix some PVR related problems.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 6. Fixed many of the bugs for cairo-test-suite, now we get almost<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; identical or even better result than UXA.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 7. Implemented a fbo/texture cache pool mechanism which will reduce<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; the overhead of texture/fbo destruction and creation, and bring<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; overall 15-20% performance improvement. On PVR545 platform, we<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; even get about 10x performance improvement with this feature.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>= How to Enable Glamor? =<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>To enable the Glamor, the following steps is needed:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 1. Rebuild the mesa using the parameter:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; --with-egl-platforms=x11,drm --with-gallium-drivers=&nbsp; --enable-gbm --enable-shared-glapi --enable-glx-tls<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 2. Rebuild the xf86-video-intel driver, add parameter<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; --enable-glamor<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; to enable glamor module which is embedded in intel driver.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 3. Build and install glamor source.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 4. Make sure you have the xorg configure file named glamor.conf<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; at conf/glamor.conf under the directory<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; /usr/share/X11/xorg.conf.d or /etc/X11/xorg.conf.d/. <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;Although make install will try to install that file to the correct<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; directory. But it may failed, as if you are installing the xserver<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; to a local directory, then the &quot;make install&quot; will install<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; glamor.conf to your local directory rather than the two system<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; directories. So you may need to manually copy the file to the system's <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;configuration directory. Otherwise, you will encounter segfault when<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; start the xserver. Here is the content of the glamor.conf.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp; . Section &quot;Module&quot;<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp; . Load &quot;dri2&quot; <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;. Load &quot;glamoregl&quot;<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp; . EndSection<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>The reason why we need to load dri2/glamoregl earlier is both glx-xserver<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>and glamor are a dri2 loader. And glx-xserver side has a own glapi/dispatch table <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>implementation which is a subset of the standard mesa's implementation. So if<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>the glx module is loaded earlier than dri2/glamoregl, then we will get an incomplete <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>dispatch table and everything is broken in glamor then. This is also why we need to<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>add --enable-glx-tls parameters when build mesa, as we need to keep mesa align <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>with Xserver's behaviors, xserver will enable-glx-tls by default, but mesa will not.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>After you finish all the above steps, then you can try to start x with glamor enabled<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>DDX. To make sure it's the glamor running, you can refer to Xorg.0.log, and <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>check that the Glamor is enabled if you can find the log like:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> ''__intel(0): Use GLAMOR acceleration.__''<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>= Plan =<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>We plan to release next version 0.5 at early of June. And the following major features will be added:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 1. Fully gradient optimization including linear and radial. Actually, <o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;the code is already in this release, but as it has some bugs and<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; we disable it currently. Will fix those bug and enable it at next<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; release.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 2. Large pixmap support. Currently, mesa only support 8Kx8K texture<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; size, if a pixmap has larger size, we have to store it in main<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; memory and is not efficient. This feature will tile a large<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; pixmap to a texture array.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 3. Fully trapezoid optimization. Currently, the trapezoid rendering<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; is not optimized, and it will call pixman to do the rasterization<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; and then call glamor_composite to do the following composition,<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp; and then many texture uploading overhead is triggered there.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 4. Fine tune the fbo cache mechanism.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>There is also a wiki page about glamor for your reference at:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><a href="http://www.freedesktop.org/wiki/Software/Glamor">http://www.freedesktop.org/wiki/Software/Glamor</a><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Thanks for Junyan to prepare it.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>The following changes since commit 6167738a70fce8b86190f3610da4363f11b34d5f:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp; Set glamor's initial version to 0.2.0. (2012-01-11 09:10:15 +0800)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>are available in the git repository at:<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp; . </span><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#333333'><a href="git://anongit.freedesktop.org/xorg/driver/glamor">git://anongit.freedesktop.org/xorg/driver/glamor</a> v0.4</span><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Chris Wilson (3):<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do not reduce a composite to a copy if we need to sample outside of the source<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use CLAMP_TO_BORDER in copy_n_to_n so we can sample outside of the source<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixup glx support<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Junyan He (7):<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixup For list.h change in xorg<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_utils: Add some assistant functions to compare pixmaps/pictures.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Prepare for modification of gradient using shader.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add the feature of generating linear gradient picture by using shader.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add the feature for radial gradient using shader.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fix the problem of memory leak in gradient pixmap generating.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fix the bug caused by gradient picture set the stops at the same percentage.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Li Peng (1):<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor: check driver support GEM or not<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Peng Li (1):<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_gl_dispatch: fix the dispatch initialization on GLES2.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>Zhigang Gong (93):<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add glFinish after glFlush.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Release previous textre/fb when bind a new texture to a pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rearrange data structure and remove unused fileds.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_create_picture: Fix the format matching method.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add debug message for all the uploading path.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_set_pixmap_texture/screen_pixmap: Remove useless parameters.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fbo: Introduce glamor fbo to manage all the fb/tex.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor-fbo-pool: Implement fbo cache mechanism.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor-fbo-pool: Enable to reuse different size fbo/texture.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_composite: Fix one bug when we have too more vertices.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_init: Should set gl_flavor before sub-module intialization.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Add non-Map/Unmap vertex array for GLES.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_egl: Don't call eglDestroyImageKHR directly.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_egl: Add support for the platform doesn't have gbm.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_gles2: Consolidate gles2 pixmap format readable check to one function.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor-pixmap-upload: Create a uploading fbo with a texture only.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_create_fbo: Concentrate the fbo size/depth checking.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor-fbo: Tweek the cache bucket calculation.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor-gles2: Fixup the pixmap before read back if it is not readable.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Refine CloseScreen and FreeScreen processes.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't call dixSetPrivate directly.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_eglmodule: Change module name according to normalize naming rule.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prepare_access: Don't use fbo after it was downloaded.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fill/tile: Fixed a tileX/tileY calculation bug.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_dump_pixmap: Add helper routine to dump pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_picture: Fix the wrong order of header file.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_pixmap: Should bind unpack buffer to 0 after the uploading.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GLX: Enable glx support.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_tile/composite: Modify fs to re-calculate texture coords.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Only recalculate texture for repeat case.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fbo: Fix a bug when create No gl FBO pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_copyarea: Don't use GL_CLAMP_TO_BORDER when GLES2 enabled.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For DRI swap buffers.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bump version to 0.3.1 for the new swap buffer API.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configure.ac: Let's enable the AM_MAINTAINER_MODE.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fill: Should restore alu to GXcopy.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fbo: Added one macro to disable fbo cache.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Disable gradient shader conversion due to bug.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_utils: Added debug function to dump depth 15/16 pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gles2: Fixed color conversion for the formats except 1555 and 2101010.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gles2: Added 1555/2101010 formats support.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_putimage: Reuse the function in pixmap.c to do the uploading.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_set_alu: Fallback for non GXcopy ops with GLES2.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; render: Enable more componentAlpha support.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getimage: Enable getimage by default.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_set_alu: Added GXclear support at glamor_solid.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glyphblt/polyops: Use miFunctions by default.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_color_convert: Let the caller to provide destination buffer.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_es2_pixmap_read_prepare: Just prepare the required region.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_download_sub_pixmap_to_cpu: New function to download subregion.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fallback_optimize: Prepare for downloading/uploading subregion.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_polyfillrect: Optimize fallback path.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_polyfillrect: Fixed a potential bug if fallback at glamor_fill.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_getimage: Use glamor_download_sub_pixmap_to_cpu to get image.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_pixmap_upload_texture: Support to upload a sub region of data.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_upload/download: fix 1bpp bug.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_polylines: Don't fallback for non-solid fill.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_pixmap_ensure_fbo: Should allocate tex if we don't have one.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_gl: Use GL_ALPHA for depth 8 pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Don't need to set GL_PACK_ROW_LENGTH/GL_UNPACK_ROW_LENGTH.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_pixmap_priv: Always return a valid private pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed a unbalanced glamor_put_dispatch.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_putimage: Reuse copy area to do the clipped copy.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed a stride problem for textured_drm pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_put_sub_pixmap: Change to use glamor_upload_sub_pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Don't download whole picture when fallback.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;glamor_getspans: Reuse glamor_download_sub_pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; code clean up.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_setspans: Reuse glamor_upload_sub_pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_upload_pixmap: Use glTexImage2D for a fully update.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pending_op: Remove the pending operations handling.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;glamor_getimage: Don't fallback to miGetImage.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed one potential texture size mismatch problem.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_putimage: Optimize for direct uploading and fallback path.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gradient: Disable gradient for gles2.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disable A8 texture format for GLES2.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_copyarea: Don't access a DRM only pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gradient: Don't need fixup flag when creating pixmap.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render.c: Fixed repeatPad and repeatRelect.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed a1 bug.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_fbo: Added a threshold value for the fbo cache pool.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Have to use eaxct size pixmap for transformation.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_copyarea: Return earlier if have zero nbox.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_blockhandler: Don't do glFinish every time.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; glamor_render: Fix the repeat none for GLES2.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configure: Install glamor.conf to xorg.conf.d.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Remove unecessary header file.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Added --enable-debug configuration option.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Added some copyright and author information.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed one typo bug when fixup a mask picture.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed an uninitialized problem at gradient shader functions.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fixed all unused variables warnings.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Release 0.4.<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> Makefile.am&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> README&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 24 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> ReleaseNote&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 76 ++<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> conf/Makefile.am&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 24 +<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> conf/glamor.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 +<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> configure.ac&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 84 ++-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/Makefile.am&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 14 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 332 +++++---<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 172 +++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_addtraps.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 -<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_copyarea.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 179 ++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_copyplane.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 8 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_copywindow.c&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 -<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_core.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 176 +++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_debug.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 31 +<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_egl.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 332 +++++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_eglmodule.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 12 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_fbo.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 592 +++++++++++++<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_fill.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 118 ++-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_fillspans.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 23 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_getimage.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 88 +--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_getspans.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 74 +--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_gl_dispatch.c&nbsp; |&nbsp;&nbsp; 62 ++-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_gl_dispatch.h&nbsp; |&nbsp;&nbsp; 20 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_glext.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 29 +<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_glyphblt.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 43 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_glyphs.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 10 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_picture.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 57 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_pixmap.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 1299 ++++++++++++++++++----------<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_polyfillrect.c |&nbsp;&nbsp; 32 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_polylines.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 14 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_polyops.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 72 +--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_priv.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 348 ++++++---<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_putimage.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 202 ++---<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_render.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 2118 ++++++++++++++++++++++++++++++++++++++++++---<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_setspans.c&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 74 +-<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_tile.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 135 ++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_triangles.c&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 -<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_utils.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 721 ++++++++++++++--<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glamor_window.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 4 -<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> src/glapi.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 121 +++<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> 41 files changed, 5939 insertions(+), 1801 deletions(-)<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> create mode 100644 ReleaseNote<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> create mode 100644 conf/Makefile.am<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> create mode 100644 conf/glamor.conf<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> create mode 100644 src/glamor_fbo.c<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'> create mode 100644 src/glapi.h<o:p></o:p></span></p><p class=MsoNormal align=left style='text-align:left;text-autospace:none'><span lang=EN-US style='font-size:11.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p></div></body></html>