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 SLA, then a “limited” release is available whereby the proprietary code is omitted, but pre-built libraries are available to still allow the user to run DirectFB on Broadcom hardware.

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 envargfx_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.