Browse Source

glgsg: Work around Panfrost driver bug with wireframe mode

rdb 2 years ago
parent
commit
c5d6bae1c3
1 changed files with 11 additions and 1 deletions
  1. 11 1
      panda/src/glstuff/glGraphicsStateGuardian_src.cxx

+ 11 - 1
panda/src/glstuff/glGraphicsStateGuardian_src.cxx

@@ -818,7 +818,7 @@ reset() {
 
 
   _supported_geom_rendering =
   _supported_geom_rendering =
 #ifndef OPENGLES
 #ifndef OPENGLES
-    Geom::GR_render_mode_wireframe | Geom::GR_render_mode_point |
+    Geom::GR_render_mode_point |
 #endif
 #endif
     Geom::GR_indexed_point |
     Geom::GR_indexed_point |
     Geom::GR_point | Geom::GR_point_uniform_size |
     Geom::GR_point | Geom::GR_point_uniform_size |
@@ -827,6 +827,16 @@ reset() {
     Geom::GR_line_strip |
     Geom::GR_line_strip |
     Geom::GR_flat_last_vertex;
     Geom::GR_flat_last_vertex;
 
 
+#ifndef OPENGLES
+  // Observed bug on PINEBOOK Pro: regular OpenGL 3.3 driver doesn't support
+  // wireframe mode, it just renders the solid mesh
+  // GL_RENDERER = Mali-T860 (Panfrost)
+  // GL_VERSION = 3.3 (Compatibility Profile) Mesa 22.3.6
+  if (_gl_vendor != "Panfrost") {
+    _supported_geom_rendering |= Geom::GR_render_mode_wireframe;
+  }
+#endif
+
   _supports_point_parameters = false;
   _supports_point_parameters = false;
 
 
 #ifdef OPENGLES_1
 #ifdef OPENGLES_1