Check version OpenGL. What is OpenGL? What gives a new version

Question: Determine the version of OpenGL


Need a code on OpenGL ES 2,
and the network is full of code for the first version
How to quickly define the version of OpenGL in the code?
black label or something you need on the first pairs

Answer: First, the VBO must use. Ie glgenbuffers, glbindbuffer, etc. Although this thing is supported from 1.5. Secondly, the shaders should use. Ie glcreateprogram, gllinkprogram, glsetshader, etc. Well, in a set with the code, there should be shaders code (although up to 3.3 obligations to shaders are not, but without shaders from 2.0 sense that from 1.5).

Question: What version of OpenGL to choose that the application support the greatest number of video cards?


Hello! The question is exactly the same as in the topic: what version of OpenGL to choose that the application support the greatest number of video cards?

Answer: In general, as I think.
At first, the number of PC users increased exponentially and I think that this peak reached this growth somewhere in the interval of 2008-2011 (for each countries, this peak was at different times, and somewhere else may not be achieved) and now this increase decreases.

I would actually repel from this peak, that is, .. I would look at what OpenGL version was at that time and used it for my purpose if I needed that support was most likely. Well, maybe even minus a couple of months .. That is, while the PC from the manufacturer goes to the buyer.

Question: Choosing the optimal version of OpenGL


The question is as follows: What should adequate system requirements for a simple 2D game in 2016? There is a thought that it will incorrectly create a Flappy Bird project on OpenGL 4.x due to the incompatibility of many video cards with this version. The minimum version of OpenGL in my opinion is 2.0, because on the one hand covers iron of old generations, on the other hand, it makes it possible to use GLSL shaders. Post-processing using a framebuffer is cooled by extensions. But I am not satisfied with the limit associated with the GlTeximage2D function. Not all OpenGL 2.0 video cards allow you to create a texture above 1024px * 1024px in memory. It also needs more efforts to optimize such iron. I will be glad to any advice. It would also be nice to get any statistics on this issue.

Answer:

Message from 8Observer8.

I have such a situation that I collect (in EXE) games on a modern laptop on the WIN7 OS.

It does not matter what to collect.
For the engine, the configuration of the machine on which it starts is important.

Message from 8Observer8.

It turns out that the engine collects EXE in such a way that when starting the EXE, the application will select itself, what to use: OpenGL 2.0 or OpenGL 4.x?

In EXE enclosed the engine.
It also collects its configuration dynamically when running from available modules.

Question: OpenGL version


Good evening, dear members of the forum. Is it possible to use OpenGL versions 1.0-1.5 (such a restriction put a teacher at the institute), setting, for example, GLUT (or any other libraries)? Thanks in advance for the answer.
PS: SI or C ++ programming language.

Answer: If you do not use the extensions and functions of type glcreateshaderobjectarb (..), GlattachObjectarB (..), etc. (i.e., to completely do without any shaders), it will be OpenGL 1.5

Question: Determine Windows version


Welding all.
Faced with such a problem, it is necessary to determine the version of the OS, without using getVersionEx. The fact is that the MSDN is written on this function:

Quote

Applications Not Manifested for Windows 8.1 or Windows 10 Will Return The Windows 8 OS VERSION VALUE (6.2). Once An Application Is Manifested For A Given Operating System Version, GetVersionEx Will Always Return The Version That The Application Is Manifested for in Future Releases.

And I just need to make my application define that it works on Windows 10.
An option Add to Manifest Windows 10 applications is not suitable.

Here, in fact, the question is: Are there any ways to determine the version of Windows using only user-mode functions (RTLGetVersion does not fit, because it is performed in Kernel fashion).

This post has been edited (a) rudolfninja. - 13.8.2015, 12:16

Question: Determine the version of the installed ASP.Net


Hey! I am writing the information collector program with surrounding.
Tell me how to determine the version installed on ASP.NET PC
Already identified version .NET Framework and a lot more, but with ASP.NET problems.

Answer:

Message from nevbie.

or does it correspond to the version of Net Framework?

It may not be absent, because it is Net Framework, just a few assemblies from its composition.

Undoubtedly, many gamers know that for the correct operation of such famous games, like Minecraft or CS, one of the most basic conditions is the presence of OpenGL drivers installed in the system. How to update this driver package, now will be reviewed because, like any other software, they can be outdated. That is why sometimes there are problems with the launch of your favorite games.

OpenGL: as the simplest way?

First of all, if, when you start a game or some specific application, the system reports that OpenGL drivers need to be updated, you should use the most standard solution.

To activate the process, you should enter the standard "Device Manager", which can be made from the "Control Panel", the computer administration section, or the DevmGMGT.msc command via the "Run" console string, and find the video adapter installed there.

The update can be started using the command to the right click menu or in the device properties section. If you specify an automatic search, it may not give a result, and the system will report that the most appropriate driver is already installed. Therefore, it is desirable to first contact the manufacturer's website, select your graphics card model, download the newest driver, and specify the location of the saved distribution.

How to update OpenGL on Windows 7 or in any other system using specialized utilities?

For owners of NVIDIA and Radeon chips, the task may be somewhat simplified. As a rule, special control programs like PHYSX and Catalyst are included in the pre-installed form. That is why the OpenGL driver can be updated with their help.

If for any reason there are no such utilities, you should simply download them and integrate into the system. If there is a constantly active Internet connection, they will be useful not only to configure games, and for automatic tracking the new versions of the necessary drivers, including OpenGL.

In principle, if this option does not like this option, you can use no less interesting programs like Driver Booster, which without user participation update the drivers absolutely for all "iron" and software devices installed on a computer or laptop. The application in the system scanning system itself will determine the version of the OpenGL driver. How to update it? We just need to agree with the proposal to install the deposits found. Upon completion of the update process, a complete reboot will be required.

Finally, you can install a special utility called OpenGL Extensions Viewer, with which you can find out the version of the installed driver package, and update it to the latest version.

Update DirectX

However, the update may not give the desired positive result without updating the DirectX platform, which is a certain binding bridge between the hardware and the program complex in the Multimedia plan.

You can learn the installed version using the DXDIAG command entered in the "Run" menu. You can upload a new distribution from the official Microsoft support site in the Downloads section.

As already understandable, DirectX OpenGL can be updated with the usual start of the installation process of the loaded distribution. The advantage of this update is also in the fact that in the DireCTX dialog box itself, you can conduct a number of tests, including the performance of DirectSound, FFDShow, Direct3D, etc.

Why are the drivers are not updated?

If suddenly, none of the above solutions helps, most likely, the reason lies only in the fact that the video adapter the installed version of OpenGL simply does not support, therefore, no matter how trying, the driver cannot be installed. The only way out will be the installation of a more powerful video card.

By the way, it is most often such a problem occurs in the case of integrated video chips of the Video-On-Board standard, which are built into motherboards. With discrete video cards, as a rule, there are no such problems (naturally, provided that the chip is not too obsolete and initially supports OpenGL technology). As for such cards, it seems, it is already clear. But sometimes it may be necessary to undertake the Java Runtime platforms or even .NET Framework from Microsoft - it is also necessary to forget about this. But as a rule, in most cases it is not required to do this - it is enough and in parallel to use the OpenGL EXTENSIONS VIEWER utility.

  1. In drivers for NVIDIA video cards supplied as part of the Windows operating system, OpenGL support is usually absent. Applications will use Windows OpenGL software rendering (driver in Direct3D in Windows Vista). You can check the availability of the OpenGL driver using the OpenGL Extensions Viewer and GPU CAPS Viewer utilities. If they show that the OpenGL-Microsoft supplier, then there is no OpenGL driver in the system. Download and install the latest version of the video card from the NVIDIA site.
  2. The new version of the driver could be added support for the new OpenGL API, an unknown application. For example, the driver reports OpenGL Support Applications 2.0, and the application / game checks support for OpenGL version 1.x. To solve the problem, you can use RivaTuner in the OpenGL settings on the Compatibility tab (Compatibility) to boost the driver to the version of the OpenGL version (OpenGL Version String Override) on the supported application, for example, 1.5. This option does not affect the execution of the OpenGL video card, but for the same reason, applications requiring OpenGL version 2.0 may stop working. A more flexible way - to create a driver profile for the problem application using the Nhancer utility by specifying the desired version in the "Reported OpenGL Version" option on the Compatibility tab.
  3. The problem may occur if several OpenGL drivers are installed in the system for any reason. In the registry at HKLM \\ Software \\ Microsoft \\ Windows NT \\ Currentversion \\ OpenGldrivers (HKLM \\ Software \\ Microsoft \\ Windows \\ Currentversion \\ OpenGldrivers For Windows 9X-ME), check that there is a single Rivatnt subsection and the DLL key in this section has nvoglnt (there is a single key with the nvopengl.dll value for Windows 9x-Me). If there are other subsections, such as ATI2DVAG (OpenGL ATI driver), it should be deleted, previously exported to the .reg file.
  4. Implementing OpenGL 2.0 for GEFORCE FX graphic processors and above in the NVIDIA driver requires support to the Central SSE Extension Processor. If these extensions are not available, the OpenGL ICD driver will not be initialized, the OpenGL applications will be closed or program rendering will be used. You can check the driver initialization using the OpenGL Extensions Viewer and GPU Caps Viewer utilities, you can check the extension supported by the utility CPU-Z. or Sandra. . If the processor does not support SSE, you can either use earlier versions of the driver (up to 75.xx), or using RivaTuner in the OpenGL settings on the Compatibility tab (compatibility) enable "NV25 Emulation Mode" mode instead of the default "Max Acceleration " In the extreme case, you can use OpenGL -\u003e Direct3D by GlDirect or TitaniumGL. Sometimes the processor supports SSE, but the support does not work because of the outdated BIOS motherboard. Especially this problem is characteristic of systems with AMD Athlon XP and DURON processors. The motherboard BIOS update can restore SSE support.
  5. If there are several video cards on the basis of different NVIDIA graphics processors, the OpenGL driver will support only OpenGL supported by all video cards version.

Just call GlgetString (GL_VERSion) (as soon as the context is initialized, of course), and put out the result (which is actually the same as GlxInfo, I suppose):

PrintF ("% s \\ n", glgetstring (GL_VERSion));

Your program should automatically use the maximum possible version of your equipment and support for drivers, which in your case appears to be 3.3. But to create the main profile context for OpenGL 3+ (one where outdated functionality has been completely removed), you must take special measures. But since version 2.7 GLFW has a tool for this using the glfwopenwindowhint function. But if you do not want to explicitly prohibit outdated functions, you can simply use the context provided to you by the default GLFW default features, which is allegedly supported by the maximum possible version of your equipment and drivers.

But also keep in mind that to use OpenGL functions above version 1.1, you need to get the corresponding pointers to the function or use the library that processes it for you, for example.

I started writing programs, in C (at the moment) using GLFW and OpenGL. The question is that how to find out which OpenGL version will be used by my program? My laptop says that my video card has OpenGL 3.3. Enter "GlxInfo | Grep -i OpenGL returns.

4 replies

I am afraid you have to open the command line of your first day Linux (do not worry, happened to me too). Applications -\u003e Standard -\u003e Terminal. Type LSPCI and press ENTER. Here are all connections via PCI or PCI Express, including a video card. Read the list until you see anything about ATI or NVIDIA or one of the Intel models.

then go to the wikipedia comparative tables for video cards to find out the version of OpenGL that your card supports.

remember that they only say what version does the equipment support. To be able to run OpenGL libraries, you also need a driver that supports them. Multiple video drivers for each generation chip for Linux. Ubuntu comes with open source versions that are not bad, but, as a rule, at a step behind the proprietary drivers released by graphic manufacturers (which are often called binary drivers or proprietary drivers). If it turns out that your equipment supports OpenGL 2.0 (which most), you can try proprietary drivers. They are called NVIDIA-CURRENT for NVIDIA and FGLRX for ATI. For Intel there are only open source drivers.

an example from my laptop:

Prompt\u003e lspci | Grep VGA 00: 02.0 VGA Compatible Controller: Intel Corporation Core Processor Integrated Graphics Controller (Rev 02) 01: 00.0 VGA Compatible Controller: NVIDIA Corporation Device 0DF0 (Rev A1) Prompt\u003e

and the corresponding excerpt from LSHW:

* -PCI: 0 Description: PCI Bridge Product: Core Processor PCI Express X16 root port vendor: Intel Corporation Physical ID: 1 BUS INFO: 00: 01.0 VERSion: 02 Width: 32 Bits Clock: 33mhz Capabilities: PCI PM MSI PCIExpress Normal_Decode bus_master cap_list configuration: driver \u003d pcieport resources: irq: 42 ioport: 2000 (size \u003d 4096) memory: fb000000-fbffffff ioport: f0000000 (size \u003d 167,772,160) * -display description: VGA compatible controller product: nVidia Corporation vendor: nVidia Corporation physical ID: 0 BUS INFO: 01: 00.0 VERSION: A1 Width: 64 Bits Clock: 33mhz Capabilities: PM MSI PCIExpress VGA_Controller Bus_master Cap_List Configuration: Driver \u003d Nouveau Latency \u003d 0 Resources: IRQ: 16 Memory: FB000000-FBFFFFFFFM MEMORY: F0000000- F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFLE: 2000 (Size \u003d 128) * -Display Description: VGA Compatible Controller Product: Core Processor Integrated Graphics Controller VENDOR: Intel Corporation Physical ID: 2 BUS info.