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