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