PVRTC2 texture compression on iOS - ios

Imagination Technologies released an OpenGL ES 2.0 extension called IMG_texture_compression_pvrtc2 almost five years ago that offers image quality improvements over PVRTC1 compression. A detailed article is found here,
I know that iOS support PVRTC1 compression, and it is listed in extensions on all devices. Does anyone know if Apple supports PVRTC2 or plans to in the near future? Since the extension has been out for so long, Apple recommends PVRTC over other formats, and I assume their hardware already supports, It seems like the should.
Does anyone know of any mobile platform that supports this extension? Any additional information would be helpful.

Does anyone know if Apple supports PVRTC2
Doesn't look like it.
or plans to in the near future?
You'd have to ask Apple.
Does anyone know of any mobile platform that supports this extension?
It's an IMG proprietary extension and texture format, so you'd have to try and find a non-Apple device with a recent high-end IMG GPU.
You'd probably have more luck looking at the ASTC texture format; that one is a multi-vendor extension (and mandatory in OpenGL ES 3.2 so widely supported).

Related

Does Directx11 support ASTC compressed textures?

I'm thinking of trying to use ASTC compressed textures for a multi-platform project, but haven't been able to find much documentation about whether DirectX11 supports them. If DirectX11 supports ASTC textures what is best practice for loading them?
In the Microsoft documentation for ASTC, it says right near the top:
Note ASTC is not available in the current release of the SDK.
Inspecting DXGI headers from the latest SDK, the ASTC formats in their documentation don't exist. From various press releases eg this one, it seems as though ASTC was supposed to be in DirectX 11.3 (and 12), but doesn't seem to be available yet.

Multithreading in adobe air ios?

Hi i am developing an application using adobe air for iOS using flex.
i have the user take a snapshot and my intention is to upload the photo to my api.
the problem is when compressing the byteArray and then encoding it to a base64 String to send it up the apps freezes for 1-2 minutes.
My question is: is there a way to multithread this process in adove air, so i have it going in the background ?
and from your experience does an adobe native extension use another thread on the device for itself or no, maybe i can handle the background encoding and upload in a native extension.
Thank you all.
AS3, up until recently, was entirely single threaded. As of FP11.4 and AIR 3.4, you have access to Workers, which is essentially offloading tasks to a second thread. Beta support was added to Android in 3.8 or 3.9 and I believe it is out of beta now in 13.0. Workers are not supported by iOS, though. This is, I believe, because they have to cross compile to Objective-C to support iOS at all, so their methods won't work.
You're only option is to load the processing onto an ANE, which may or may not be a good idea. ANEs are meant to behave as a bridge between AIR and native OS APIs. While this would work, I think it goes beyond the scope of what an ANE is intended for.
Unless your photos are insanely large, I would suggest just not doing compression. Resizing photos (using the BitmapData class) is fairly quick on 4S+, so I don't think that is much of an issue (4S is closing in on being 3 years old at this point. Having old hardware means things run less than ideally, so anything older will just have to accept poorer performance)
Worker Documentation

General GPU programming on iPhone [duplicate]

With the push towards multimedia enabled mobile devices this seems like a logical way to boost performance on these platforms, while keeping general purpose software power efficient. I've been interested in the IPad hardware as a developement platform for UI and data display / entry usage. But am curious of how much processing capability the device itself is capable of. OpenCL would make it a JUICY hardware platform to develop on, even though the licensing seems like it kinda stinks.
OpenCL is not yet part of iOS.
However, the newer iPhones, iPod touches, and the iPad all have GPUs that support OpenGL ES 2.0. 2.0 lets you create your own programmable shaders to run on the GPU, which would let you do high-performance parallel calculations. While not as elegant as OpenCL, you might be able to solve many of the same problems.
Additionally, iOS 4.0 brought with it the Accelerate framework which gives you access to many common vector-based operations for high-performance computing on the CPU. See Session 202 - The Accelerate framework for iPhone OS in the WWDC 2010 videos for more on this.
Caution! This question is ranked as 2nd result by google. However most answers here (including mine) are out-of-date. People interested in OpenCL on iOS should visit more update-to-date entries like this -- https://stackoverflow.com/a/18847804/443016.
http://www.macrumors.com/2011/01/14/ios-4-3-beta-hints-at-opencl-capable-sgx543-gpu-in-future-devices/
iPad2's GPU, PowerVR SGX543 is capable of OpenCL.
Let's wait and see which iOS release will bring OpenCL APIs to us.:)
Following from nacho4d:
There is indeed an OpenCL.framework in iOS5s private frameworks directory, so I would suppose iOS6 is the one to watch for OpenCL.
Actually, I've seen it in OpenGL-related crash logs for my iPad 1, although that could just be CPU (implementing parts of the graphics stack perhaps, like on OSX).
You can compile and run OpenCL code on iOS using the private OpenCL framework, but you probably don't get a project into the App Store (Apple doesn't want you to use private frameworks).
Here is how to do it:
https://github.com/linusyang/opencl-test-ios
OpenCL ? No yet.
A good way of guessing next Public Frameworks in iOSs is by looking at Private Frameworks Directory.
If you see there what you are looking for, then there are chances.
If not, then wait for the next release and look again in the Private stuff.
I guess CoreImage is coming first because OpenCL is too low level ;)
Anyway, this is just a guess

Manipulating large amounts of pixels on iOS

I need to move large amounts of pixels on the screen on an iOS device. What is the most efficient way of doing this?
So far I'm using glTexSubImage2D(), but I wonder if this can be done any faster. I noticed that OpenGL ES 2.0 does not support pixel buffers, but there seems to be a pixel buffer used by Core Video. Can I use that? Or maybe there's an Apple extension for OpenGL that could help me achieve something similar (I think saw a very vague mention about a client storage extension in one of the WWDC 2012 videos, but I can't find any documentation about it)? Any other way that I can speed this up?
My main concern is that glTexSubImage2D() copies all the pixels that I send. Ideally, I'd like to skip this step of copying the data, since I already have it prepared...
The client storage extension you're probably thinking of is CVOpenGLESTextureCacheCreateTextureFromImage; a full tutorial is here. That's definitely going to be the fastest way to get data to the GPU.
Frustratingly the only mention I can find of it in Apple's documentation is the iOS 4.3 to 5.0 API Differences document — do a quick search for CVOpenGLESTextureCache.h.

3rd-party iOS SDKs?

My team and I were just starting to get the evaluation version of AirPlay SDK up and running when their pricing structure changed dramatically, along with changing their name to Marmalade. I don't think we can afford them at this time since we just purchased a MacBook Pro and still need to pay for the Apple Developer Program and local business licensing fees.
Can you point me in the direction of any other inexpensive 3rd-party SDKs that might provide similar features? Right now, we don't care so much about compiling for other platforms - I feel like when we are ready for that we will also be ready to license Marmalade or some other SDK. I am aware of GameSalad, but I do come from a programming background and am also aware of cocos2D but was hoping for the option of 3D graphics libraries.
Depending on your 3D requirements, I would recommend cocos2d because there is an additional library in fairly early development called cocos3d, which as you'd expect, adds 3d capability to cocos2d.
May be Shiva3d http://www.stonetrip.com/.
Perhaps they will change the price because they cooperated with airplay.

Resources