aardvark-platform / aardvark.rendering

Aardvark.Rendering is a high-performance, dependency-aware rendering engine. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
https://aardvarkians.com/
Other
128 stars 13 forks source link

Mechanism to disable Hardware Features on a per-app level #102

Open haraldsteinlechner opened 8 months ago

haraldsteinlechner commented 8 months ago

I just learned that some drivers claim to support MultiDraw but crash hard when rendering. Similar things are persistently mapped buffers, and several other features where we have workarounds. Currently those flags reside in RuntimeConfig - would this be a good location to also allow to switch of MultiDraw?

RELATED: https://github.com/aardvark-platform/aardvark.rendering/issues/78

hyazinthh commented 8 months ago

A RuntimeConfig flag is probably the way to go if we want to control this manually. The workaround for glMultiDrawElementsIndirect in GLVM checks if the function exists and then uses glDrawElementsIndirect if that is not available. So in your case the function exists but crashes?

https://github.com/aardvark-platform/aardvark.rendering/blob/master/src/GLVM/glvm.cpp#L1020