nvfx: fix incorrect assert
authorLuca Barbieri <luca@luca-barbieri.com>
Sat, 21 Aug 2010 21:33:51 +0000 (23:33 +0200)
committerLuca Barbieri <luca@luca-barbieri.com>
Sat, 21 Aug 2010 21:45:32 +0000 (23:45 +0200)
src/gallium/drivers/nvfx/nvfx_vbo.c

index 5d3fb6fb6cb18451b83ddcc9d1b7921dd2e5ab61..b1a06654b6400f7cea5f6aaf24bfaaf5236fffa5 100644 (file)
@@ -427,14 +427,17 @@ nvfx_vtxelts_state_create(struct pipe_context *pipe,
                          const struct pipe_vertex_element *elements)
 {
        struct nvfx_vtxelt_state *cso = CALLOC_STRUCT(nvfx_vtxelt_state);
-        struct translate_key transkey;
-        unsigned per_vertex_size[16];
-        unsigned vb_compacted_index[16];
+       struct translate_key transkey;
+       unsigned per_vertex_size[16];
+       unsigned vb_compacted_index[16];
 
-        memset(per_vertex_size, 0, sizeof(per_vertex_size));
-
-       assert(num_elements < 16); /* not doing fallbacks yet */
+       if(num_elements > 16)
+       {
+               _debug_printf("Error: application attempted to use %u vertex elements, but only 16 are supported: ignoring the rest\n");
+               num_elements = 16;
+       }
 
+       memset(per_vertex_size, 0, sizeof(per_vertex_size));
        memcpy(cso->pipe, elements, num_elements * sizeof(elements[0]));
        cso->num_elements = num_elements;
        cso->needs_translate = FALSE;