u_vbuf: Only create driver CSO if no incompatible elements
[mesa.git] / src / gallium / auxiliary / util / u_vbuf.c
index 67c82a56ecd865fcea81e50706cd05c295d31df5..8e67cd965f87544a0e15ec0d32c28a5e4ed90b63 100644 (file)
@@ -811,8 +811,12 @@ u_vbuf_create_vertex_elements(struct u_vbuf *mgr, unsigned count,
       }
    }
 
-   ve->driver_cso =
-      pipe->create_vertex_elements_state(pipe, count, driver_attribs);
+   /* Only create driver CSO if no incompatible elements */
+   if (!ve->incompatible_elem_mask) {
+      ve->driver_cso =
+         pipe->create_vertex_elements_state(pipe, count, driver_attribs);
+   }
+
    return ve;
 }