- September 1, 2009 at 2:32 pm #29910
I’ve been looking through the OMAP35x_Graphics_SDK_3_00_00_06 and see an interesting extension called GL_IMG_texture_stream. I want to use the SGX to scale the output from an emulator (e.g. NES) to full screen. At the moment I would have to take the output from the emulator and upload into texture memory every frame.
Is there any documention on the GL_IMG_texture_stream extension? I can see three functions (from PVRTglesExt.h):
/* IMG_texture_stream */
typedef void (APIENTRY * PFNGLGETTEXSTREAMDEVICEATTRIBIVIMG)(GLint device, GLenum pname, GLint *params);
typedef void (APIENTRY * PFNGLTEXBINDSTREAMIMG)(GLint device, GLint deviceoffset);
typedef const GLubyte * (APIENTRY * PFNGLGETTEXSTREAMDEVICENAMEIMG)(GLint device);
There is an example program called gles2_texture_stream but can’t see any source code for it.
MarkSeptember 1, 2009 at 5:16 pm #33363
Mark,1. You need to update to later versions of the SDK, right now 09 should already be up on the website. You might need to register if you have not already have done so.http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_3_00/latest/index_FDS.html2. I will send you sample code to do this separately. What format does your “Output from emulator” come in – YUV, RGB, other type ? Does the format change anytime, or is it fixed once you start the application ? What resolution of the texture are we talking about ?September 2, 2009 at 12:03 pm #33364
I’ve requested the download so once that’s been cleared by customs I’ll check it out ;).
The output will be RGB and it’s size will be fixed once you start the application, as for the resolution, that will depend on the emulator. For the NES it’s 256 x 240.
I’ll have a look through the documentation and code when I get them, but are you saying that YUV texture is supported? This could be interesting for doing funky stuff with Video streams.
Below is a link to a video showing what I did in my previous company with a 2D graphics accelerator, with the SGX maybe I could do a spining video cube :D.
MarkSeptember 3, 2009 at 4:23 am #33365
Yes, there are more interesting than spinning video cubes that you can do with video texturing :). I have uploaded the sample code that exercises some of these paths in the gleslayer collaboration page at,https://gforge.ti.com/gf/project/gleslayer/scmsvn/?action=browse&path=%2Ftrunk%2FPackages%2FOMAP3_Graphics_SDK%2FSome missing portions will appear as we start supporting them in our official releases.September 17, 2009 at 12:18 pm #33366
Wow this could be exactly what I’m looking for (to do Augmented Reality on mobiles, see http://mi.eng.cam.ac.uk/~sjt59/hips.html). The big question (apart from the documentation) is does it work under symbian?
See my post in the “General Mobile Graphics” forum for more background on what I’m doing and details of what I’ve tried so far.
Cheers for any assistance,
simontaylor1 2009-09-17 12:19:31September 18, 2009 at 6:03 am #33367
Simon, there are a couple of options you have for this. You can do this under Symbian, but you can get more existing applications on other OSs.– If you have native access to the OMAP3 display planes, you can use it for blending the video and the “reality” features you overlay on top of that. But I doubt you have it, on the Symbian device you have shown in the demo.– For these class of applications, blending of multiple planes can be done in GLES itself, and a composited frame generated out of it and sent directly to display. You can do this with shaders (needs gles2.0)– You can accomplish rendering the camera stream directly without intermediate conversion steps.– If you can get hold of an OMAP3 based Beagleboard running Linux, we have a demo showcasing a similar application. I will mail you separately about that.~prabindhSeptember 18, 2009 at 10:32 am #33368
Thanks for the reply. I’d like to have something working on current mobiles, hence wanting something to work on Symbian.
I’m pretty sure there’s no native access. Writing a shader for it is a good idea, I’ve never tried that before but will give it a go.
“You can accomplish rendering the camera stream directly without intermediate conversion steps.” – That sounds perfect; how do I do that?!
I was actually planning on using a Beagleboard for development but the i8910 has a nice camera and screen already and uses pretty much the same chip. It’s unfortunate that Symbian is nowhere near as open as Linux would be. I might get myself a beagleboard anyway just for tinkering with, it seems like a great little platform for all sorts of fun hacking projects.
I look forward to the email – the best address to use is sjt59 cam ac uk
SimonDecember 4, 2009 at 3:45 am #33369
A new OMAP3 Graphics SDK release with support for allocating texture memory from user mode for the imgstream driver, and host of other new features is available at,December 30, 2009 at 4:14 am #33370
I just joined to say: Thank you very much for this, prabindh. There are many downstream who will appreciate it.January 21, 2010 at 5:34 pm #33371
I checked the Graphics SDK, it looks like it requires TI EVM. Is that possible to build it under the same hardware device but different Linux OS, like Nokia N900?
Thanks!January 22, 2010 at 2:52 am #33372
So long you can manage kernel display driver differences, you might be able to do it. There are dependencies on the memory map as well, running from user mode.January 22, 2010 at 3:26 am #33373
Thanks for your reply!
Actually I did compile the kernel module from graphics SDK successfully (pvrshm, omaplfb, bufferclass_ti). However, after installed the module, it bricked the device. To load the graphics driver (pvrshm / omaplfb), I didn’t see any complain. It caused problem only after reboot.
It’s so close. :-/