Unity GLES port 2012.02 "2012.02"

Milestone information

Project:
Unity GLES port
Series:
trunk
Version:
2012.02
Code name:
2012.02
Released:
 
Registrant:
Alexandros Frantzis
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon compiz-plugins-main-0.9.6+bzr20120125.2012.02.tar.bz2 (md5) compiz-plugins-main-0.9.6+bzr20120125 55
last downloaded 41 weeks ago
download icon compiz-0.9.6+bzr20120125.2012.02.tar.bz2 (md5) compiz-0.9.6+bzr20120125.2012.02 66
last downloaded 41 weeks ago
Total downloads: 121

Release notes 

* compiz-core
  - Improve GLVertexBuffer to better match current needs.
  - Implement and use GLFramebufferObject.
  - Refactor GLES2 drawing code.
  - Fix various blending related issues.
  - Port water plugin to GLES2.
* compiz-plugins-main
  - Fix drawing of grid and expo plugins.

Changelog 

View the full changelog

=================
=== compiz-core ===
=================

revno: 2904
author: Frederic Plourde <email address hidden>
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-core-gles2
timestamp: Wed 2012-01-25 18:51:46 +0200
message:
  Draw resize plugin in fullscreen mode to workaround rendering instabilities
------------------------------------------------------------
revno: 2903
author: Frederic Plourde <email address hidden>
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-core-gles2
timestamp: Wed 2012-01-25 18:51:46 +0200
message:
  Fix blending in the resize plugin
------------------------------------------------------------
revno: 2902
author: Frederic Plourde <email address hidden>
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-core-gles2
timestamp: Wed 2012-01-25 18:51:46 +0200
message:
  Workaround GL_LINE_LOOP usage in resize plugin
------------------------------------------------------------
revno: 2901
author: Frederic Plourde <email address hidden>
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-core-gles2
timestamp: Wed 2012-01-25 18:51:45 +0200
message:
  Fix compiz decorator's shadow blending
------------------------------------------------------------
revno: 2900
committer: Alexandros Frantzis <email address hidden>
branch nick: oneiric-gles2-11.12
timestamp: Tue 2012-01-17 12:24:10 +0200
message:
  kde: Explicitly use the global namespace to refer to the X11 Region type

  The introduction of KDecorationDefines::Region in recent KDE libs mandates
  that we are explicit about which Region type we are referring to.
------------------------------------------------------------
revno: 2899
committer: Alexandros Frantzis <email address hidden>
branch nick: oneiric-gles2-11.12
timestamp: Thu 2012-01-12 17:14:07 +0200
message:
  Properly initialize the GLVertexBuffer object in all rendering cases.
------------------------------------------------------------
revno: 2898
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:24:26 -0200
message:
  Remove temporary CMakeLists.txt disabling for water plugin
------------------------------------------------------------
revno: 2897
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:24:13 -0200
message:
  Conditionally rebind to oldFbo if we initially did bind scratchFbo successfully.
------------------------------------------------------------
revno: 2896
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:24:08 -0200
message:
  fix opengl plugin build issue with CFLAGSADD lacking quotes
------------------------------------------------------------
revno: 2895
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:24:03 -0200
message:
  use FBO for partial screen paints again

  Always bind the FBO for drawing and call glPaintTransformedOutput every frame.
  Readded the mask to that call so plugins know if it was a partial redraw or not.
  Also added API for plugins to get the FBO at any point, this is needed for unity
  so it can update its blur area.
------------------------------------------------------------
revno: 2894
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:59 -0200
message:
  Revert "GL_BLEND : don't assume plugins are properly managing GL_BLEND states"

  This reverts commit 9e2cfb5d90316cd45980fab989f9d7b4606cb3a5.
------------------------------------------------------------
revno: 2893
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:54 -0200
message:
  fix initial paint and fullscreen->region paint switch

  When we go from doing fullscreen paints to doing region paints there is no
  data in the framebuffer for EGL_post_sub_buffer to draw on so we get a black
  screen. This change makes us do a fullscreen paint but go through the region
  paint code path so further paints will have something to draw on. On desktop
  GL this change makes the first frame with the unityshell plugin draw correctly.
  Thanks for Frederic Plourde for almost all of this change.
------------------------------------------------------------
revno: 2892
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:45 -0200
message:
  Fix GLFramebufferObject allocation on ::outputChangeNotify too.
------------------------------------------------------------
revno: 2891
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:41 -0200
message:
  GL_BLEND : don't assume plugins are properly managing GL_BLEND states

  In fact, they don't. For example, the unityshell plugin uses a
  glEnable()... glDisable() kind of paradigm when dealing with *all*
  of the GL states (culling, stencil, blending, etc...). So assu-
  ming that blending is turned "on" by default is completely wrong
  when loading the unityshell plugin. This leads to all sorts of
  visual artefacts, window blackness, etc...

  To fix this, let's NOT assume that plugins take proper care of
  setting GL states back to there previous states when returning
  from functions.

  This fix sets appropriate GL blending before every call to
  vertexBuffer->render(...) in the openGL plugin.
------------------------------------------------------------
revno: 2890
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:37 -0200
message:
  Remove unused oldViewport variable
------------------------------------------------------------
revno: 2889
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:31 -0200
message:
  spacing fixes
------------------------------------------------------------
revno: 2888
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:04 -0200
message:
  refactor painting the screen on GLES

  Removed fullPaint option from glPaintCompositedOutput as this hook is now
  only called on fullscreen redraws. Instead of rendering partial screen updates
  to an FBO we now use EGL_NV_post_sub_buffer. This should be faster and more
  closely matches how we have to render when using desktop GL. When this
  extention is not available we now do nothing but fullscreen redraws to avoid
  the rendering issues the FBO usage were intended to solve.

  Note: This has not yet been tested on actual hardware that has the extension
  or hardware that doesn't preserve buffers by default.
------------------------------------------------------------
revno: 2887
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:23:00 -0200
message:
  readd some calls to code still needed in water

  Some calls were removed that shouldn't have been. Also refactored
  the code a bit to remove the fbo/software split as we have dropped
  the software implementation.
------------------------------------------------------------
revno: 2886
author: Travis Watkins <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:22:57 -0200
message:
  drop water fallback paths, only use FBO/shader
------------------------------------------------------------
revno: 2885
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:22:52 -0200
message:
  Enable water plugin
------------------------------------------------------------
revno: 2884
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:22:44 -0200
message:
  Port water plugin to GLES
------------------------------------------------------------
revno: 2883
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:22:37 -0200
message:
  Fix partial screen damage rendering to allow plugins to shade final composited screen.

  Partial screen damage rendering, driven in GLPrivateGLScreen::
  paintOutputs(), renders every GLwindows to an offscreen FBO
  (scratchFbo) and then renders damaged parts of this FBO to the back
  buffer. However, plugins needs a way to get access to scratchFbo
  if they want to be able to add screen-based FX on it while shading.

  This patch adds another GLScreen hookable called glPaintCompositedOutput.
  The 'bool fullRepaint' argument tells the function to whether or not
  perform a fullRepaint (useful in some situations, e.g. when
  COMPOSITE_SCREEN_DAMAGE_ALL_MASK is defined) or not (partial repaint).

  Plugins can benefit from hooking to glPaintCompositedOutput because
  they can then access scratchFbo (which should be renamed, really)
  before going to partial repaint. A plugin might then just decide to
  use scratchFbo's color_attachment in an FX shader and render that
  to the backbuffer, completely bypassing partial damage repaint.
------------------------------------------------------------
revno: 2882
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:23 -0200
message:
  GLFramebufferObject : When allocating, allow consumers to set textureData, format and type.
------------------------------------------------------------
revno: 2881
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:18 -0200
message:
  Fix GLFramebufferObject coding style
------------------------------------------------------------
revno: 2880
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:13 -0200
message:
  Get rid of irrelevant GLVertexBuffer operations when using custom shaders.

  The actual GLVertexBuffer implementation assumes we're using the
  "main" opengl shaders for drawing... Specifying the shader's
  projection and modelview matrices, as well as paintAttribs in an
  hard-coded manner in the ::render private function. Since we now
  have user plugins ported to gles, this assumption isn't true
  anymore.
------------------------------------------------------------
revno: 2879
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:09 -0200
message:
  Fix opengl plugin's GL_BLEND misusage

  GLVertexbuffer was forcing blending through a call to
  glEnable(GL_BLEND) just before rendering. This prevented
  many plugins from properly updating their custom FBOs.

  This patch removes the glVertexbuffer call to glEnable(GL_BLEND)
  and move it just after context Initialization in GLScreen.
------------------------------------------------------------
revno: 2878
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:06 -0200
message:
  Get rid of unrelevant compilation warning when #ifdef USE_GLES.
------------------------------------------------------------
revno: 2877
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:21:03 -0200
message:
  Use CompizLogMessage instead of printf
------------------------------------------------------------
revno: 2876
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:59 -0200
message:
  Fix GLWindow and GLScreen WrapableHandler 'N' template argument.

  Plugins should always derive from WrapableHandler with the correct
  'N' template argument, that is : the number of wrapped functions.
------------------------------------------------------------
revno: 2875
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:54 -0200
message:
  Set GL_TEXTURE0 as the main openGL plugin texture unit

  This patch assumes our main fragment shaders use texture unit 0 for
  sampling texture0. This lets plugins define other textures on other
  texture units without breaking texturing.

  Eventually, we'll have to come up with some kind of texture manager
  which would allow plugins to register for available texture units
  before they are allowed to use activate them.
------------------------------------------------------------
revno: 2874
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:47 -0200
message:
  Add GLVector(X,Y,Z) ctor

  The way the 'w' coordinate is currently used within GLVector is
  somewhat confusing. There seems to be undocumented assumptions
  about what type of norm GLVector::norm () computes. At the
  moment, one must set 'w' to 0.0 to get proper euclidian norm calculation.

  This patch makes 'w' defaults to 0.0f.
------------------------------------------------------------
revno: 2873
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:44 -0200
message:
  Add GLUniform per-plugin mechanism

  Currently, the openGL plugin binds the active program in GLWindow::
  glDrawTexture (). Since this is the last plugin-hookable function
  before hitting priv->vertexBuffer->render (), plugins are currently
  unable to set GL uniforms within their respective ::glDrawTexture
  callback because the main shaders are not yet compiled and bound.

  This patch adds "addUniform{...}" facilities to the GLVertexBuffer
  class. Since vertexBuffer is the only way for plugins to draw
  things, it seems reasonable to hook the uniform list directly in
  GLVertexBuffer.
------------------------------------------------------------
revno: 2872
author: Frederic Plourde <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:40 -0200
message:
  Add uniform{2i,3i,4i} support to GLProgram
------------------------------------------------------------
revno: 2871
author: Pekka Paalanen <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:34 -0200
message:
  Request to preserve contents on eglSwapBuffers ()

  Based on EGL implementation, the back buffer contents may or may not be
  preserved on eglSwapBuffers ().

  Compiz currently relies on preserving back buffer contents for
  accumulated damage based rendering updates.

  Try to set the eglSwapbuffers () behaviour to preserve back buffer
  contents.

  Signed-off-by: Pekka Paalanen <email address hidden>
------------------------------------------------------------
revno: 2870
author: Pekka Paalanen <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:30 -0200
message:
  On GLES, render partial screen damage to FBO

  EGL or GLES 2 do not have a standard way to do partial back-to-front
  copies. Unfortunately compiz relies on blitting sub-rects from back
  buffer to front buffer for updating only the damaged regions. Compiz'
  rendering does not honour damage regions, but renders all over,
  sometimes leading to visual artifacts if one simply calls
  eglSwapBuffers().

  The fix: All output rendering is diverted into a framebuffer object
  (FBO), if the FBO is successfully created. Then, only the damage regions
  are blitted to the back buffer, followed by eglSwapBuffers().

  For full screen damage, the FBO step is skipped.

  This patch fixes rendering artifacts in the scale plugin, on GLES 2.

  Signed-off-by: Pekka Paalanen <email address hidden>
------------------------------------------------------------
revno: 2869
author: Pekka Paalanen <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:26 -0200
message:
  Implement GLFramebufferObject for GLESv2

  Signed-off-by: Pekka Paalanen <email address hidden>
------------------------------------------------------------
revno: 2868
author: Pekka Paalanen <email address hidden>
committer: Ricardo Salveti de Araujo <email address hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:20:22 -0200
message:
  switcher: fix box vertices

  You cannot really draw multiple quads with GL_TRIANGLE_STRIP, so convert
  to using GL_TRIANGLES instead.

  Fixes the highlight box, previously it occluded the selected window
  thumbnail.

  Signed-off-by: Pekka Paalanen <email address hidden>
------------------------------------------------------------
revno: 2867
committer: Travis Watkins <email address hidden>
branch nick: core-oneiric.gles
timestamp: Thu 2011-10-20 00:33:04 -0500
message:
  fix up debugspew plugin for GLES2 changes
------------------------------------------------------------
revno: 2866 [merge]
committer: Sam Spilsbury <email address hidden>
branch nick: oneiric.gles
timestamp: Wed 2011-10-19 13:09:48 +0800
message:
  Merge remote tracking branch git://git.compiz.org/compiz/core gles
    ------------------------------------------------------------
    revno: 2753.35.58
    git commit: d162f6335b40eba9ca9f7fbfeda0b84de887de22
    author: Pekka Paalanen <email address hidden>
    committer: Frederic Plourde <email address hidden>
    timestamp: Mon 2011-10-17 15:06:50 -0400
    message:
      Check OES_texture_npot mipmapping in GLES2

      GLES 2 spec does not support any mipmap filters for non-power-of-two
      textures. To my understanding, the support is added by
      GL_OES_texture_npot extension.

      Do not generate mipmap levels nor use mipmap filters, if it is not
      supported:

      - add GL::textureNonPowerOfTwoMipmap flag, which gets enabled only if
        OES_texture_npot is available (EGL / GLES 2), or equals
        GL::textureNonPowerOfTwo flag for desktop OpenGL.

      - check GLTexture::mipmap () instead of opencoding something similar in
        GLTexture::enable (). All these tests are moved to GLTexture::setData
        () callers, which are supposed to determine if mipmapping the texture
        is possible.

      - all cases, that set PrivateTexture::mipmapSupported via
        GLTexture::setData () now check for all the previous conditions plus
        GL::textureNonPowerOfTwoMipmap (except TfpTexture::bindPixmapToTexture
        () which does not need it).

      This patch fixes the window thumbnails in switcher plugin for GLES 2
      platforms that do not support mipmapping NPOT textures.

      Signed-off-by: Pekka Paalanen <email address hidden>
    ------------------------------------------------------------
    revno: 2753.35.57
    git commit: 3c6b391dd476ad2c55377d72f4edefb986fb2c80
    author: Pekka Paalanen <email address hidden>
    committer: Frederic Plourde <email address hidden>
    timestamp: Mon 2011-10-17 14:59:53 -0400
    message:
      annotate: fix multiple quad rendering

      Annotate plugin attempted to render multiple quads by using
      GL_TRIANGLE_STRIP, in a single render call. This produces unwanted
      triangles.

      Convert it to assemble separate triangles.

      Signed-off-by: Pekka Paalanen <email address hidden>
    ------------------------------------------------------------
    revno: 2753.35.56
    git commit: 87a7b73ccab0e897991df04e53e59926ff7b7a99
    author: Pekka Paalanen <email address hidden>
    committer: Frederic Plourde <email address hidden>
    timestamp: Mon 2011-10-17 14:55:48 -0400
    message:
      Fix multiple quad rendering for background

      Contrary to the comment in vertexbuffer.h, the default primitive mode in
      GLVertexBuffer is GL_TRIANGLES.

      PrivateGLScreen::paintBackground () attempted to render several
      rectangles in one call, using GL_TRIANGLE_STRIP. This renders unwanted
      extra triangles.

      Convert it to assemble each rectangle from two separate triangles.
      Explicitly use the GL_TRIANGLES primitive type to avoid confusion.

      This fixes background rendering artifacts that were rarely visible.

      Signed-off-by: Pekka Paalanen <email address hidden>
    ------------------------------------------------------------
    revno: 2753.35.55 [merge]
    git commit: 5eea1ff37ecada18caabbb3a92c38f134284358f
    committer: Travis Watkins <email address hidden>
    timestamp: Tue 2011-10-11 22:35:33 -0500
    message:
      Merge branch 'master' of ssh://git.compiz.org/git/compiz/core into gles

=======================
=== compiz-plugins-main ===
=======================

revno: 51
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-plugins-main-gles2
timestamp: Wed 2012-01-25 12:39:45 +0200
message:
  grid: Ensure blending is enabled when drawing rectangles.
------------------------------------------------------------
revno: 50
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-plugins-main-gles2
timestamp: Tue 2012-01-17 12:16:39 +0200
message:
  expo: Improve glow effect rendering

  Still not completely fixed. Needs more work.
------------------------------------------------------------
revno: 49
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-plugins-main-gles2
timestamp: Mon 2012-01-16 17:35:23 +0200
message:
  expo: Correct matrix multiplication order for unprojection calculation.
------------------------------------------------------------
revno: 48
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-plugins-main-gles2
timestamp: Mon 2012-01-16 16:02:52 +0200
message:
  grid: Fix color calculations

  Calculate the pre-multiplied color values properly, by using the normalized
  floating point representation of the alpha value.
------------------------------------------------------------
revno: 47
committer: Travis Watkins <email address hidden>
branch nick: compiz-plugins-main
timestamp: Thu 2011-10-20 03:48:04 -0500
message:
  add code from GLES2 port

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.