Browse Source

glgsg: Fix failure to unset divisor after rendering w/ instancing

This would normally be done by `disable_shader_vertex_arrays()` but it apparently isn't called between shader changes
rdb 3 years ago
parent
commit
e92d993cea

+ 3 - 5
panda/src/glstuff/glCgShaderContext_src.cxx

@@ -905,11 +905,9 @@ update_shader_vertex_arrays(ShaderContext *prev, bool force) {
                                             stride, client_pointer);
           }
 
-          if (divisor > 0) {
-            _glgsg->set_vertex_attrib_divisor(p, divisor);
-          }
-
-        } else {
+          _glgsg->set_vertex_attrib_divisor(p, divisor);
+        }
+        else {
           // It's a conventional vertex attribute.  Ugh.
 #ifdef SUPPORT_FIXED_FUNCTION
           switch (p) {

+ 1 - 3
panda/src/glstuff/glShaderContext_src.cxx

@@ -2568,9 +2568,7 @@ update_shader_vertex_arrays(ShaderContext *prev, bool force) {
                                             stride, client_pointer);
           }
 
-          if (divisor > 0) {
-            _glgsg->set_vertex_attrib_divisor(p, divisor);
-          }
+          _glgsg->set_vertex_attrib_divisor(p, divisor);
 
           ++p;
           client_pointer += element_stride;