From 8994a5d95124225321ab8ae51b97edd02a09a835 Mon Sep 17 00:00:00 2001 From: Piotr Jaroszek Date: Thu, 6 May 2021 17:54:53 +0200 Subject: [PATCH 1/3] Glsl version override for nouveau driver Signed-off-by: Piotr Jaroszek --- rviz_rendering/src/rviz_rendering/render_system.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rviz_rendering/src/rviz_rendering/render_system.cpp b/rviz_rendering/src/rviz_rendering/render_system.cpp index 207ff4971..c9665c8cc 100644 --- a/rviz_rendering/src/rviz_rendering/render_system.cpp +++ b/rviz_rendering/src/rviz_rendering/render_system.cpp @@ -239,6 +239,14 @@ RenderSystem::detectGlVersion() } break; } + + // TODO(pijaro): Nouveanu driver doesn't support glsl150 even if it "should", figure out why. + // We fix version to 120 since this is the one we are currently using in materials. + std::string vendor_name = (const char *)glGetString(GL_VENDOR); + if (vendor_name == "nouveau" && glsl_version_ > 120) { + glsl_version_ = 120; + } + RVIZ_RENDERING_LOG_INFO_STREAM( "OpenGl version: " << gl_version_ / 100.0 << " (GLSL " << glsl_version_ / 100.0 << ")" ); From a7b5e4df7616b980b607e8274cbcbb3aa88383b1 Mon Sep 17 00:00:00 2001 From: Piotr Jaroszek Date: Thu, 6 May 2021 19:14:10 +0200 Subject: [PATCH 2/3] Ifdef linux for nouveau check Signed-off-by: Piotr Jaroszek --- rviz_rendering/src/rviz_rendering/render_system.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rviz_rendering/src/rviz_rendering/render_system.cpp b/rviz_rendering/src/rviz_rendering/render_system.cpp index c9665c8cc..a5b248c1f 100644 --- a/rviz_rendering/src/rviz_rendering/render_system.cpp +++ b/rviz_rendering/src/rviz_rendering/render_system.cpp @@ -240,12 +240,14 @@ RenderSystem::detectGlVersion() break; } + #ifdef __linux__ // TODO(pijaro): Nouveanu driver doesn't support glsl150 even if it "should", figure out why. // We fix version to 120 since this is the one we are currently using in materials. std::string vendor_name = (const char *)glGetString(GL_VENDOR); if (vendor_name == "nouveau" && glsl_version_ > 120) { glsl_version_ = 120; } + #endif RVIZ_RENDERING_LOG_INFO_STREAM( "OpenGl version: " << gl_version_ / 100.0 << " (GLSL " << glsl_version_ / 100.0 << ")" From cae7c1609fce74fe6db355d7c63973eaf2a2d768 Mon Sep 17 00:00:00 2001 From: Piotr Jaroszek Date: Thu, 13 May 2021 08:52:46 +0200 Subject: [PATCH 3/3] Added Intel drives to glsl150 exclude vendors Signed-off-by: Piotr Jaroszek --- rviz_rendering/src/rviz_rendering/render_system.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rviz_rendering/src/rviz_rendering/render_system.cpp b/rviz_rendering/src/rviz_rendering/render_system.cpp index a5b248c1f..50e1682a7 100644 --- a/rviz_rendering/src/rviz_rendering/render_system.cpp +++ b/rviz_rendering/src/rviz_rendering/render_system.cpp @@ -241,10 +241,10 @@ RenderSystem::detectGlVersion() } #ifdef __linux__ - // TODO(pijaro): Nouveanu driver doesn't support glsl150 even if it "should", figure out why. + // TODO(pijaro): Nouveanu and Intel drivers don't support glsl150 even if they "should". // We fix version to 120 since this is the one we are currently using in materials. std::string vendor_name = (const char *)glGetString(GL_VENDOR); - if (vendor_name == "nouveau" && glsl_version_ > 120) { + if ((vendor_name == "nouveau" || vendor_name == "Intel") && glsl_version_ > 120) { glsl_version_ = 120; } #endif