OpenGL Settings

Updated April 21, 2021

------------------ WORK IN PROGRESS ------------------



Contents


Back to main table of contents


Foreword

OpenGL specifications

3d rendering in applications such as xflr5 and flow5 is done using OpenGL which has the advantage of being platform-independent and supported by the three OS Windows, Mac, and Linux as of 2021. flow5 does not make use of DirectX or Metal.

The OpenGL specification has changed over time, with forward compatibility being broken between versions 1.0 and 2.1, and between 2.1 and 3.3 – a developer’s nightmare.

OpenGL 2.1 is now deprecated which means that GPU vendors may or may not still provide support for the specification. Applications such as flow5 should therefore implement support for v3.3+ with the core profile, i.e. without use of deprecated functions.

xflr5 and flow5 support for OpenGL specifications

For information, xflr5 implements full support for OpenGL 2.1, and supports OpenGL 3.1 with the compatibility profile, i.e. it still uses some deprecated 2.1 functions.
flow5 implements full support for both OpenGL 2.1 and 3.3+. It should run on all configurations which support successfully xflr5.
Since support for deprecated contexts is not guaranteed by GPU vendors, flow5 requests by default a 3.3 context.
Note that the application only requests a context version of OpenGL and that the OS will commonly respond with another later version which supports the requested configuration.

Troubleshooting

Dual graphic chipsets

Some laptop computers have dual graphic processors, in which case the OS will most likely select by default the motherboard’s GPU to run flow5. This is usually good enough because the application only makes a minimal use of a GPU’s power and functionalities. In case of issues however, it is worth trying to force the application to run on the other graphic chipset, which provides a different support for OpenGL. The selection of the GPU is made in the OS and not in flow5.


Back to top



Step by step

The module can be accessed with the "Options/OpenGL settings" menu item.

OpenGL 3.3+

Although flow5 only uses the 3.3 specification and none of the newer functions implemented in 4.0+, the recommendation is to request the most recent context supported by the hardware, e.g. 4.6 which was released in 2017.
Older configurations may support for instance only 4.5 released in 2014, or 4.3 released in 2013. This response will be displayed in the text output in the bottom left.

Activate the core profile and disable the deprecated functions. This guarantees that the application does not make use of the legacy 2.1 features.
In the present case, the response of the OS is exactly the requested context.

If the 3d model shows up in the right view, which should almost always be the case, click "Apply" and "Close". All future sessions will use this configuration by default.
If it does not, try to request successively:
  • the context with which the OS has responded, e.g. 4.5, 4.4, etc.
  • a 3.3 context with the core profile and no deprecated functions
  • a 3.0 context without deprecated functions
  • a 2.1 context

Opengl 2.1

Support for 2.1 contexts is provided as a back-up option for older hardware. The vast majority of flow5's display features will still be available in this context.

If OpenGL 2.1 is supported by the GPU, which is likely to still be the case in 2021, a 3d model will display in the right view. If it does not, it could mean that the GPU only supports more recent versions of OpenGL.

Note that although a 2.1 context was requested in the case illustrated above, the OS chose to respond with a 4.6 context with the compatibility profile, i.e. with support for 2.1 functions.
Since this type of response is more and more likely to be the case in the future, it makes sense and it is recommended to run the application directly with a 3.3+ context.


Back to top