<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=Android_8.1_on_the_RP2</id>
	<title>Android 8.1 on the RP2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=Android_8.1_on_the_RP2"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-04-29T14:26:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id></id>
		<title>Pocchitte: /* Why Won&#039;t the Update Let Us Run All Apps That Require Android 8.1? */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T09:19:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1?&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:19, 25 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our second hurdle is that the Mali-400 series GPUs simply don&amp;#039;t offer most of the functionality that later versions of OpenGL ES (or Vulkan) expect.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Our second hurdle is that the Mali-400 series GPUs simply don&amp;#039;t offer most of the functionality that later versions of OpenGL ES (or Vulkan) expect.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Think of our GPU as a robot arm that paints cars. We own a car factory, and we bought the robot arm from an agency that also sent &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an &lt;/del&gt;operator (the device driver) along with it. But years later, various companies start making robot arms that can both paint and weld. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Now we &lt;/del&gt;want our robot arm to do that, too&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. It would make our production line go even faster&lt;/del&gt;. But the operator doesn&#039;t know anything about welding, so we can&#039;t even explain to them what we want the robot arm to do.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Think of our GPU as a robot arm that paints cars. We own a car factory, and we bought the robot arm &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(GPU) &lt;/ins&gt;from an agency that also sent &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a trained &lt;/ins&gt;operator (the device driver) along with it. But &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a few &lt;/ins&gt;years later, various companies start making robot arms that can both paint and weld. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;We &lt;/ins&gt;want our robot arm to do that, too. But the operator doesn&#039;t know anything about welding, so we can&#039;t even explain to them what we want the robot arm to do.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Someone sat down and figured out how to work the robot arm without the original operator, so now we could, in theory, train our own operator (write our own device driver) who does understand welding (later graphics languages) as well as painting. However, our robot arm (GPU) still doesn&amp;#039;t have any welding attachments. We could try to strap a welding rig to the arm (emulate the unsupported new functionality in software), but we&amp;#039;d have to pull additional workers off the line (use CPU time) to make that work. In fact, it would almost certainly take more workers to make this happen than the size of our current welding team (we&amp;#039;d end up with worse overall performance than just sticking with our existing workload split between CPU and GPU).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Someone sat down and figured out how to work the robot arm without the original operator, so now we could, in theory, train our own operator (write our own device driver) who does understand welding (later graphics languages) as well as painting. However, our robot arm (GPU) still doesn&amp;#039;t have any welding attachments. We could try to strap a welding rig to the arm (emulate the unsupported new functionality in software), but we&amp;#039;d have to pull additional workers off the line (use CPU time) to make that work. In fact, it would almost certainly take more workers to make this happen than the size of our current welding team (we&amp;#039;d end up with worse overall performance than just sticking with our existing workload split between CPU and GPU).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An updated version of Android would be like restructuring the employees at the factory. Some older employees are retired, some underperforming employees are let go, and some new people are hired. But that won&amp;#039;t change the fact that our robot arm (GPU) just wasn&amp;#039;t built to do welding (support newer graphics APIs).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An updated version of Android would be like restructuring the employees at the factory. Some older employees are retired, some underperforming employees are let go, and some new people are hired. But that won&amp;#039;t change the fact that our robot arm (GPU) just wasn&amp;#039;t built to do welding (support newer graphics APIs).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Pocchitte: /* Why Won&#039;t the Update Let Us Run All Apps That Require Android 8.1? */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T09:15:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1?&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:15, 25 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l27&quot;&gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Think of our GPU as a robot arm that paints cars. We own a car factory, and we bought the robot arm from an agency that also sent an operator (the device driver) along with it. But years later, various companies start making robot arms that can both paint and weld. Now we want our robot arm to do that, too. It would make our production line go even faster. But the operator doesn&amp;#039;t know anything about welding, so we can&amp;#039;t even explain to them what we want the robot arm to do.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Think of our GPU as a robot arm that paints cars. We own a car factory, and we bought the robot arm from an agency that also sent an operator (the device driver) along with it. But years later, various companies start making robot arms that can both paint and weld. Now we want our robot arm to do that, too. It would make our production line go even faster. But the operator doesn&amp;#039;t know anything about welding, so we can&amp;#039;t even explain to them what we want the robot arm to do.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Someone sat down and figured out how to work the robot arm without the original operator, so now we could, in theory, train our own operator (write our own device driver) who does understand welding (later graphics languages) as well as painting. However, our robot arm (GPU) still doesn&#039;t have any welding attachments. We could try to strap a welding rig to the arm (emulate the unsupported new functionality in software), but we&#039;d have to pull additional workers off the line (use CPU time) to make that work. In fact, it would almost certainly take more workers to make this happen than the size of our current welding team (we&#039;d end up with worse overall performance).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Someone sat down and figured out how to work the robot arm without the original operator, so now we could, in theory, train our own operator (write our own device driver) who does understand welding (later graphics languages) as well as painting. However, our robot arm (GPU) still doesn&#039;t have any welding attachments. We could try to strap a welding rig to the arm (emulate the unsupported new functionality in software), but we&#039;d have to pull additional workers off the line (use CPU time) to make that work. In fact, it would almost certainly take more workers to make this happen than the size of our current welding team (we&#039;d end up with worse overall performance &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;than just sticking with our existing workload split between CPU and GPU&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An updated version of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;android &lt;/del&gt;would be like restructuring the employees at the factory. Some older employees are retired, some underperforming employees are let go, and some new people are hired. But that won&#039;t change the fact that our robot arm (GPU) just wasn&#039;t built to do welding (support newer graphics APIs).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;An updated version of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Android &lt;/ins&gt;would be like restructuring the employees at the factory. Some older employees are retired, some underperforming employees are let go, and some new people are hired. But that won&#039;t change the fact that our robot arm (GPU) just wasn&#039;t built to do welding (support newer graphics APIs).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Pocchitte: /* Why Won&#039;t the Update Let Us Run All Apps That Require Android 8.1? */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T09:10:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1?&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:10, 25 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1? ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1? ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The version of Android that a device uses is not the only limiting factor that can prevent a particular app from running. There are other concerns such as memory, storage space, and hardware features. For many Android emulators, the RP2&#039;s GPU will still be a barrier to working.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The version of Android that a device uses is not the only limiting factor that can prevent a particular app from running. There are other concerns such as memory, storage space, and hardware features. For many Android emulators, the RP2&#039;s GPU will still be a barrier to working&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Many more advanced emulators, and especially those for more recent systems, require a GPU that supports at least OpenGL ES version 3.1&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RP2 is built around a MediaTek MT6580 system-on-a-chip. This includes a quad-core Cortex-A7 CPU and a Mali-400 series GPU.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RP2 is built around a MediaTek MT6580 system-on-a-chip. This includes a quad-core Cortex-A7 CPU and a Mali-400 series GPU.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Pocchitte: /* What to Expect */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T06:36:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;What to Expect&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:36, 25 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== What to Expect ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== What to Expect ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(WIP)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;While changing to Android 8.1 will bring some welcome new features to our RP2s, it won&#039;t be a major game-changer in terms of emulation speed, stability, or options.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Anyone who has experienced a major update with an Android device in the past will know that it can be a very mixed bag. Every new version of Android brings new features and security enhancements to your old hardware. However, those same new features and enhancements also come with new requirements and limitations for the way that apps can work. Often, when we upgraded an old device, or bought a new device, we found that some of our favorite apps stopped working properly. If the developers never updated their app to work with the new version of Android, it usually meant that we simply couldn&#039;t use that app any longer. If we were lucky, we could find an alternative.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fortunately, while Android 8.1 is newer than the Android 6.0 that the RP2 currently ships with, it&#039;s still an older version in 2020, and so most apps have already been updated to work correctly with it, if they are still actively maintained. But that doesn&#039;t mean that every Android 8.1 app will run on the RP2.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1? ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1? ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Pocchitte: /* Why Won&#039;t the Update Let Us Run All Apps That Require Android 8.1? */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T06:17:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1?&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:17, 25 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The version of Android that a device uses is not the only limiting factor that can prevent a particular app from running. There are other concerns such as memory, storage space, and hardware features. For many Android emulators, the RP2&amp;#039;s GPU will still be a barrier to working.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The version of Android that a device uses is not the only limiting factor that can prevent a particular app from running. There are other concerns such as memory, storage space, and hardware features. For many Android emulators, the RP2&amp;#039;s GPU will still be a barrier to working.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RP2 is built around a MediaTek MT6580 system-on-a-chip. This includes a quad-core Cortex-A7 CPU &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(normally clocked at 1.3GHz, but running at up to 1.5GHz in the RP2), &lt;/del&gt;and a Mali-400 series GPU &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(probably a Mali-400 MP2, but apparently unconfirmed)&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RP2 is built around a MediaTek MT6580 system-on-a-chip. This includes a quad-core Cortex-A7 CPU and a Mali-400 series GPU.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Mali-400 series of GPU designs were released in 2008, and were only ever intended to support OpenGL ES 2.0 at best. The OpenGL ES 3.1 and 3.2 specifications were published in 2014 and 2015 respectively, and Vulkan even later. While OpenGL and Vulkan are software standards (APIs), they are standards for translating from a common graphics language to actual instruction codes that can be interpreted by a particular GPU. That means that there isn&amp;#039;t a generic &amp;quot;OpenGL ES 2.0&amp;quot; app that can easily be upgraded or replaced. Instead, there is a device driver (similar to those in a desktop computer&amp;#039;s operating system) which has been written specifically to translate between OpenGL ES 2.0 and the Mali-400&amp;#039;s internal instruction set.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The Mali-400 series of GPU designs were released in 2008, and were only ever intended to support OpenGL ES 2.0 at best. The OpenGL ES 3.1 and 3.2 specifications were published in 2014 and 2015 respectively, and Vulkan even later. While OpenGL and Vulkan are software standards (APIs), they are standards for translating from a common graphics language to actual instruction codes that can be interpreted by a particular GPU. That means that there isn&amp;#039;t a generic &amp;quot;OpenGL ES 2.0&amp;quot; app that can easily be upgraded or replaced. Instead, there is a device driver (similar to those in a desktop computer&amp;#039;s operating system) which has been written specifically to translate between OpenGL ES 2.0 and the Mali-400&amp;#039;s internal instruction set.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Pocchitte: Created page with &quot;__TOC__  == Downloading the Update ==  (September 2020) The update is not yet available. According to the manufacturer&#039;s announcement, we are expecting the update to be releas...&quot;</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2020-09-25T04:38:16Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__TOC__  == Downloading the Update ==  (September 2020) The update is not yet available. According to the manufacturer&amp;#039;s announcement, we are expecting the update to be releas...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Downloading the Update ==&lt;br /&gt;
&lt;br /&gt;
(September 2020) The update is not yet available. According to the manufacturer&amp;#039;s announcement, we are expecting the update to be released by October 25th, 2020.&lt;br /&gt;
&lt;br /&gt;
== What to Expect ==&lt;br /&gt;
&lt;br /&gt;
(WIP)&lt;br /&gt;
&lt;br /&gt;
=== Why Won&amp;#039;t the Update Let Us Run All Apps That Require Android 8.1? ===&lt;br /&gt;
&lt;br /&gt;
The version of Android that a device uses is not the only limiting factor that can prevent a particular app from running. There are other concerns such as memory, storage space, and hardware features. For many Android emulators, the RP2&amp;#039;s GPU will still be a barrier to working.&lt;br /&gt;
&lt;br /&gt;
The RP2 is built around a MediaTek MT6580 system-on-a-chip. This includes a quad-core Cortex-A7 CPU (normally clocked at 1.3GHz, but running at up to 1.5GHz in the RP2), and a Mali-400 series GPU (probably a Mali-400 MP2, but apparently unconfirmed).&lt;br /&gt;
&lt;br /&gt;
The Mali-400 series of GPU designs were released in 2008, and were only ever intended to support OpenGL ES 2.0 at best. The OpenGL ES 3.1 and 3.2 specifications were published in 2014 and 2015 respectively, and Vulkan even later. While OpenGL and Vulkan are software standards (APIs), they are standards for translating from a common graphics language to actual instruction codes that can be interpreted by a particular GPU. That means that there isn&amp;#039;t a generic &amp;quot;OpenGL ES 2.0&amp;quot; app that can easily be upgraded or replaced. Instead, there is a device driver (similar to those in a desktop computer&amp;#039;s operating system) which has been written specifically to translate between OpenGL ES 2.0 and the Mali-400&amp;#039;s internal instruction set.&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s our first hurdle: that driver is closed-source. ARM wrote it and maintained every version of it themselves. There is an effort to create open-source drivers for Mali GPUs, but for the Mali-400 series, they have stopped at supporting OpenGL ES 2.0. There&amp;#039;s a reason for that.&lt;br /&gt;
&lt;br /&gt;
Our second hurdle is that the Mali-400 series GPUs simply don&amp;#039;t offer most of the functionality that later versions of OpenGL ES (or Vulkan) expect.&lt;br /&gt;
&lt;br /&gt;
Think of our GPU as a robot arm that paints cars. We own a car factory, and we bought the robot arm from an agency that also sent an operator (the device driver) along with it. But years later, various companies start making robot arms that can both paint and weld. Now we want our robot arm to do that, too. It would make our production line go even faster. But the operator doesn&amp;#039;t know anything about welding, so we can&amp;#039;t even explain to them what we want the robot arm to do.&lt;br /&gt;
&lt;br /&gt;
Someone sat down and figured out how to work the robot arm without the original operator, so now we could, in theory, train our own operator (write our own device driver) who does understand welding (later graphics languages) as well as painting. However, our robot arm (GPU) still doesn&amp;#039;t have any welding attachments. We could try to strap a welding rig to the arm (emulate the unsupported new functionality in software), but we&amp;#039;d have to pull additional workers off the line (use CPU time) to make that work. In fact, it would almost certainly take more workers to make this happen than the size of our current welding team (we&amp;#039;d end up with worse overall performance).&lt;br /&gt;
&lt;br /&gt;
An updated version of android would be like restructuring the employees at the factory. Some older employees are retired, some underperforming employees are let go, and some new people are hired. But that won&amp;#039;t change the fact that our robot arm (GPU) just wasn&amp;#039;t built to do welding (support newer graphics APIs).&lt;/div&gt;</summary>
		<author><name>Pocchitte</name></author>
	</entry>
</feed>