PixarAnimationStudios / OpenUSD

Universal Scene Description
http://www.openusd.org
Other
6.19k stars 1.23k forks source link

OpenGL context required, using reference renderer #2725

Open tmdag opened 1 year ago

tmdag commented 1 year ago

Description of Issue

$ usdview basisCurves.usda

QSocketNotifier: Can only be used with threads started with QThread
qt.qpa.qgnomeplatform.theme: The desktop style for QtQuick Controls 2 applications is not available on the system (qqc2-desktop-style). The application may look broken.
State file not found, a new one will be created.
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
Traceback (most recent call last):
  File "/usr/lib64/python3.11/site-packages/pxr/Usdviewq/stageView.py", line 1686, in paintGL
    renderer = self._getRenderer()
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/pxr/Usdviewq/stageView.py", line 957, in _getRenderer
    self._renderer = UsdImagingGL.Engine()
                     ^^^^^^^^^^^^^^^^^^^^^
pxr.Tf.ErrorException: 
    Error in 'pxrInternal_v0_22__pxrReserved__::GlfContextCaps::_LoadCaps' at line 100 in file /builddir/build/BUILD/USD-22.05b/pxr/imaging/glf/contextCaps.cpp : 'Failed verification: ' GlfGLContext::GetCurrentGLContext()->IsValid() ''
    Error in 'pxrInternal_v0_22__pxrReserved__::{anonymous}::_IsHydraEnabled' at line 128 in file /builddir/build/BUILD/USD-22.05b/pxr/usdImaging/usdImagingGL/engine.cpp : 'OpenGL context required, using reference renderer'
/usr/include/c++/13/bits/stl_vector.h:1142: std::vector<_Tp, _Alloc>::const_reference std::vector<_Tp, _Alloc>::operator[](size_type) const [with _Tp = float; _Alloc = std::allocator<float>; const_reference = const float&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.

Tried $usdview --renderer GL basisCurves.usda $usdview --renderer HydraDisabled basisCurves.usda $usdview --renderer Embree basisCurves.usda

But those above gave the same error.

$XDG_SESSION_TYPE=x11 usdview basisCurves.usda will open window, but only will display on Embree and error out:

qt.qpa.qgnomeplatform.theme: The desktop style for QtQuick Controls 2 applications is not available on the system (qqc2-desktop-style). The application may look broken.
Warning: in Link at line 402 of /builddir/build/BUILD/USD-22.05b/pxr/imaging/hdSt/glslProgram.cpp -- Failed to link shader: error: unresolved reference to function `OsdPrimitiveIdBase'

Warning: in Link at line 402 of /builddir/build/BUILD/USD-22.05b/pxr/imaging/hdSt/glslProgram.cpp -- Failed to link shader: error: unresolved reference to function `OsdPrimitiveIdBase'

ERROR: Usdview encountered an error while rendering.
    Error in 'pxrInternal_v0_22__pxrReserved__::HdSt_DrawBatch::_GetDrawingProgram' at line 278 in file /builddir/build/BUILD/USD-22.05b/pxr/imaging/hdSt/drawBatch.cpp : 'Failed to compile shader for prim /hello/world.'
    Error in 'pxrInternal_v0_22__pxrReserved__::HdSt_DrawBatch::_GetDrawingProgram' at line 297 in file /builddir/build/BUILD/USD-22.05b/pxr/imaging/hdSt/drawBatch.cpp : 'Failed verification: ' res ' -- Failed to compile with fallback material network'
    Error in 'pxrInternal_v0_22__pxrReserved__::HdSt_IndirectDrawBatch::_ExecuteDraw' at line 1113 in file /builddir/build/BUILD/USD-22.05b/pxr/imaging/hdSt/indirectDrawBatch.cpp : 'Failed verification: ' program.IsValid() ''

$ export __GLX_VENDOR_LIBRARY_NAME=nvidia && export __NV_PRIME_RENDER_OFFLOAD=1 && export XDG_SESSION_TYPE=x11 ; usdview HelloWorld.usda will work, with just a warning: qt.qpa.qgnomeplatform.theme: The desktop style for QtQuick Controls 2 applications is not available on the system (qqc2-desktop-style). The application may look broken.

$ export __GLX_VENDOR_LIBRARY_NAME=nvidia && export __NV_PRIME_RENDER_OFFLOAD=1 && export XDG_SESSION_TYPE=wayland ; usdview HelloWorld.usda would crash:

QSocketNotifier: Can only be used with threads started with QThread
qt.qpa.qgnomeplatform.theme: The desktop style for QtQuick Controls 2 applications is not available on the system (qqc2-desktop-style). The application may look broken.
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
Traceback (most recent call last):
  File "/usr/lib64/python3.11/site-packages/pxr/Usdviewq/stageView.py", line 1686, in paintGL
    renderer = self._getRenderer()
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/pxr/Usdviewq/stageView.py", line 957, in _getRenderer
    self._renderer = UsdImagingGL.Engine()
                     ^^^^^^^^^^^^^^^^^^^^^
pxr.Tf.ErrorException: 
    Error in 'pxrInternal_v0_22__pxrReserved__::GlfContextCaps::_LoadCaps' at line 100 in file /builddir/build/BUILD/USD-22.05b/pxr/imaging/glf/contextCaps.cpp : 'Failed verification: ' GlfGLContext::GetCurrentGLContext()->IsValid() ''
    Error in 'pxrInternal_v0_22__pxrReserved__::{anonymous}::_IsHydraEnabled' at line 128 in file /builddir/build/BUILD/USD-22.05b/pxr/usdImaging/usdImagingGL/engine.cpp : 'OpenGL context required, using reference renderer'
/usr/include/c++/13/bits/stl_vector.h:1142: std::vector<_Tp, _Alloc>::const_reference std::vector<_Tp, _Alloc>::operator[](size_type) const [with _Tp = float; _Alloc = std::allocator<float>; const_reference = const float&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Aborted (core dumped)

Steps to Reproduce

  1. launch usdview via terminal

System Information (OS, Hardware)

Fedora 38 6.5.5-200.fc38.x86_64 NVIDIA RTX A500 Laptop GPU and Intel Iris Xe (Optimus) Driver Version: 535.113.01 CUDA Version: 12.2

"latest" USD installed from fedora updates repo: usd.x86_64 22.05b-37.fc38 @updates
usd-devel.x86_64 22.05b-37.fc38 @updates
usd-libs.x86_64 22.05b-37.fc38 @updates

jesschimein commented 1 year ago

Filed as internal issue #USD-8779