Hardware accelerated OpenGL on VxWorks 5.5 - opengl

I need to do hardware accelerated OpenGL rendering on VxWorks5.5 platform. After days of googling, I am confused about the following questions:
Stand alone Mesa3D can only do software rendering on VxWorks?( Provided that I ported Mesa3D to VxWorks)
Mesa3d combine with DRI can do hareware accelerated rendering on VxWorks? If so, Do I need an extra OpenGL hardware driver besides Mesa3d+DRI? (Mesa just provide gl APIs and DRI is the one which implement concrete hardware rendering, is that right?)
Are there any commercial solutions out there?

Is it possible for you to upgrade your vxworks? You can refer to the documents to see if it meets your requirement
If yes, From VxWorks 6.9.3.3 onwards, Mesa driver is supported for Wind Media Library also. You can find the detail info in Wind River Media Library SDK Programmer’s Guide.
If you have upgraded to VxWorks 6.9.3 Update Pack 3 or above, you should have the mesa directory in the installation :
/components/windml-5.3/src/mesa-7.6.1
For more information on the mesa driver for Wind Media Library, please refer to the Wind Media Library SDK Programmers Guide 5.3 Edition 3. Specifically Chapter 3 about building Media Library, under section 3.5.1 and Chapter 8 on OpenXX applicaitons.
Wind Media Library SDK Programmers Guide 5.3 Edition 5 has the information pertaining OpenGL ES1, OpenGL ES2, and Open VG supported only by the PowerVR drivers.

Related

Using Mesa3d with C++ in Ubuntu

I'm doing an OpenGL course but only have integrated graphics with my Intel processor. Upon doing some research it seems I can use the Mesa implementation of OpenGL with my integrated graphics.
On the installation page it says it requires python, but my course will be practicing OpenGL in a C++ environment.
I've also been looking at OpenGL tutorials online in C++, and there are many libraries used for simplifying common tasks in OpenGL. Will I be able to use these libraries with Mesa in C++, and if so, how would I approach this?

OpenGL version is few years older than laptop

When I write a java program using LWJGL, and get the OpenGL version using glGetString(GL_VERSION);. Then it displays: 2.1.0 - Build 8.15.10.1892
When I open my windows console (using the famous 'cmd' run), and I use systeminfo, it gives me not just any information about the installation date of windows.
I want to get the installation date of windows because then I know how old my laptop is. After searching the internet, I used WMIC OS GET installdate and I finally got a date: 11 November 2010.
And I assume that's true because I can remember at least the same year. And of course the device may have been some time at the factory or in the store.
When I lookup how old OpenGL 2.1.0 is, I see it's of around 2006 https://www.opengl.org/wiki/History_of_OpenGL#OpenGL_2.1_.282006.29
I'm disappointed of my OpenGL version.
I'm running 64 bit Windows 7. The device is probably at least from the end of 2010, but java displays an OpenGL version of 2006.
There are newer OpenGL versions from widely before November 2010, like version 3.0 (2008), 3.1 (2009) and 3.2 (also 2009)
Could it perhaps be that the JVM only has access to an older version of OpenGL?
Some time ago I played a CD-rom game on this laptop. I think that game would never be playable if it used OpenGL 2.1.0...
Or is this an unfair comparision?
OpenGL by itself is just a specification. The actual thing running on your computer is called an implementation which are usually part of the graphics driver. Also each OpenGL specification has very specific requirements on the implementation. And there are many things in OpenGL-3.x that simply are not supported even by hardware that were "modern" in 2010. For example Intel GPUs from around that time simply don't have everything that's required for OpenGL-3 support. Hence you'll get only OpenGL-2.x support for those and nothing more.
You could look up your laptop specification and see your gfx hardware. This will tell you which version of OpenGL your hardware supports (this information will be available from the gfx chip vendor most likely).
Using an API that supports the version of GL that you hardware does is another issue and may be with the way you have initialized or used the openGL graphics lib.
I would have thought most drivers these days support older versions. They may not support the API natively, but I would have thought provide wrappers for the functionality in the driver. Certainly I can code in OpenGL 1.1 and see the results on the same machine as an OpenGL 4.5 program (On a quadro K2200M).

Is it possible to use OpenGL 4.5 features with latest mesa libraries?

I want to use latest OpenGL features on Ubuntu. And I have installed mesa-common-dev but as far as I understand mesa does not support OpenGL 4.5 features. Also how can I use OpenGL via hardware without any API ?
Note :
glxinfo | grep "OpenGL version"
OpenGL version string: 4.5.13397 Compatibility Profile Context 15.20.1046
I want to use latest OpenGL features on Ubuntu. And I have installed mesa-common-dev but as far as I understand mesa does not support OpenGL 4.5 features.
All that matters is, that your actual OpenGL implementation supports the profile you want. The Linux ABI on OpenGL is pinned to OpenGL-1.2 (LSB5 has been released recently, so expect upcoming distribution releases to follow it, which bumped it to OpenGL-2.1).
Anything that goes beyond the ABI requirements is done through the extension mechanism. I.e. use load function pointers through …GetProcAddress and introduce new tokens with a glext.h. This processes has been repacked into OpenGL extension wrapper-loader libraries like GLEW.
The stuff mesa-common-dev provides is what's written down in the Linux LSB ABI specs… in a vendor neutral way, so you can compile your program using mesa-common-dev stuff, but it will work with the NVidia or AMD/ATI drivers as well.
Also how can I use OpenGL via hardware without any API ?
By definition you can't. OpenGL is an API. If you remove the API you remove OpenGL. If your intention is working the naked GPU on the bare metal, well, that would boil down to writing a full driver. In a few weeks/months Vulkan will be released and this gets you much closer to the GPU than OpenGL.

OpenGL - Using modern libraries

Upon successful compilation of a recent program I wrote from the openGL-book using openGL 4.0 I wasn't able to run the program due to an error that stated " error XX - unsupported hardware.."
However according to a previous question I asked if I could compile/run openGL programs on my computer I got an answer that I could:
Wiki claims you can do GL 4.0 with your HD 4000 [Graphics Chip] on Windows.
My question is - is that I am using the libraries freeglut 2.8 and GLEW 1.10 (newest versions) but the tutorial I followed used functions that came with 4.0 could the reason that my program does not run follow because I am linking modern versions of openGL libaries?
Things you have to check to run modern OpenGL:
Graphics driver: Do you have the latest and most up to date drivers?
Graphics card/chipset: Can your graphics hardware support the latest OpenGL even with its most recent drivers?
Using Proper Hardware: Some laptops come with a low powered graphics chipset and a high powered alternate graphics card/chipset. The low powered one may not support new stuff, but the high powered one definitely should. Have you instructed your computer to use the right one?
Libraries: Have you properly linked to something like GLEW that gives you the ability to use modern OpenGL?
Since you're on Windows, do note that they purposefully don't give you preinstalled access to modern OpenGL, so you have to do it yourself. Usually that just means checking your drivers and downloading GLEW.
From your error message, it looks like your graphics drivers aren't up to date or the graphics card/chipset/whatever you're using doesn't support the OpenGL version you want.

OpenGL 1.5 or higher needed by exe file that uses cocos2d-x. How to make it work without video card?

I tried to build sample projects in cocos2d-x. When I run the exe files, there's a pop window that tells me that OpenGL 1.5 or higher is needed and I should update my drivers. Unfortunately my PC currently don't have video card. Can I upgrade the OpenGL version in my PC without buying a video card?
My PC currently uses Intel® G33/G31 Express Chipset Family.
Install the Mesa 3D Graphics Library. From the mesa3d (dot) org website, "Mesa includes a special off-screen rendering interface called OSMesa. It's unique in that the interface has no dependencies on any operating system or window system. Mesa's off-screen rendering interface is quite simple. Documentation for it may be found in the Mesa README file and there is an example program in the Mesa distribution (demos/osdemo.c)."
I found out here that Intel® G33/G31 Express Chipset Family can support of up to OpenGL 1.4 only. And the only solution to my problem is to buy a video card.