Util: Use Direct::String in DFBAccelerationMask_Name().
Core: Remove Util::String forward declaration, String has been moved to libdirect.
libdirect: Use __typeof__ in D_UTIL_SWAP().
Core: Add parameter to dfb_layer_region_realize() to avoid SetRegion call. Use FREEZE flag for all config changes.
sawman: Use FREEZE flag for cursor updates.
defaultwm: Use FREEZE for config of hw region.
Core: Add CSAF_CACHE_INVALIDATE and CSAF_CACHE_FLUSH.
Graphics: When in always-indirect mode and CoreGraphicsStateClient is created within dispatcher then create a renderer and use it directly.

This avoids buffering all calls via requestor interface and flushing the them via a synchronous fusion_call_execute().
Merge branch 'master' of git+ssh://git.directfb.org/git/directfb/core/DirectFB
Task: Major step forward, cache, tiles, queues, optimisations, debug tools...

API: Replace C wrappers SurfaceTask_Flush/etc... by Task_Flush/etc...

Add qid to Task. This is set during Setup of a Task being handled
by a multi core implementation that does not statically assign the
cores to the tiles, but allows any core to execute any pending Task.
This is not handled by the Task Manager, but the Task's Push()
implementation.

Add hwid to Task. This is set by or after Push() when it's decided
which core runs the Task.

Add next pointer to Task, used by Task implementations to queue up
tasks when passing the Push() implementation. Add Task::append()
to set the next pointer and assert that it is not set already.

Implement automatic set of cache flush/invalidate flags. A set of
accessors is stored that did not yet invalidate after last writer.
Flush is set by default for write access, but will be cleared when
another write task for same accessor is following. Giving the Task
implementation the chance to skip the flush at Done().

Add SurfaceTask::CacheInvalidate() and CacheFlush().

In the Task's Run() function concerning tasks running on the CPU,
CacheInvalidate() is called first.

Add Task::enableDump() to turn on log dump of the task during destruction.
This can be used for misbehaving tasks to see what happened when and
in which thread (including stack trace).

Add TASK_FLAG_NEED_SLAVE_PUSH. Task implementation indicates that
only the master Task needs the Push() call and takes care about the
slaves.

Add TASK_FLAG_LAST_IN_QUEUE. The task runner sets this flag when it
encounters the next pointer is NULL. This way the Finalise() later
in Task Manager thread (but implemented in TaskThreadsQ::Finalise)
can resume queue operation by pushing the updated next (if set).

Call Finalise() also on all slave Tasks.

Add TaskThreads and TaskThreadsQ. Convenience classes to run threads
that receive Tasks to call Run() on. The first one is a simple just
processing any pending Task in any thread. The second one takes care
that Tasks with the same qid are not run at the same time. This way
tasks from the same accessor can also use the follow flag when in tile
mode, by defining one qid per tile.

Add tiles_render to Engine Setup. This way an engine can choose to
receive the rendering calls only for the master task. It will have
to setup some tile_clip to handle in the Run() for each tile. This
is implemented by GenefxEngine now.

Make GenefxEngine require just one Task's rendering calls/buffer and
apply tile clip on the fly in each of the tile's task's Run().

In GenefxEngine::SetState() keep modified flags and emit only those
state entities that are required.

Add SimpleTask convenience class to register any Run function pointer
(optionally Push) wrapped into a Task.

Avoid fusion shm allocation by replacing the FusionVector of read tasks
in surface allocation by an std::list.

Four different debugging options (compile time) in src/core/Task.h.

Set fusion_config->skirmish_warn_on_thread to print a warning when
anyone calls fusion_skirmish_prevail() within ultra-high response
Task Manager thread.

More C wrappers for Tasks.
x11: Change SurfaceTask_Done() to Task_Done()
dummy: Add FlipRegion() and UpdateRegion()
libdirect: Add LockWQ (mutex+waitqueue), TLSObject and Performer.
Task: Add missing Performer include.
libdirect: Fixes for TLSObject.
libfusion: Return tid of event_dispatcher_thread in single app fusion_dispatcher_tid().
Core: Fix CoreDFB_CallMode for single app with always indirect to keep calls direct if already within dispatcher.
GenefxEngine: Two fixes for recent changes. Only set 'accel' in 'set' functions. Remove debug '0&&'.
Task: Implement CoreSurface_real::PreLockBuffer2() for CPU access using sync task.
Fonts: Don't call dfb_gfxcard_flush_texture_cache() when task-manager is used.