I'm not a OpenGL guru, but aren't OpenGLES a subset of OpenGL? Actually what I've seen is that broadcom provides EGL, OpenGLES and OpenVG libraries and the can render only to framebuffer. Opensource driver instead, but I can be wrong, should be able to render only to X11 windows via OpenGL (or OpenG...
I had success in compiling and then modifying the omxplayer for my purposes. It is the best way just because a lot of the burden is already done (read: handling OMX components together). I studied a lot the code of the omxplayer, yet some parts are obscure to me (no comments at all), and OMX compone...
Yes, I guessed it after. Actually I wan't corrupting the pAppPrivate field deliberately, it was a side effect of ilclient_get_input_buffer() calls. At last I had to tweak ilclient library to add a memset() call to clear the buffers in ilclient_enable_port_buffers() function, right after the vcos_mal...
It removed the "corrupt" message. About the "ilin buffer", it was an issue with ilclient library: I used ilclient_get_input_buffer() function to get the buffers to clean them *before* the actual audio_render callback. This caused some issues to ilclient library that refused to free all the buffers a...
Hello all, I'm working on an self-made audio engine which decodes/mixes multiple samples in realtime via software using the ARM. I have solved all my problems excepts those regarding the interface to the RPi audio hardware. I have to use the OMX audio_render component because I don't (and can't) hav...
I know the GPU is quite old now and a bit obsolete, but I'd like to ask if are there any plans to support recent Vulkan APIs for VideoCore IV from broadcom?
Have you tried also -mfpu=vfp flag? RPi2 has vfp version 4 (with neon too), instead Rpi1 have vfp version 2. You have to force vfp2 (enforcing -mfpu=vfp) if you want compatible code.
Maybe you have also to call eglReleaseThread() and eglTerminate() over your display handle when the process is going to terminate. I found myself that eglTerminate() removes a lot of garbage, leaving the videocore memory heap as clean as it was before. Don't forget to call eglInitialize() at the beg...
Hello, I see there is a WFC directory inside /opt/vc/include, I suppose this is an implementation of Khronos OpenWF compositing specifications and it should do the same work as dispmanx, but at least it has should have a documented API. I'd like to play with it, is there a place where I can find som...
Hello all, I was wondering about all the include files in /opt/vc/include/interface/vcos. I read something and I figured they can create realtime threads, interact with the realtime OS of the videocore chip and some other magical things I'd like to understand :) Is there any documentation, tutorials...
The library you linked is useful to decode a JPEG image using the GPU, but it doesn't look to me that it shows anything on screen. You could use it just for hardware decoding. To display something on screen, you have to use EGL and OpenVG, if you want accelerated GPU features, or use the framebuffer...
Because a reboot doesn't solve the issue. Soft rebooting (without power cycling) leave the USB stick non accessible.
A full power cycle instead restores the USB stick functionality.
Hi all, is it possible, from the raspbian command line, to do a full power cycle of the raspberry USB hub/port? I have some raspberry in a remote position with a USB stick attached to them. Sometimes, maybe because of short power failures, the USB stick detatches or goes into inconsistent state, dis...
I went deeper into driver code, but could not understand how EGL do vsync. The approach I described in the first post didn't work.
I'll try your code as soon as I can, I hope it works as expected in my project too.
To me, as far as I remember tvservice -e always did the job fine, but I never stressed it so much (occasionally switch from 1080p to 720p and viceversa)
Maybe you were just experiencing some sort of heavy memory fragmentation. My project uses lots of small buffers (rendered glyph images) and now I have 31 different free memory blocks in my heap, ranging from 48 bytes to 130 megabytes. I guess you know, but "vcdbg reloc" shows the current heap status...
You could use the GPU via openGL ES to do all the hard stuff. 1) Render the bitmap font into a texture 2) Load texture into GPU. 3) Load a vertex shader that will transform the area of the texture containing a letter into a position along the curve for the tuning dial. 3)For each letter to be displ...
Hello again, During the experimentation with concurrent eglSwapBuffers() from different threads, I discovered the eglSwapInterval() method that allows the eglSwapBuffers() calls to return immediately and not wait for vsync (which is the default behavior) I would like to know what is the best and mos...
Back here with some updates. I found that, in the very latest bits of code (raspbian from september 2014 + rpi-update), dispmanx offers a vc_dispmanx_vsync_callback function that registers a callback which is called on each vsync. So now my graphics threads do this in loop: 1) draw the things using ...