doc: updated release notes for 1.0 release
[profile/ivi/layer-management.git] / RELEASE_NOTES.txt
1 Version 1.0
2 ------------------
3 This version includes the following enhancements.
4
5 Bugfixes :
6 - fixed return codes in ilmCommon/ilmClient/ilmControl
7 - fixed various logging issues
8 - fixed dependency tracking in build system
9 - fixed memory leak in notification handling
10 - fixed warnings detected by code style checking scripts
11 - fixed array handling in LayerManagerCommands
12 - fixed compilation error in TcpIpcModule on some platforms
13 - fixed input issues in LayerManagerControl
14 - fixed ilm_screenSetRenderOrder handling of empty input
15 - fixed ilm_getPropertiesOfScreen handling of invalid screen
16
17 Improvements:
18 - updated build system
19 - support for statically linked plugins
20 - "make doc" build target: generate specification document
21 - "make check-style" build target: check code style guide
22 - ilmClient API splitted into
23     - ilmCommon: lifecycle, threading, communication
24     - ilmClient: restricted API for default client applications
25     - ilmControl: full featured API for scene controlling applications
26 - LayerManagerService splitted into
27     - LayerManagerBase: base implementation, Interface declarations
28     - LayerManagerService: application using LayerManagerBase
29 - added ilm_isInitialized in ilmCommon API
30 - replaced POSIX message queues with custom thread-safe queue implementation
31 - added multi-screen support for Wayland-based renderer plugins
32 - added optimizationMode support for GLXRenderer
33 - updated ilmCommon/ilmClient/ilmControl to be thread-safe
34 - improved performance for Wayland renderer plugin with DRM backend
35 - added TextRenderer
36 - added support for optional command expressions in LayerManagerControl
37 - improved plugin loading
38 - removed LayerGroup APIs
39 - removed SurfaceGroup APIs
40 - removed deprecated function ilm_createLayer
41 - removed BeagleRenderer
42 - removed NullWindowSystem
43 - removed LayerManagerToolBox
44
45 Version 0.9.9
46 ------------------
47 This version includes the following enhancements.
48
49 Bugfixes :
50 - fixed warnings and errors with gcc 4.7.2
51 - fixed uint array handling in DbusIpcModule
52 - renamed global BIT(x) macro to resolve name collision
53
54 Improvements:
55 - added documentation for API split into ilmClient and ilmControl
56 - input support for wayland with X11, DRI and FBDEV backends
57 - support for wayland 1.0.0 API
58 - GLES multitexture support
59 - support for health monitoring based on systemd watchdog
60 - added new debugging features to LayerManagerControl
61 - improved logging configuration (set trace log level)
62 - added logging of client binary name and process id
63 - Dbus now uses private connection
64 - code refactorings for signal-, configuration- and plugin-handling
65
66 Version 0.9.8
67 ------------------
68 This version includes the following enhancements.
69
70 Bugfixes :
71 - LayerManagement does not wake up every 100 ms anymore.
72 - Serveral warning fixes for gcc 4.7.1,4.7.2
73 - Removed GLESGraphicSystem Debug spams
74 - fixed Signal Handling during shutdown
75 - fixing Thread Safe Issue inside of the libDbusIpcModule
76
77
78 Improvements:
79 - Introducing Client Notifications for Layer and Surfaces
80 - Introducing Layer and Surface Chroma Key Support
81 - Introduced process name handling for each executed command
82 - ilmClient: added check for response names
83 - ilmClient: switching to open a private dbusConnection
84 - Introducing PlugIn Base
85 - added general health monitoring and a reference implementation on Systemd
86 - added basic health monitoring on plugins
87
88 Version 0.9.7
89 -------------
90 This version includes the following enhancements.
91
92 Bugfixes :
93
94 - fixes link script in example applications
95 - Composition is not anymore forced for every redraw request
96 - Example Script updated
97 - ilmClient : documentation fixed
98 - fix of several compiler warnings and memory leaks
99 - fix several issues detected by coverity
100 - fixing several warnings 
101 - additional fixes inside of the reference compositor 
102 - fixes a memory leak inside of generic communicator.
103
104 Improvements:
105
106 - X11 backend for wayland
107 - DRM backend for wayland
108 - Introducing generic communication approach
109 - Introducing Communicator Reference Implementation based in tcp/ip sockets
110 - Introducing generic hw layer support
111 - Introducing default version handling
112 - Introducing default toolchain file
113 - Introducing SurfaceRemoveNativeContentCommand
114 - Introducing new InputFramework and Example Applications
115 - Profiling/Coverage options for gcc introduced
116 - New features added to MockNavigation
117 - New properties valuse added to layer/surfaceGetProperties
118 - Adding new LayerManagerControl example program
119 - Plugin will be now searched automatically in CMAKE_INSTALL_PREFIX location
120 - Redundant Texture uploads removed
121 - Activating Binary Shader support for platform dependent renderers
122 - BaseGraphicSystem and BaseWindowSystems composition methods refactored
123 - Wayland Backend is now running on wayland 0.95
124 - Log has now diagnostic callback registration support
125 - Imporving startup performance
126
127 Version 0.9.6
128 -------------
129 This version includes the following enhancements.
130
131 Bugfixes :
132
133 - removed obsolete Commands.
134 - added support for symbolic links to plugins.
135 - Bugfix in GLXGraphicSystem Context has to be activated before beginLayer
136 - Bug fixes in map/unmap window functions
137 - Communciator plugins are now started after scene provider plugins
138
139 Improvements:
140
141 - Introducing DLT binding for Logging Framework
142 - Introducing additional performance Counters
143 - First version of Rendering Plugin for Wayland is introduced
144
145 Version 0.9.5
146 -------------
147 This version includes the following enhancements.
148
149 Bugfixes :
150
151 - Compiler warnings have been removed.
152
153 - Fixed missing initialization of default values.
154
155 - EGLMockNavigation aspect ratio was hard coded, now uses
156   actual application resolution.
157
158
159 Improvements:
160
161 - Surface can be created without the native context of a
162   client application. The client can add its native content
163   later.
164
165 - Command objects have been updated. Now theres a one to one
166   relationship between API calls and Command objects.
167
168 - Build System generated header file with configuration options.
169   This replaced a series of compiler flags for defining symbols.
170
171 - Updated/added new unit tests.
172
173 - Added signal handling for clean shutdown ofLayerManagerService.
174   Now a stack trace is printed on crash.
175
176 - Build System now defaults to "release" build type.
177
178 - Logging improved.
179
180 - Introduced ServiceConnect and ServiceDisconnect. This allows
181   detection of crashed client applications.
182
183 - Renderer:
184   - Improved state handling of X11 window system.
185   - Renderer context sharing between different threads.
186   - Improved Shader handling.
187
188 - Added auto-generation feature for LayerManager design
189   document (based on doxygen and latex).
190
191
192 Version 0.9.4
193 -------------
194 This version includes the following enhancements.
195
196 Bugfixes :
197
198 - Removed Quiet Message, is not working with CMake 2.6
199
200 - Bugfix fixes issue regarding layer source transformation
201   LayerSource Width should be considered with crop amount
202   Unit Test case added
203
204 - Bugfix to establish rpm build with version tracking
205   Added newly created files to rpm
206   fix ILM VERSION for rpm, character '-' ist not allowed
207   in RELEASE variable, so now it is replaced by underscore
208
209 - LayerManagerToolBox - remove wrong parameter parse
210  
211
212 Improvements:
213
214 -   Add restrictions on adding a surface to a layer
215     This prevents:
216     1. A surface being added to multiple layers.
217     2. A surface being added to the same layer multiple times.
218 -   New Example Application(EGLX11MockNavigation) added, 
219     which emulates 3D City 
220 -   Input Events: better support of Qt: XMotionEvent need to be 
221     reported for Button1 to move sliders & scrollbars
222 -   Adding new Command to set the hardware layertype during scene
223     creation        
224
225 Version 0.9.3
226 -------------
227 This version includes the following enhancements.
228
229 Bugfixes :
230 - Bug fix in screenshot for layer & surface
231   Now a surface's screenshot will be exactly similar to the way it
232   appears on the screen currently (minus the effect of other surfaces
233   part of the same layer).
234 - Multiple Bug fixes in X11WindowSystem
235   Use SwapBuffers only if something was drawn
236   Include SwapBuffers call while calculating FPS
237   ScreenshotOfDisplay should not check for any rendering changes
238   as it will not do a SwapBuffers after screenshot. 
239 - Increase the framecounter only if the surface is rendered.
240 - Removed several warnings
241 - Fix to link the correct native graphic libraries.
242 - skip rendering of fully cropped surfaces
243 - adapt ilm client documentation
244
245 Improvements:
246 - Changing to LM_PLUGIN_DIR to LM_PLUGIN_PATH to be consitent
247 - Changing dbus service name to be genivi compliant
248 - DBUS Communicator could now run on System BUS too.
249
250
251 Version 0.9.2
252 -------------
253 This version includes the following enhancements.
254
255 Bugfixes:
256 - Fixing DBUS Communicator tests to run and compile completely
257 - Fixes source viewport rendering for layer
258 - Fixing several compiler warnings  
259 - Improved handling in case of render init failure
260 - Fixing screenshot of surface.
261 - Bug Fix for ILM command LayerAddSurface which was probably introduced during the large refactoring earlier
262 - Small fix for better error checking & cleanup when acquiring X11 visuals fails
263
264 Improvements:
265 - Moving render specific base implementations to library
266 - Add framework to support input events + X11 implementation
267 - Enhance GLX Example Application to show the input handling
268 - New Api method added, ilm_layerCreateDimension.
269 - New Messages CreateLayerWithDimension, CreateLayerFromIdWithDimension introduced
270 - Introducing new Class ViewportTransform
271 - Introducing Example Implementation for SceneProvider Feature
272 - Refactoring test framework
273 - Introducing version tracking
274 - LayerManagerToolbox can now used to take screenshots
275 - Searchpath for Layermanager Plugins is now using the environment variable
276   LM_PLUGIN_DIR. The default value is /usr/lib/layermanager
277
278
279 Version 0.9.1
280 -------------
281
282 This version includes the following enhancements.
283
284 Bugfixes:
285 - Remove spew introduced due to XDamage implementation
286 - Allocate client buffer & damage only for surfaces that belong to a renderable layer
287 - Compilation fix for DRAW_LAYER_DEBUG mode
288 - Remove redundant GL calls in EGLX11ApplicationExample
289 - Proper deinitilization of eglImage & texture handles
290 - Texture will now bind correctly.
291 - Race conditions and compositing startup fixed
292 - Unmap Windows will no longer unredirected
293 - Fixing wrong result value in ScreenshotCommand.
294 - Reset unreferenced m_pReply message
295 - Find of dbus architecture dependend files improved.
296 - Layer Should only be rendered if visible
297 - Remove apply of default values for Destination and Source Region
298 - Initialize a graphical surface with non visible
299 - Cleanup LayerManager Service at exit for a plugin initialization failure
300
301 Improvements:
302 - Improvement for handling, native X applications
303 - LayerManagerToolBox introduced
304 - Introducing default display environment, to avoid fail of service startup
305 - SceneProvider feature added to load scenes on startup
306
307 Version 0.9.0
308 -------------
309
310 This version includes the following enhancements.
311
312 - complete code refactoring, introducing new library for commands.
313 - Performance improvements XDamageSupport, only surface will be rendered which content has changed
314 - Performance improvements Surface without alpha, will be rendered without blending
315 - various stability improvements and bugfixes
316
317
318 Version 0.8.1
319 -------------
320
321 This version includes the following enhancements.
322
323 - bug fixes in X11GLESRenderer to get a clean shutdown on failure
324 - force copy introduced for X11 Pixmaps in Open GL ES 2.0 Environments
325 - CMakeLists.txt files fixed 
326
327 Version 0.8.0
328 -------------
329
330 This version includes the following enhancements.
331
332 - bug fixes in ilmClient API
333 - added getLayerIdOfScreen interface in dbus communicator and ilmClient API
334
335
336 Version 0.7.0
337 -------------
338
339 This version includes the following enhancements.
340
341 - bug fixes in GLX Renderer regarding surface destroy
342 - bug fixes in X11GLES Renderer regarding surface destroy
343
344
345 Version 0.6.0
346 -------------
347
348 This version includes the following enhancements.
349
350 - added GLX Renderer support for screen dump / surface dump / layer dump
351 - added X11GLES Renderer support for screen dump / surface dump / layer dump
352
353
354 Version 0.5.0
355 -------------
356
357 This version includes the following enhancements.
358
359 - bug fixes in ilmClient API and dbus communicator
360 - LayerManager types corrected
361 - additional Messages introduced to support dump of screen, surfaces and layer to file
362
363
364 Version 0.4.0
365 -------------
366
367 This version includes the following enhancements.
368
369 Improved and added new interfaces between Renderer and LayerManagerService.
370
371
372 Version 0.3.0
373 -------------
374
375 This version includes the following enhancements.
376
377 Build Environment changed to cmake to fulfill the gnu make process.
378
379
380 Version 0.2.2
381 -------------
382 Due to the requirements to support desktop, russelville and beagle board hardware. 
383 A new LayerManagerRenderer will be upstreamed to support the russelville hardware and typical desktop pc hardware.
384
385 This version includes the following enhancemnents
386
387 * GLXApplicationExample - Rotating triangle which is registered to the service.
388 * GLX Renderer Package to support Desktop PCs and the Russelvill Platform.
389 * Platformdependent Makefiles Extensions (LayerManagerPlatform/MakeIGMA500.defs , LayerManagerPlatform/MakeDesktop.defs)
390
391
392 Version 0.2.1
393 -------------
394 1. Minor Bugfix regarding DBUS Communicator 
395    getPorpertiesOfSurface and getPropertiesOfLayer
396    
397 2. Code Cleanup in EGLX11ExampleApplication
398
399 3. Skript GeniviDemo.sh added to run ExampleApplications out of the box 
400
401 4. LayerManagerService handling of stopping all plugins improved
402
403 5. Logging improved for several components
404
405 Version 0.2.0
406 -------------
407
408 This version consist of new features and several bugfixes :
409
410 1. C-API for the LayerManagement
411 2. API enhancements
412 3. Implementation of the open use case "Make a Screen Shot"
413 4. Example applications
414 5. Several bugfixes.
415
416 1. C-API for the LayerManagement
417
418 For better usage of the LayerManagement Service from application
419 point of view an additional C-API is implemented (see LayerManagerClient/ilmClient).
420 This API is deployed as shared libraries an can be linked to the application
421 which will controll the service. For the internal communication between the client
422 and the service D-BUS is used.
423
424 2. API Enhancements
425
426 To support hardware layers and to get a better interoperability with other applications
427 and platforms the API was extended by the following features :
428
429 * Layer and Surface and Group Ids can be applied by from the client side too.
430 * IlmMatrix class is now available in the LayerManagerUtils library, to support
431   simple 3D / 2D transformations
432
433 3. Implementation of the open use case "make a screen shot"
434
435 The use case "make a screen shot" was still open and is now implemented
436 with this release. 
437  
438 4. Example applications
439
440 Several example applications were added to demonstrate the usage and capabilities of
441 the service. 
442
443 * EGLX11ApplicationExample - Rotating triangle which is registered to the service.
444 * LayerManagementClientExample - Example for controlling the service and the rendered layers.
445 * LayerSceneDescriptionExample - Example for the definition of external layer and surface ids.
446
447 5. Several bugfixes
448
449 * Race condition during access/creation/deletion of data in layer list removed.
450 * Layer and surface compositing in GLESGraphicSystem improved
451 * Issue for handling of not applied surface in X11WindowSystem removed
452 * Stability improvements
453 * Improvement of the build environemt     
454
455 Version 0.1.0
456 -------------
457 Initial published Version.