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