<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BlackBerry Developer Blog &#187; GPU</title>
	<atom:link href="http://devblog.blackberry.com/tag/gpu/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Fri, 24 May 2013 15:08:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devblog.blackberry.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef0a66c09615fa946c4179662398878?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>BlackBerry Developer Blog &#187; GPU</title>
		<link>http://devblog.blackberry.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devblog.blackberry.com/osd.xml" title="BlackBerry Developer Blog" />
	<atom:link rel='hub' href='http://devblog.blackberry.com/?pushpress=hub'/>
		<item>
		<title>BlackBerry 10: Texture Compression and GPUs</title>
		<link>http://devblog.blackberry.com/2013/02/texture-compression-and-gpus/</link>
		<comments>http://devblog.blackberry.com/2013/02/texture-compression-and-gpus/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 18:13:41 +0000</pubDate>
		<dc:creator>SeanPaulT</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 10 Games]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[GPU]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=13559</guid>
		<description><![CDATA[So you have written a game and now you want to tweak, optimize and package it for BlackBerry 10? This blog post will cover some details that are important for game developers regarding chipset configurations and cellular radio variants. If you choose to use texture compression in your games, this will help you determine which [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13559&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So you have written a game and now you want to tweak, optimize and package it for BlackBerry 10? This blog post will cover some details that are important for game developers regarding chipset configurations and cellular radio variants. If you choose to use texture compression in your games, this will help you determine which vendor specific texture compression formats you should package with.</p>
<h3><strong>Device Models</strong></h3>
<p>BlackBerry 10 device models will have two different radio variants: 4G HSPA+ and 4G LTE.</p>
<h3><strong>Chipset Specifications</strong></h3>
<p>Game developers are often required to take hardware-specific features into consideration, such as CPU and GPU speeds, supported texture compression formats and display resolution. To make your life a bit easier, we are providing the following chart, showing all of the display and chipset configurations for the new BlackBerry 10 and existing BlackBerry PlayBook tablet models:</p>
<p><span id="more-13559"></span></p>
<table class="padded" border="1" align="center">
<tbody>
<tr>
<td style="border:1px solid #88758a;"><strong>Device Model + Radio Variant</strong></td>
<td style="border:1px solid #88758a;"><strong>Display + Chipset</strong></td>
</tr>
<tr>
<td style="border:1px solid #88758a;"><strong>BlackBerry 10 – Z10</strong></td>
<td style="border:1px solid #88758a;">
<ul>
<li><strong style="line-height:19px;">Display:</strong><span style="line-height:19px;"> 4.2” @ 1280&#215;768 LCD</span></li>
<li><strong style="line-height:19px;">Chipset A:</strong><span style="line-height:19px;"> TI OMAP 4470 1.5Ghz / </span><strong style="line-height:19px;">Imagination GPU</strong><span style="line-height:19px;"> PowerVR SGX 544</span></li>
<li><strong style="line-height:19px;">Chipset B:</strong><span style="line-height:19px;"> QC Snapdragon MSM8960 1.5Ghz / </span><strong style="line-height:19px;">Qualcomm GPU</strong><span style="line-height:19px;"> Adreno 225</span></li>
</ul>
</td>
</tr>
<tr>
<td style="border:1px solid #88758a;"><strong>BlackBerry PlayBook 4G + WiFi</strong></td>
<td style="border:1px solid #88758a;">
<ul>
<li><strong style="line-height:19px;">Display:</strong><span style="line-height:19px;"> 7” @ 1024&#215;600 LCD</span></li>
<li><strong style="line-height:19px;">Chipset A:</strong><span style="line-height:19px;"> TI OMAP 4460 1.5Ghz / </span><strong style="line-height:19px;">Imagination GPU</strong><span style="line-height:19px;"> PowerVR SGX 540</span></li>
</ul>
</td>
</tr>
<tr>
<td style="border:1px solid #88758a;"><strong>BlackBerry PlayBook WiFi</strong></td>
<td style="border:1px solid #88758a;">
<ul>
<li><strong style="line-height:19px;">Display</strong><span style="line-height:19px;">: 7” @ 1024&#215;600 LCD</span></li>
<li><strong style="line-height:19px;">Chipset A:</strong><span style="line-height:19px;"> TI OMAP 4430 1.0Ghz / </span><strong style="line-height:19px;">Imagination GPU</strong><span style="line-height:19px;"> PowerVR SGX 540</span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3><strong>OpenGL ES support</strong></h3>
<p>All chipsets for BlackBerry 10 will continue to support OpenGL ES 1.1/2.0 with several common extensions. There are also several vendor-specific extensions available, although aside from texture compression extensions, these are typically not required for developing a high quality game.</p>
<p>The most important thing to call out for game developers is that there are two different GPUs available across all the BlackBerry 10 and BlackBerry PlayBook models. All though the selected GPUs are on par with one another, game developers need to understand that they can create two separate BAR files on models that have different GPUs. Here is the major consideration for this:</p>
<h3><strong>Texture Compression</strong></h3>
<p>Texture compression is becoming more commonly used in mobile games since texture data often takes up a large bulk of your game assets. Not only does texture compression drastically reduce the memory footprint of your game, it can also result in significant performance gains, especially during level loading. Depending on your game title, the loss in texture quality introduced by compression may or may not be tolerable. However, for very large mobile games that will reach sizes close to or above 1GB, texture compression becomes more of a necessity.</p>
<p>Thankfully, using texture compression is quite easy! The steps required are usually as follows:</p>
<ol>
<li>Compress images offline using texture compression tools or game engines that typically includes them for all the major GPUs on the market.</li>
<li>Create a different build configuration for each target chipset that requires a different texture compression format and add the correct compressed textures to each configuration.</li>
<li>Write texture loading code to read the texture data into an OpenGL texture, passing the correct compressed texture format parameter.</li>
</ol>
<p>For a good reference of how to apply dynamic loading of textures supporting various vendor formats, check out the GamePlay 3D framework at <a href="http://www.gameplay3d.org/" target="_new">www.gameplay3d.org</a>. The Texture class, found directly in the repository at <a href="https://github.com/blackberry/GamePlay/blob/master/gameplay/src/Texture.cpp" target="_new">https://github.com/blackberry/GamePlay/blob/master/gameplay/src/Texture.cpp</a> contains code for loading such textures. The sample <i>gameplay-samples/sample06-racer</i>, also found in the repository, demonstrates how to setup your IDE project to have 2 different BlackBerry packaging outputs for different sets of compressed files.</p>
<h3><strong>Texture Compression Format and Packaging (1 or 2 BAR files)</strong></h3>
<p>Now that you are planning to consider texture compression, you need to decide which images you want to compress and what quality and format to use. You may want to avoid compressing certain textures that require higher quality, such as those used in user interfaces, fonts and main characters. For those that you do plan to compress, there are a couple common options to choose from:</p>
<table class="padded" style="border-color:#9c6267;border-width:1px;" border="1">
<tbody>
<tr>
<td style="border:1px solid #000000;"><strong>Chipset GPU</strong></td>
<td style="border:1px solid #000000;"><strong>Texture Compression Format</strong><strong>16bit &#8211; No Alpha</strong></td>
<td style="border:1px solid #000000;"><strong>Texture Compression Format</strong><strong>16/32 bit – with Alpha</strong></td>
</tr>
<tr>
<td style="border:1px solid #000000;">Imagination GPU</td>
<td style="border:1px solid #000000;">ETC1</td>
<td style="border:1px solid #000000;">PVRTC (4 formats)</td>
</tr>
<tr>
<td style="border:1px solid #000000;">Qualcomm GPU</td>
<td style="border:1px solid #000000;">ETC1</td>
<td style="border:1px solid #000000;">ATC (3 formats)</td>
</tr>
</tbody>
</table>
<h3><strong>Scenario #1: Lower Quality Compression with One Generic .BAR File</strong></h3>
<p>If you are able to use 16-bit compressed textures with no alpha and uncompressed textures for all other images, you can use the ETC1 texture compression format. This format is supported on all BlackBerry 10 and PlayBook models, meaning you need only make a single .BAR file to distribute.</p>
<h3><strong>Scenario #2: Higher Quality Compression with Two Vendor Specific .BAR Files</strong></h3>
<p>If you require higher quality compression or alpha in your compressed textures, then you must choose to use a vendor specific compression format. This means that you will need at least two different .BAR files to distribute to support all the BlackBerry 10 and PlayBook models.</p>
<h3><strong>Vendor GPU SDK’s and Texture Tools</strong></h3>
<p>Imagination PowerVR SDK with Texture Tool:</p>
<p><a href="http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp" target="_new">http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp</a></p>
<p>Qualcomm Adreno SDK with Texture Tool:</p>
<p><a href="https://developer.qualcomm.com/download/adreno-sdk.zip" target="_new">https://developer.qualcomm.com/download/adreno-sdk.zip</a></p>
<h3><strong>BlackBerry World + .BAR File Distribution</strong></h3>
<p>The developer portal for BlackBerry World will allow developers the ability to upload either a single .BAR file for each model. However, on models like the BlackBerry 10 All Touch and PlayBook shown below that have 2 GPU (<strong>Imagination GPU</strong> and <strong>Qualcomm GPU</strong>), developers may choose to upload 2 separated BAR files with different compressed textures in each. When the user downloads the game from BlackBerry World they get the appropriate BAR file for the device chipset. See BlackBerry World here:</p>
<p><img alt="" src="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic1.png?w=600" width="600" /></p>
<h3><strong>Crank up the Graphic Effects and Rendering Techniques – Now in HD…</strong></h3>
<p>BlackBerry 10 devices push it to the limits with top GPUs models supporting leading edge graphics effects and rendering techniques used in today’s mobile games. Expect to see performance increases in a magnitude of 2x-4x in both Dual Core CPUs and GPU performance making them ready for all the next wave of kick butt gaming on the platform. New BlackBerry 10 owners will love the new gaming experiences they will get on these devices with emphasis on HD gaming and great gaming hardware to support it.</p>
<p><img class="aligncenter size-full wp-image-13568" alt="" src="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic2.jpg?w=400&#038;h=200" width="400" height="200" /><br />
<img class="aligncenter size-full wp-image-13569" alt="" src="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic3.jpg?w=400&#038;h=200" width="400" height="200" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/13559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/13559/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=13559&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/02/texture-compression-and-gpus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/588de8e9ded23b503ae5fb589bf35159?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">seanpaultaylor</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic1.png?w=600" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic2.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2013/02/compgpuspic3.jpg" medium="image" />
	</item>
	</channel>
</rss>
