OpenGL Settings

Updated November 20, 2023

------------------ 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 has dropped support for OpenGL 2.1 since v6.49. It supports OpenGL 3.1 with the compatibility profile, i.e. it still uses some deprecated 2.1 functions.

Since support for deprecated contexts is not guaranteed by GPU vendors, flow5 only supports OpenGL 3.3+ and requests by default a 3.3 context.
Note that the application only requests a context version and that the OS will commonly respond with another later version which supports the requested configuration.

macOS

macOS does not support versions of OpenGl higher than 4.1. This version is sufficient for all common usages in flow5. The only feature which will not be available on this platform is the display of animated flow lines.

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+

flow5 uses the 3.3 specification for all common 3d displays. The newer functions implemented in 4.0+ are only used in special cases such the as the display of animated flow lines.
However the recommendation is to always request the highest version, i.e. 4.6 which was released in 2017.
This will force the OS to respond with the highest version it supports.
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 4.6 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

Back to top