How to select the Version of OpenCL device? - opencl

I have a little doubt about my OpenCL's Version. As the properties show in VS:
enter image description here
Is the OpenCL version 2.0 selected automatically, or we still have to do something to select one of the version (like 1.2 of 2.0) ?

All of the OpenCL 2.0 runtime APIs will be available if your device supports OpenCL 2.0, but if you want to use OpenCL 2.0 features inside your kernels you will need to explicitly opt-in by passing –cl-std=CL2.0 to clBuildProgram().

Related

QT installation - OpenGL (No ANGLE)

I have installed the last version of QT but it seems that this one contains some DirectX calls, so I expect that the default installer use ANGLE !
I wish to install a 100% openGL version, but I can't find one !
Any idea ?
Thx
All official binary packages are configured with
-opengl dynamic
which means that programs can either use the installed (desktop) OpenGL driver, DirectX (via ANGLE), or an OpenGL emulation in software (Mesa) as OpenGL backends. If you always want to use Desktop OpenGL, you can force this by
Setting the environment variable QT_OPENGL to desktop
Calling QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL)
See also http://doc.qt.io/qt-5/windows-requirements.html#graphics-drivers .
If you want a Qt version that only supports the Desktop OpenGL backend, you have to build Qt from sources.

Qt + VTK +Ubuntu on VirtualBox

I need to run a Qt project with VTK on Ubuntu and I'm using VirtualBox, but I have an error:
GL version 2.1 with the gpu_shader4 extension is not supported by your
graphics driver but is required for the new OpenGL rendering backend.
Please update your OpenGL driver. If you are using Mesa please make
sure you have version 10.6.5 or later and make sure your driver in
Mesa supports OpenGL 3.2.
Recent version of VTK use a new rendering backend by default. In the CMake cache file used to configure your build, the corresponding cmake variable VTK_RENDERING_BACKEND has the value "OpenGL2" which assumes a minimum OpenGL API version of 2.1. But the problem is that a vanilla installation of VirtualBox does not grant access to 3D acceleration by default as it cannot presumably infer these informations from the host system.
So I think that you have several options here depending on your needs and constraints, you could install the VirtualBox Guest Additions to enable hardware 3D acceleration, allow access to a newer version of the OpenGL API and use in the end the host to performs the requested 3D operations. You could also use a recent version of the Mesa3D library to performs the needed 3D operations on the CPU (to choose preferably if you don't have graphics hardware on the host). For a presentation of its features, you can take a look here

Webgl 2.0 unsupported in chrome

My chrome shows Webgl 2.0 - supported, but disabled in browser settings, or blocked by extensions.
I have tried
1. Use hardware acceleration in chrome://settings
2. Enabled WEBGL 2.0 in chrome://flags
3. Override software render list ..
What other option are out there to enable webgl 2.0 from browser settings?
Any help is much appreciated
It seems current ANGLE (which is OpenGL emulation using DirectX driver) does not support WebGL2 unless running on DirectX 11. You need to select a different back-end.
Open chrome://flags/ and search for "Angle". You should see an option called Choose ANGLE graphics backend
If the value you see is DirectX 9, choose OpenGL or DirectX 11 instead.
You can confirm that everything works fine by going to WebGLReport, which will also show you which driver is used and what capabilities or OpenGL extensions can be used.
Beware: depending on your graphics card and drivers you have installed it is possible Chrome will switch to a software rasterizer. In WebGLReport you will see "Major Performance Caveat: Yes" in such case and following info about the renderer:
Renderer: WebKit WebGL
Unmasked Vendor: Google Inc.
Unmasked Renderer: Google SwiftShader
You can also find some information about how Chrome is using your graphics card by opening the chrome://gpu/ page.
There was one more step I had to do to make WebGL 2 / Direct3D 11 working correctly on my computer (I am using a few years old nVidia GeForce GT 545): I had to uninstall nVidia Nsight, as it was interfering in some way with the drivers. I have seen a similar thing reported by other people nVidia forums: Failed to initialize D3D11 device ...:
Installed the nvidia drivers (without uninstalling or cleaning first) with all the extra software that comes with the driver, as "checked". Didn't reboot after installation.
Uninstalled all the extra nvidia software (3D vision, Update, HD audio etc) from Control Panel\Programs and Features. Left only the driver and PhysX.
Reboot.
Try starting Chrome with the command line flag --use-angle=gl.
It tells the ANGLE renderer to use the OpenGL backend, which may expose more features of your card than the default Direct3D9 backend. This solved the same issue for my GeForce GTX 560 Ti.

OpenGL program does not compile with QT 5.0

I followed this turial to create a very simple openGL program with QT.
I have QT 5.0. I created a new empty QT project, created all files as in the tutorial but the compilation failed. The cause is that certain methods like glShadeModel() are not recognized.
I tried include GL/glu.h (which include glShadeModel for instance) but this time there is a conflict with several openGL types. But according to the tutorial all opengl methods should be included in QtOpenGL. Maybe I have a too much recent version of QT. I'm lost.
Does anyone can help me ?
Qt5 is based on OpenGL ES 2.0, and this is a subset of desktop OpenGL, even some Qt tutorials are not adapted to this change yet. You will have to build Qt 5.0 with normal OpenGL if you wish to compile those tutorials.
i may only give you some points to check.
in .pro
*QT += opengl
*check your GPU for supporting the opengl version you are using, for example my laptop is only compatible with 2.1 opengl.
also please use "Qt" instead "QT", QT stands for quicktime by Apple.

Compiling SQLite into programs that run on Symbian 9.1 and above?

How can I use SQLite C API’s on any device running Symbian OS 9.1 or above? While it appears that 9.4 comes with SQLite built in prior versions do not. Looking at http://sourceforge.net/projects/sqlites60/ it appears that sQLite has been ported to older Symbian releases. The only problem is this code assumes you want to use SQLite with .net when I want to compile it into a .sis file and call the C API’s. Ideally I’d compile a Symbian equivalent of amalgamation.c and call the sQLite functions directly but am not sure if this is possible.
The sqlite port you linked to seems usable using the C API - there's sqlite.dll exporting the C API and `System.Data.SQLiteClient.dll exposing the .net API. It's also based on sqlite 3.5.4 which is not the most recent version. Some functionality of more recent versions may not be available.
Symbian OS 9.4 SQLite only has a custom client-server interface (RSqlDatabase and such) and does not expose the native C API. The C API is available from Symbian OS 9.5 onwards.

Resources