Broadcom
DirectFB-1.4.1 Phase 3.0.1 Reference Software Release Notes
Release Date:
March 21st 2011
Version No:
Version 1.4.1
Phase 3.0.1
NOTE: This release is the same as the DirectFB-1.4.1 Phase 3.0
release, except that the packet-buffer is now enabled by default (rather than
disabled).
Overview:
DirectFB
stands for Direct Frame Buffer. "DirectFB is a thin library that provides hardware
graphics acceleration, input device handling and abstraction, integrated
windowing system with support for translucent windows and multiple display
layers, on top of not only the Linux Framebuffer
Device.
It
is a complete hardware abstraction layer with software fallbacks for every
graphics operation that is not supported by the underlying hardware. DirectFB adds graphical power to
embedded systems and sets a new standard for graphics under Linux. (see http://www.directfb.org
for more details).
Licensing
requirements:
DirectFB
is an open-source project using a LGPL license for all core software
components. Broadcom proprietary
code is part of the official release, but come under the normal Broadcom
Software License Agreement (SLA).
For customers who do have not or do not want to sign the
Documentation
Deliverables:
Description |
Filename |
Release Notes |
release_notes.html |
Users Guide |
DirectFB-1.4.1_Phase3.0_User_Guide.pdf |
DirectFB Feature List |
DirectFB-1.4.1_Phase3.0_Feature_List.pdf |
DirectFB Release Testing Spreadsheet |
DirectFB-1.4.1_Phase3.0_Release_Testing.xls |
Features in this Release:
Build System
·
Support
for building multiple version of DirectFB.
·
Support
for reducing the build time with MULTI_BUILD=y and MAKE_OPTIONS=-j? options
·
Support
for Insignia and Tacho test harnesses.
·
Support
for enabling/disabling graphics packet buffer support (default is on).
·
Support
for specifying the default IR protocol and keycodes
mapping.
Graphics Driver
·
Support
for LUT4, ALUT8, ABGR, YUY2, UYVY and AYUV pixel formats.
·
Support
for packet buffer interface to accelerate graphics operations whilst
maintaining minimal CPU load.
·
Support
for using the ZSP to performance graphics operations.
·
Support
for the SetMatrix() API call for performing
transformations and translations.
·
Support
for the FillTrapezoids() API call for
drawing trapezoids using either the PX3D or M2MC graphics cores.
·
Enable
hardware acceleration of the DrawLines() API using PX3D hardware.
·
Allow
overlapping blits and stretchblits
to be hardware accelerated.
·
Support
dual-source batch blitting using the new BatchBlit2() API.
·
Improved
tolerance between hardware and software rendering.
·
Improved
debug messages with respect to pixel formats
Systems Driver
·
Improved
performance by not setting the Nexus framebuffer if
the handle hasn’t changed.
·
DirectFB
run-time option to reduce the frequency in which the HD output is mirrored to
the SD output.
·
Improved
multi-process support whereby only the “master” DirectFB
application can create/destroy surfaces and allocate/free memory.
·
Support
the Screen Encoder APIs such as SetEncoderConfiguration().
This allows the application to not only change the output resolution,
but also the frame/field rate and scan mode.
·
Support
for additional resolutions such as 720p 24/25/30 Hz and 1080p 24/25/30 Hz.
Input Devices
·
Support
for specifying the IR protocol and key mapping at run-time using the “bcmnexus-ir-protocol”
and “bcmnexus-ir-keycodes”
run-time configuration options.
·
Support
for the Broadcom “silver” remote control that uses the NEC
protocol.
Image Provider
·
Re-factored
to use internal DirectFB APIs rather than Nexus APIs for blitting
from the decoded picture surface to the final output destination surface. This allows the Broadcom DirectFB
graphics driver to be used for performing the blit or
stretch blit operation, thus taking advantage of the
packet-buffer graphics performance increase and multi-application support.
·
Serialized
access to the Nexus ImageProvider to better support
multiple applications accessing it.
Other
·
Support
for platforms such as the BCM935251, BCM97231, BCM97342, BCM97344, BCM97346,
BCM97422 and BCM97425.
·
Support
for receiving the repeat event in DirectFB windows.
·
Better
font caching support to help reduce memory by using the “max-font-rows” and “max-font-row-width”
DirectFB config run-time option.
·
ARGB4444
and RGB16 advanced software dithering now enabled by default.
·
Platform
initialization code modified to allow processes to share the Nexus handles using
system V shared memory and using a standard “DFB_Platform_XXX()” API.
·
Support
for displaying graphics on the Video Layer.
·
Support
building DirectFB with glibc library and toolchain.
·
Support
for running OpenGL ES 2.0 application with DirectFB.
·
Support
for basic client/server Voodoo operations.
·
Support
for blue-tooth remote control handset using the BSA software library.
·
Support
dumping the raw surface image contents to a file.
Where To Start:
Read the “DirectFB-1.4.1_Phase3.0_User_Guide.pdf” to get started with understanding what DirectFB is and how to build it for your platform.
Build Instructions:
For detailed information about all available build options, please refer to “DirectFB-1.4.1_Phase3.0_User_Guide.pdf”.
For quick build instructions,
please follow the steps below:
1)
Ensure
the following environment variables have been setup:
PLATFORM,
BCHP_VER, LINUX
2)
Change
into the “/AppLibs/opensource/directfb/build/1.4.1” directory and issue
“make” followed by “make tarball”
to create a tarball that can be untared
on the target platform.
NOTE:
This will build DirectFB in single-application mode. To build in multi-application mode,
please ensure you use the “DIRECTFB_MULTI=y” flag with each
“make” command.
Special Notes:
To run a DirectFB application such as the Penguins demo (df_andi), please follow the instructions below:
1)
On
the target platform make sure you have untared the
DirectFB target platform tarball to create the
“/usr/local” directory structure. For more information about how to do
this, please refer to the “DirectFB-1.4.1_Phase3.0_User_Guide.pdf”.
2)
Make
sure the envar “gfx_heap_size”
is set to 36MB or more (e.g. export gfx_heap_size=36000000)
3)
Change
into the “/usr/local/bin/directfb/1.4”
directory and issue “./rundfb.sh install”
4)
Now
run the application you want by entering “./rundfb.sh <name of
application>” (e.g. ./rundfb.sh df_andi --dfb:res=1080i”)
NOTE1:
For the BCM935230 platform, please set the “mode” DirectFB run-time
option for a maximum of a 1366x768 graphics layer (e.g. mode=1366x768).
NOTE2:
DirectFB run-time configuration options can be passed on the command line using
the “--dfb:” option or setting the envar “DFBARGS” appropriately.