NVIDIAGameWorks / kaolin-wisp

NVIDIA Kaolin Wisp is a PyTorch library powered by NVIDIA Kaolin Core to work with neural fields (including NeRFs, NGLOD, instant-ngp and VQAD).
Other
1.45k stars 133 forks source link

VertexArrayObject fix for gl 3.3 #118

Open orperel opened 1 year ago

orperel commented 1 year ago

WispApp uses glumpy with a glfw_imgui backend, which defaults to OpenGL 2.1 context. However, imgui expects an OpenGL 3.3+ context, which causes errors on some envs.

  1. This MR creates the window with glumpy.app.configuration.get_default(), which effectively takes the correct GL version we put in the WispState config (the previous MR used app.configuration.Configuration(), this is not enough).
  2. OpenGL 3.3 requires a VertexArrayObject to be bound to initiate a draw call, otherwise sparking some GL errors. WispApp now ensures there is a default VAO in place.

See also: https://github.com/glumpy/glumpy/issues/310

In addition, the following changes add some extra robustness:

  1. World grid gizmo try-except extended to catch more errors in case GL_TEXTURE_MAX_ANISOTROPY is missing from the feature set.
  2. _register_cugl_shared_texture will now fallback to blitdevice2device=False (WSL mode) if cugl registration failed.

Signed-off-by: operel operel@nvidia.com