Friday, September 4, 2009

Sony Ericsson Satio™ OpenGL® ES 2.0 Support – An interview with Imagination Technologies

The Sony Ericsson Satio™ is a touchscreen phone which delivers the ultimate mobile phone multimedia experience. Satio™ runs S60 5th Edition Symbian™ OS, the basis for the upcoming Symbian Foundation platform, and features a 3.5 inch 16:9 widescreen display and 12.1 megapixel camera.

Satio™ is one of the first phones that has OpenGL® ES 2.0 implemented. To find out more, we spoke to Mike Hopkins at Imagination Technologies, the company that provides the graphics accelerator hardware inside Satio™.

Who are Imagination Technologies?

Imagination Technologies is a global leader in multimedia and communication silicon technologies. We create and license market-leading processor cores for graphics, video, multi-threaded embedded systems-on-chip (SoC) and multi-standard communications applications. These silicon intellectual property (IP) solutions for SoC are complemented by a comprehensive array of software tools and drivers as well as extensive developer and middleware ecosystems.

Which hardware does Satio™ use?

The Sony Ericsson Satio™ uses the OMAP3430 processor from Texas Instruments which includes a POWERVR SGX Family Graphics accelerator IP block licensed from Imagination Technologies.

How do I access the POWERVR SGX Accelerated Graphics?

Imagination Technologies enables developers to access its POWERVR SGX core through the industry standard OpenGL ES APIs defined by the Khronos Group.

Satio™ supports the latest OpenGL ES 2.0 as well as the existing OpenGL ES 1.1 API, which are designed to enable full-function 2D and 3D graphics on embedded systems. These APIs create a flexible and powerful low-level interface between software and graphics acceleration. OpenGL ES includes profiles for floating-point and fixed-point systems and the EGL™ specification for portably binding to native windowing systems.

Show me what OpenGL ES 2.0 can do on Satio

Here’s a video of Satio playing one of the demo presentations made by Imagination Technologies

What is the difference between OpenGL ES 1.1 and OpenGL ES 2.0?

OpenGL ES 1.1 limits graphics processing to a pre-defined set of fixed options for lighting and drawing objects. For example, there are a limited number of ways to apply an image to a 3D object to determine the overall look. With OpenGL ES 2.0 you have access to the full flexibility and programmability of shaders, which means a developer is no longer limited to a pre-defined set of fixed options. Shaders are small C-style programs, programmed using OpenGL Shading Language (GLSL), which tell the hardware in detail how to process geometry and pixels allowing the developer to give each application its own unique look and feel. With OpenGL ES 1.1 this was much more difficult and unique effects had to resort to the programmability of the CPU instead of the GPU, whereas with Open GL ES 2.0 the full power of the GPU is made available to developers.

Will my existing OpenGL ES 1.1 applications work on Satio™?

Satio™ also supports the OpenGL ES 1.1 API which means that existing ES1.1 code will work out of the box. Existing S60 5th Edition applications using OpenGL ES 1.1 or 2.0 should run without modification. If you have S60 3rd Edition applications, then from a graphics point of view there is little to do; you just need to port your code to S60 5th Edition.

Can I recompile my OpenGL ES 1.1 application to use OpenGL ES 2.0?

No, OpenGL ES 1.1 applications should be linked to the OpenGL ES 1.1 libraries. They cannot simply be recompiled to use the OpenGL ES2.0 libraries since these APIs do not offer backwards compatibility. This was a conscious choice made by Khronos to keep the OpenGL ES2.0 API as streamlined and optimal as possible for usage on low memory footprint devices such as mobile phones.

How do I get started?

The best way to get started is using the POWERVR SGX OpenGL ES1.1 or ES2.0 SDK for the Satio™ which includes examples, documentation, utility libraries and tool kits to help you get started. The examples take a tutorial-style approach taking you from the basics of initialization and drawing your first triangle to increasingly more complex effects. This approach enables both starters and experts to tap in at the right level in the series of tutorials. The tools in the SDK will help you take advantage of the hardware in the most efficient way and are there to simplify your development & optimization process with prototyping environments such as PVR Shaman, texture optimizations tools, shader compilers and analyzers and geometry optimization and export tools.

How do I achieve the best possible performance on Satio™?

Imagination’s OpenGL ES 2.0 Toolchain is recognised as the leading solution available to developers today for creating innovative embedded graphics applications.

The POWERVR SDK also includes several performance optimization documents and tools which offer extensive details and recommendations and are just a download click away

The PVR Shaman is one of the collection of utilities available to help you create exciting 3D content. PVR Shaman is an integrated shader developer environment allows for rapid prototyping of shader effects and combines the functionality of multiple POWERVR utilities:

What possibilities do you see with OpenGL ES 2.0 available on Satio™?

OpenGL ES 2.0 opens the opportunity for developers to make full use of the excellent high resolution display and touchscreen capabilities of the Satio™, with enhancements to the user interface making the phone even more easy and intuitive to use. The gaming experience can be transformed to fully engage players and 3D mapping data can be displayed in close to photo realistic quality.

Satio™ has a 12 megapixel camera, can I do something cool with such powerful camera and OpenGL ES 2.0?

Photo-browsing can easily be enhanced using OpenGL ES 2.0 to create an exciting environment when viewing an album. For instance, blurs, spirals, blends and flips can be activated as a user browses between one photo and the next. Graphics can be overlaid onto an image, either for fun or to highlight areas of interest for a work presentation. The images themselves could also be post-processed using graphics acceleration to enhance the image or add effects such as sepia coloring. Photograph and video content can also be rescaled using the POWERVR SGX core to suit the handset or external display sizes.

How do I get more help?

The Imagination POWERVRInsider program is an ecosystem set up to support developers writing applications for devices based on our IP. We currently have over 12,000 developers signed up to our program and we provide our software development kit, tools, documentation and online assistance to ensure that all applications using graphics acceleration for the Sony Ericsson Satio™ are able to make best use of the technology available within the handset.

Imagination’s Developer Technology Team is available to help you. They monitor the support forums on www.powervrinsider.com, www.khronos.org, as well as being available through email using devtech@imgtec.com.

No comments:

Post a Comment