OpenCL... you seen this? - 7" Kindle Fire HD General

Hi guys, just alerting you to the presence of this: http://www.engadget.com/2013/01/04/opencl-mod-for-the-kindle-fire-hd/
Seems pretty good, eh? You think amazon will end up working with this? It'd be pretty awesome. :victory:

jamajenx said:
Hi guys, just alerting you to the presence of this: http://www.engadget.com/2013/01/04/opencl-mod-for-the-kindle-fire-hd/
Seems pretty good, eh? You think amazon will end up working with this? It'd be pretty awesome. :victory:
Click to expand...
Click to collapse
good

PowerVR GPU OpenCL mod for the Kindle Fire HD Series
jamajenx said:
Hi guys, just alerting you to the presence of this: http://www.engadget.com/2013/01/04/opencl-mod-for-the-kindle-fire-hd/
Seems pretty good, eh? You think amazon will end up working with this? It'd be pretty awesome. :victory:
Click to expand...
Click to collapse
jamajenx,
This is a great find! Thank you, we will have to take a peek at the code to see how we can better improve the overall PowerVR GPU Graphics performance.
We have tested Chainfire 3D Pro: https://play.google.com/store/apps/details?id=eu.chainfire.cf3d.pro&hl=en
This had a nice improvement on the overall OpenGL performance on the Kindle, give it a try. Just in case OpenCL and OpenGL is confusion to the reader, here is more information.
OpenGL (Open Graphics Library) is one of the most popular tool-sets available for graphical processing, and many computer games and CAD tools rely on it for 3-Drendering. Originally developed by Silicon Graphics in the early 1990s, OpenGL has been ported to Windows, Linux, Mac OS, and many embedded devices. On desktop computers, a modern OpenGL application consists of two parts: a host application that runs on the CPU and special-purpose routines called shaders that execute on the graphics processing unit, or GPU. In general, the CPU handles complex graphical routines such as physics and geometry and the GPU performs simple tasks like assigning positions to verticals and colors to pixels.
In contrast, OpenCL (Open Compute Language) is only a few years old and isn't nearly as well-known as OpenGL. However, it allows developers to access GPUs (and many other devices) for purposes other than graphics. Because of this general-purpose GPU (GPGPU) processing, OpenCL is frequently employed to crunch numbers at high speed, and common OpenCL applications include data sorting, statistical computation, and frequency analysis. An OpenCL application consists of a host application that runs on the CPU and general-purpose routines called kernels that can execute on any OpenCL-compliant device, including a GPU.

prokennexusa said:
jamajenx,
This is a great find! Thank you, we will have to take a peek at the code to see how we can better improve the overall PowerVR GPU Graphics performance.
We have tested Chainfire 3D Pro: https://play.google.com/store/apps/details?id=eu.chainfire.cf3d.pro&hl=en
This had a nice improvement on the overall OpenGL performance on the Kindle, give it a try. Just in case OpenCL and OpenGL is confusion to the reader, here is more information.
OpenGL (Open Graphics Library) is one of the most popular tool-sets available for graphical processing, and many computer games and CAD tools rely on it for 3-Drendering. Originally developed by Silicon Graphics in the early 1990s, OpenGL has been ported to Windows, Linux, Mac OS, and many embedded devices. On desktop computers, a modern OpenGL application consists of two parts: a host application that runs on the CPU and special-purpose routines called shaders that execute on the graphics processing unit, or GPU. In general, the CPU handles complex graphical routines such as physics and geometry and the GPU performs simple tasks like assigning positions to verticals and colors to pixels.
In contrast, OpenCL (Open Compute Language) is only a few years old and isn't nearly as well-known as OpenGL. However, it allows developers to access GPUs (and many other devices) for purposes other than graphics. Because of this general-purpose GPU (GPGPU) processing, OpenCL is frequently employed to crunch numbers at high speed, and common OpenCL applications include data sorting, statistical computation, and frequency analysis. An OpenCL application consists of a host application that runs on the CPU and general-purpose routines called kernels that can execute on any OpenCL-compliant device, including a GPU.
Click to expand...
Click to collapse
Just noticed, it says incompatible with ics, any risks from doing this on fire hd?

jamajenx said:
Just noticed, it says incompatible with ics, any risks from doing this on fire hd?
Click to expand...
Click to collapse
OH GOD OTHER MORE, chainfire 3d is compatible with kindle fire hd and some ics and jb devices!

Chainfire3D OpenGL Upgrade
jamajenx said:
Just noticed, it says incompatible with ics, any risks from doing this on fire hd?
Click to expand...
Click to collapse
jamajenx,
We have tested successfully tested Chainfire3D on the Kindle. Yes, we noticed that warning, I do not understand except to say the ugarde went well and Chainfire3D did increase the OpenGL Gaming Performance.

Related

Chainfire's Snapdragon Drivers?

http://forum.xda-developers.com/showthread.php?t=592663
do you guys think something similar will be necessary/possible for the nexus?
May or may not be necessary. I had an HTC TyTN II when HTC was refusing to put out a real gpu driver for windows mobile. It was a pain. But this being Android, I do not think that will be necessary. We will need to do some benchmarks and compare it to Windows Mobile and see if they are ballpark close. If not then we got a problem
https://www.codeaurora.org/index.php?qhep
might have some interesting stuff. They have an X driver that I havn't been able to get to build yet
The Nexus One, as shipped, includes OpenGL ES drivers that take good advantage of the GPU. Features such as the active wallpapers, homescreen app picker, Navigation in Maps, and so on make heavy use of the GPU, and the GPU is also used by SurfaceFlinger (Android's compositing engine).
Enjoy!
swetland said:
The Nexus One, as shipped, includes OpenGL ES drivers that take good advantage of the GPU. Features such as the active wallpapers, homescreen app picker, Navigation in Maps, and so on make heavy use of the GPU, and the GPU is also used by SurfaceFlinger (Android's compositing engine).
Enjoy!
Click to expand...
Click to collapse
are you suggesting that there is no need to improve the drivers like there was in the wm phones?
I can't speak for WM phones, but the state of the QSD8250 GPU driver for Linux/Android is quite good. We're working with Qualcomm to continue to improve it in future updates (software's never done), but I'm not aware of any horrible performance limitations.

Why Iphone 3G with lower processor can run better games than HTC Hero does?

As I know, IPhone 3G runs on 400 MHz processor (based on: CNet), while HTC Hero runs on 528 MHz processor, but as far as I knows, IPhone games are much more better and run smoothly, while games in Android devices like Raging Thunder 2, Super KO Boxing runs very lag in them. Can someone explain to me why?
Thanks in advance...
Most probably the dedicated/better graphic chip inside the iPhone then htc hero has. Plus, I think iPhone has programming language (C?) which is a bit faster then android's Java.
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Dan330 said:
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Click to expand...
Click to collapse
Ahhhhh I get it..... It make sense, Thanks for the answer.
There are three reasons:
1) The iPhone CPU has a built-in Floating Point Unit (FPU), whereas the hero CPU doesn't. This means that when doing mathematics involving real numbers with a decimal point (e.g. numbers like 1.23, 3.14159, rather than integer numbers like 1, 73 and 492363), the iPhone is considerably faster, probably by an order of magnitude. 3D games make a lot of use of that kind of mathematics.
2) iPhone programs are compiled to run directly on the iPhone's CPU, whereas Android programs compiled to run on a Java Virtual Machine, which in turn runs on the Hero's CPU. This extra level of indirection means that the programs run maybe 5 - 10 times as slowly as they could if they ran directly on the CPU.
3) The iPhone has a more powerful GPU (Graphics Processing Unit) - this means that it is capable of drawing more things to the screen in one frame than the Hero is.
all android phones dont have much internal storage so limates games
Sent from my aHero using the XDA mobile application powered by Tapatalk
Dan330 said:
yes.. maybe to better graphics chip...
but I think... it has to do with ... ability to program to 1 hardware!!!!! NO surprises!
iphone OS is on ... one phone!!!
android is on so many different phones with different features and hardware and limits and powers.
if you are a programmer... looking to develop a new game of yours...
On the iphone, you know exactly what to expect and how to make your game perform to the best it can.
Now, try to imagine developing the same game for android. You have to keep in mind all the different phones..size screens, screen techs, graphic chips, CPUs, memory size, keyboard or no keyboard, trackball, optical ball, Dpad, etc etc etc... this list can drive you crazy!!!! what do you do?? You have to make decision at each turn, what you can program for; what you have to not support.
Click to expand...
Click to collapse
Java was supposed to be platform independand(spelling) in the beginning... oh well... the wonders of theory vs reality..
Most laggy games are laggy because of bad programming.
This can be observed in things like... 2 games/apps with similar graphics where 1 is not laggy and the other is. I've experienced this quite lot. You can make decent games with Java, especially in 3d, since it just calls "native" OpenGLES functions and doesn't have to do the rendering. If you need an extra boost you can make native libraries and supply them with your app... Of course you lose a bit of platform independence, but it's not a big deal and a mere cross compilation of that library away from porting an app to a new device with different processors.
PlanetTimmy said:
2) iPhone programs are compiled to run directly on the iPhone's CPU, whereas Android programs compiled to run on a Java Virtual Machine, which in turn runs on the Hero's CPU. This extra level of indirection means that the programs run maybe 5 - 10 times as slowly as they could if they ran directly on the CPU.
Click to expand...
Click to collapse
I think that's not the problem behind this. You can write critical code in NDK so you can achieve performance.. There's a lot of videos with motorola droid/milestone games. And they are working great.
http://www.youtube.com/watch?v=mn-XaaQXIxw
http://www.youtube.com/watch?v=GUlsfP38lSM
http://www.youtube.com/results?search_query=quake+3+motorola&aq=f
Motorola Milestone has a powerful GPU (PowerVR) and kicksoff the latest snapdron enabled devices.
qualcomm always delivered poor performance in their soc solutions..
+ qualcom msm7200A lacks FPU ... what a shame... screw you crapcomm and htc (for using cheap hardware, such as soc, display,etc). i'm keep wondering why htc doesn't lunch a true super smartphone with real GPU, high quality touchscreen, etc etc. And what's strange, even if they use cheap hardware their devices are more expensive than from other manufacturers ... hahaha

Ice Cream Sandwich hardware acceleration?

After looking through engadgets live blog there was no mention of hardware acceleration being added to android 4.0. With that being said that was my hopes of 4.0 bringing true smoothness that both ios and WP7 have been having all along. Now i know there is 3d animation ( i may be wrong ) but i know that isn't the full acceleration. Question asked does it have it?
Yes, Android 4.0 features 2D Hardware Acceleration (as originally added in Honeycomb), with some improvements.
Additionally, applications can take advantage of the GPU (Photos, Video & Gallery, for example) for on-the-fly transform effects. For example, if you perform edits in Gallery to a photo, it's actually loaded as a texture in OpenGL, and the "effects", or transforms, are applied leveraging the GPU to vastly improve performance.
Likewise, the panoramic "stitching" is GPU accelerated, and video capture (compression) and streaming (transformations, such as silly faces) are GPU accelerated.
It remains to be seen if the GPU is being used for other aspects of the OS, for example, being leveraged by the browser to assist in webpage rendering, etc. However, even as it is right now, it's a massive step up in quality and performance, and should facilitate wonderful UI/UX experiences for ICS even on older devices, like the Evo, Nexus One, Droid X, etc.
Shidell said:
It remains to be seen if the GPU is being used for other aspects of the OS, for example, being leveraged by the browser to assist in webpage rendering, etc. However, even as it is right now, it's a massive step up in quality and performance, and should facilitate wonderful UI/UX experiences for ICS even on older devices, like the Evo, Nexus One, Droid X, etc.
Click to expand...
Click to collapse
Oh really! Are we to believe that somehow the Evo's GPU will be ICS supported for hardware acceleration? Will that require a HTC-specific ICS update, or is it workable for AOSP before HTC codes in their hardware acceleration?
thegregbradley said:
Oh really! Are we to believe that somehow the Evo's GPU will be ICS supported for hardware acceleration? Will that require a HTC-specific ICS update, or is it workable for AOSP before HTC codes in their hardware acceleration?
Click to expand...
Click to collapse
Well, it isn't really a device-specific feature.
Hardware acceleration in the UI is akin to playing a 2D game, like Angry Birds. The system is actually leveraging OpenGL to handle 'displaying', or 'rendering', the game. Likewise, the UI is 'displayed', or 'rendered', the same way.
The way this relates to Android 4.0 is like this: Hardware acceleration was added to Android in Honeycomb (3.0), and in order to take advantage of it, requires a GPU that is capable of supporting OpenGL 2.0 with drivers that are compatible with OpenGL 2.0. If you have a capable GPU with capable drivers, the OS will use the GPU to render the UI, and voila, hardware acceleration.
If any of those components are not available (or perhaps not working correctly), Android defaults to "software acceleration", which is what has always been present in Android for phones. 1.0 all the way through 2.3.7 all use software acceleration. That is, all of the UI elements are rendered by the CPU.
You've probably experienced lag thanks to this--scroll through your contacts list quickly, flip between full home screens, or load up an intensive Live Wallpaper and open your Launcher and try scrolling--you'll probably find slowdown, if not stuttering in places. This is because the CPU is doing the heavy lifting not only for the OS, but also to render the display.
By alleviating this pressure on the CPU, we free up the phone to do work it's better at handling--running the OS. Additionally, because GPUs are actually designed for rendering, they are far, far more efficient at doing so than the CPU. The result? A massive overhead reduction overall on Android on devices, that means improved performance across the board as well as a much more pleasing user experience.
This is fantastic news for devices new and old; but a real treat for those of us with older phones, as the reduced CPU overhead coupled with GPU acceleration should mean noticeable performance improvements, as well as a drastic reduction in stuttering, lag, jittery-ness in the UI, etc.
Best of all, it should be very simple to implement. Most hardware supports OpenGL 2.0 (our Evos do, for example), and most drivers for that hardware also support OpenGL 2.0 (as our Evos do), so it should really be as easy as building Android 4.0 with the appropriate drivers, and then experience the bliss of a hardware-accelerated Android for the first time.
(Note that this explanation doesn't touch on using the GPU for additional benefit, like editting photos, videos, offloading work from the CPU as I touched on above, etc.)
man that was a bunch of good info i needed +1 will be glad when our evos have that much needed acceleration
Dude Shidell thank you so much for that in depth explanation! You covered everything I could have possibly wondered about, haha. A king amongst men, and a god amongst kings, you are.
Thanks alot shidell that really helps me out alot. I just have one question, did anyone here about usb host, on 4.0?
Sent from my PC36100 using XDA App
BmW13294 said:
Thanks alot shidell that really helps me out alot. I just have one question, did anyone here about usb host, on 4.0?
Sent from my PC36100 using XDA App
Click to expand...
Click to collapse
yeah i read that the galaxy nexus was having a usb 2.0? i will check some images to see if its true
Naturally, Ice Cream Sandwich is onboard, with Google finally revealing the version number as 4.0. Other specs include an HD Super AMOLED display (1,280 x 720), a 1.2GHz dual-core processor, 5 megapixel rear camera (with LED flash), a 1.3 megapixel front-facing cam, 1080p video recording and playback, a newfangled panorama mode, a 3.5mm headphone jack and Bluetooth 3.0. You'll also find USB 2.0(right there), 802.11a/b/g/n WiFi, an embedded NFC module, accelerometer, compass, gyro, proximity sensor and even a barometer -- yeah, a barometer. Finishing things out, there's 1GB of RAM, 16 or 32GB of internal storage space and a 1,750mAh battery. info gathered from Engadget listing all the galaxy nexus specs
Happy to share information.
BmW13294 said:
Thanks alot shidell that really helps me out alot. I just have one question, did anyone here about usb host, on 4.0?
Sent from my PC36100 using XDA App
Click to expand...
Click to collapse
Yeah, Android 4.0 builds upon the USB Host support that was integrated in Honeycomb, which means it has native support for a variety of USB devices. Granted, I don't know the depth of devices or support, but it is present.
Nice explanation shi.

Dualcore processor processing

Hi,
I was wondering if the 2 CPU's are working simultaneously together? or I'st just 1?., I'm using FLEXREAPER X10 ICS 4.0.3 . Sometimes I get screen glitches .... when My tab is trying to sleep and I touched the screen. Also...when I try the benchmark it only say's the CPU1 processing speed... & etc. Also when I'm browsing in the Playstore the screen animation is a bit lag... Can some1 enlighten me...or is there an app for this? than can force 2 cpu to work all the time together.?
Yes, both cores are enabled at all times. But no, you cannot make an application use both cores unless the application was designed to do so.
FLEXREAPER X10 ICS 4.0.3 base a leak rom ICS, not a stable rom, so it has some problems.
Your benchmark is correct.
There are NOT 2 CPU's. There is only one CPU, with 2 cores. It doesn't process two applications at once, it CAN process two threads of the same application at the same time. Think of it as this: two CPUs would be two people writing on different pieces of paper.A single CPU with two cores would be one person writing with both hands at the same time. He can only write on the same piece of paper, but it's faster then it would be if he was writing with only one hand.
Note: this is not related to multi-task. Multi-tasking works based on processing a little bit of each app at a time, so altough it may seen that both are running at the same time, it is not.
Most apps are not designed to work with threads though, so there's your (actually, our) problem. But this is not an A500 problem, it applies to any multi-core processor based devices ou there (including desktops).
danc135 said:
There are NOT 2 CPU's. There is only one CPU, with 2 cores
Click to expand...
Click to collapse
Essentially true, but...
It doesn't process two applications at once
Click to expand...
Click to collapse
False. Two cores is just two CPUs on the same die.
Thanks for the response guys... I'm getting bit confused with this "multi-core processor".... I was expecting that it is fast to no lag, during browsing apps in my lib,switching application, even browsing in The PlAYSTORE". So It's correct to say that multi-core processor is a bit of a waste if an app can't use it's full/all cores potential? Also if the UI of an OS can't use all cores at the same time?
Dual Core, Dual CPU....
Not entirely, because if the kernel is capable of multi-threading, then it can use one core to run services while another is running the main application. The UI is only another application running on top of the kernel...
The only difference between a dual core Intel cpu and a dual core tegra 2 is the instruction set and basic capabilities, otherwise they can be thought of as essentially the same animal. The kernel, which is the core of the OS, handles the multi-tasking, but android has limited multi-tasking capabilities for Applications. Even so, services that run in the background are less of a hindrance on a dual core cpu than a single core one, and more and more applications are being written to take advantage of multiple cores.
Just have a bunch of widgets running on your UI, and you are looking at multi-tasking and multi-threading. Which are both better on multi-core processors.
A multiple core cpu are not more then one processor stacked on one die. They thread and load balance thru software.Applications MUST BE AWARE Of multi core cpus to take advantage of the dual cores.
A multiple Processor computer has a 3rd processor chip on the main board. this chip balances the load on hardware. this does not add over head on the processors. as on a Dual multi CORE CHIP. has a much higher load overhead.
SO Many people confuse the two. This is due to how the companies market the muticore cpu devices .
So a application that can not thread itself on a multi core chip will run in one of the cpu cores. a threaded app can well guess?
a dual Processor computer can run non multi thread aware app or program on two cores..
Its quite simply complicated..
You can throw all the hardware you want at a system. In the end, if the software sucks (not multi-threaded, poorly optimized, bad at resource management, etc...), it's still going to perform bad.
Dual core doesn't mean it can run one applicaton at twice speed, it means that it can run two applications at full speed, given that they're not threaded. Android's largely meant to run one application foregrounded, and since they can't magically make every application multi-threaded, you won't be seeing the benefits of multiple cores as much as you will on a more traditional platform.
Also, a dual-core tegra 2 is good, but only in comparison to other ARM processors (and even then, it's starting to show its age.) It's going to perform poorly compared to a full x86 computer, even one that's older.
netham45 said:
You can throw all the hardware you want at a system. In the end, if the software sucks (not multi-threaded, poorly optimized, bad at resource management, etc...), it's still going to perform bad.
Dual core doesn't mean it can run one applicaton at twice speed, it means that it can run two applications at full speed, given that they're not threaded. Android's largely meant to run one application foregrounded, and since they can't magically make every application multi-threaded, you won't be seeing the benefits of multiple cores as much as you will on a more traditional platform.
Also, a dual-core tegra 2 is good, but only in comparison to other ARM processors (and even then, it's starting to show its age.) It's going to perform poorly compared to a full x86 computer, even one that's older.
Click to expand...
Click to collapse
This is so true . With the exception of a TRUE Server dual OR Quad processor computer.. There is a special on board chip that will thread application calls to balance the load for non threaded programs and games..My first dual processor computer was a amd MP3000 back when dual cpu computers started to be within user price ranges. Most applications/programs did not multi thread .
And yes as far as computer speed and performance you will not gain any from this. but only will feel less lag when running several programs at once.a 2.8 ghz dual processor computer still runs at 2.8 not double that.
erica_renee said:
With the exception of a TRUE Server dual OR Quad processor computer.. There is a special on board chip that will thread application calls to balance the load for non threaded programs and games..
Click to expand...
Click to collapse
Actually this is incorrect. All such decisions are left to the OS's own scheduler, for multiple reasons: the CPU cannot know what kind of tasks it is to run, what should be given priority under which conditions and so on, like e.g. on a desktop PC interactive, user-oriented and in-focus applications and tasks are usually given more priority than background-tasks, whereas on a server one either gives all tasks similar priority or handles tasks priorities based on task-grouping. Not to mention realtime operating system which have entirely different requirements altogether.
If it was left to the CPU the performance gains would be terribly limited and could not be adjusted for different kinds of tasks and even operating systems.
(Not that anyone cares, I just thought to pop in and rant a little...)
Self correction
I said a multi-core processor only runs threads from the same process. That is wrong (thanks to my Computer Architecture professor for misleading me). It can run multiple threads from different processes, which would constitute true parallel processing. It's just better to stick with same process threads because of shared memory within the processor. Every core has its own cache memory (level 1 caches), and shared, on-die level 2 caches.
It all depends on the OS scheduler, really.
With ICS (and future Android versions), I hope the scheduler will improve to get the best of multi-core.
In the end though, it won't matter if applications aren't multi-thread (much harder to code). What I mean is, performance will be better, but not as better as it could be if developers used a lot of multi-threading.
To answer hatyrei's question, yes, it is a waste, in the sense that it has too much untapped potential.

[Q] Windows 8 Tablet for decent gaming

Hello guys!
Do you know if there have been some testing on Windows 8 Tablets with gaming (yes its not out yet, but many tec sites tested it)?
Or did you tried comparable hardware on now available devices with games? I mean like crysis or medal of honour warfare 3 with minimum details / or maybe higher?
Which announced tablets would you recommend for such decent gaming?
Thanks for you infos.
Cheers and best wishes
If by "decent" you mean games that require discrete gfx, then forget it. All Win8 tabs announced thus far use either Clover Trail (Atom Z2760) w/ PowerVR, or Core CPUs w/ integrated HD4000. If you want to know how well those work for games, just look up gaming benchmarks for those respective GPU cores. Suggest perusing Anandtech, TomsHardware, or similar sites.
Games will need to be redone for tablets, even x86 games, not only to optimize for the lower GPU capability, but to also incorporate touch. "Decent games" as a definition will change over the course of next year. For current games, the answer is: none.

Categories

Resources