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