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.
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
Release notes
* compiz-core
- Improve GLVertexBuffer to better match current needs.
- Implement and use GLFramebufferOb
- 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
=================
=== 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 KDecorationDefi
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 glPaintTransfor
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 9e2cfb5d90316cd
-------
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 ::outputChangeN
-------
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-
-------
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 glPaintComposit
only called on fullscreen redraws. Instead of rendering partial screen updates
to an FBO we now use EGL_NV_
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 glPaintComposit
The 'bool fullRepaint' argument tells the function to whether or not
perform a fullRepaint (useful in some situations, e.g. when
COMPOSITE_
Plugins can benefit from hooking to glPaintComposit
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:
GLFramebuffer
-------
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(
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->vertexBuf
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.
---
revno: 2753.35.58
git commit: d162f6335b40eba
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_
Do not generate mipmap levels nor use mipmap filters, if it is not
supported:
- add GL::textureNonP
- check GLTexture::mipmap () instead of opencoding something similar in
() callers, which are supposed to determine if mipmapping the texture
is possible.
- all cases, that set PrivateTexture:
() 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-
---
revno: 2753.35.57
git commit: 3c6b391dd476ad2
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_
triangles.
Convert it to assemble separate triangles.
Signed-
---
revno: 2753.35.56
git commit: 87a7b73ccab0e89
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
GLVertexB
PrivateGL
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-
---
revno: 2753.35.55 [merge]
git commit: 5eea1ff37ecada1
committer: Travis Watkins <email address hidden>
timestamp: Tue 2011-10-11 22:35:33 -0500
message:
Merge branch 'master' of ssh://git.
=======
=== compiz-plugins-main ===
=======
revno: 51
committer: Alexandros Frantzis <email address hidden>
branch nick: compiz-
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-
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-
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-
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.