MSAA2 has almost zero effect on quality (thus, not very useful), MSAA4 is usually fine and MSAA8 can be considered great but very expensive due to high memory usage (and it is very slow on Intel graphics). Not every user would like to see MSAA at all, so option disabling it would be appreciated by user.
I would suggest to set MSAA settings by default only when you sure the hardware is capable of it - but determining this might be quite complicated. Some games performs small benchmarks to determine optimal settings using synthetic data.
So the application that would like to avoid issues will use smaller values by default and allow user to switch options by himself (through predefined profiles or/and advanced settings) and will provide launch options to start application in safe mode (if user has accidentally selected bad settings or changed computer configuration).
Or can the OCCT code be made more efficient?
Application has control over OCCT options affecting GPU memory usage, such as using additional FBO for immediate layer or not.
But changing defaults have own side effects.
Apart from the driver error you have observed (actually I have not seen such error, and I don't think it can be handled), there are more issues which might occur:
- FBO allocation might fail in regular way (e.g. handled by OCCT) leading to OCCT visualization not working in proper way (e.g. without proper optimizations / off-screen effects).
- FBO allocation might succeed, but result in slow rendering performance due to insufficient GPU memory. I see this effect randomly on my Radeon.
- FBO might take a lot of memory, so that allocation of GPU memory for VBOs for geometry will fail - resulting in bad rendering performance.
- FBO allocation might fail dynamically while resizing the window.
On the sensors tab you can see the dedicated memory usage.
You should be careful while analyzing output of such tools, because GPU memory management is quite complicated on modern systems.
In Siemens NX10 the memory consumption is lower and doesn't change when antialiasing is switched on or off. Do they use other techniques?
I don't know what is done in referred system, but MSAA is not the only option for achieving antialiazing effect.
The MSAA can be enabled for window buffer instead of offscreen buffers FBO (OCCT does not allocate MSAA for window buffer, but user might force MSAA in driver settings which would not improve quality but will increase memory usage), the antializing can be done by super-sampling, by using deprecated OpenGL functionality (removed within last OCCT releases) and it can be also done with post-processing algorithms.
FXAA (Fast Approximate Anti-Aliasing) is one of the popular cheap anti-aliasing algorithms which works as post-processing filter on rendering image of usual size (thus does not increase memory consumption) - OCCT implements similar algorithm for RayTracing renderer (Graphic3d_RenderingParams::IsAntialiasingEnabled option), but not for conventional renderer.
FXAA is computationally cheap (relative to MSAA) but it produces blurry image, which is especially noticeable on small text. There are alternatives like Conservative Morphological Anti Aliasing intended to solve blurry effects of FXAA by more sophisticated local blurring (which is, of course, more computationally intensive):
https://software.intel.com/en-us/blogs/2013/10/10/conservative-morpholog...