diff options
author | José Fonseca <[email protected]> | 2010-08-22 02:26:09 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-08-22 02:26:44 +0100 |
commit | ae34a6393e6519dc32e53fa8407155e8679fc257 (patch) | |
tree | 356c08862b6868d9e8c5463fdd964bf931e51719 | |
parent | ce9a6e6a7d855bac9bc088a97a19373bb0484829 (diff) |
draw: Don't assert if indices point outside vertex buffer.
This is valid input, and asserting here does causes the test suites that
verify this to crash.
Also, the assert was wrongly accepting the case
max_index == vert_info->count
which, IIUC, is the first vertex outside the buffer. Assuming the
vert_info->count is precise (which often is not the case).
-rw-r--r-- | src/gallium/auxiliary/draw/draw_pipe.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe.c b/src/gallium/auxiliary/draw/draw_pipe.c index b75262a3575..6206197dae9 100644 --- a/src/gallium/auxiliary/draw/draw_pipe.c +++ b/src/gallium/auxiliary/draw/draw_pipe.c @@ -238,7 +238,7 @@ void draw_pipeline_run( struct draw_context *draw, const unsigned count = prim_info->primitive_lengths[i]; #if DEBUG - /* make sure none of the element indexes go outside the vertex buffer */ + /* Warn if one of the element indexes go outside the vertex buffer */ { unsigned max_index = 0x0, i; /* find the largest element index */ @@ -247,7 +247,12 @@ void draw_pipeline_run( struct draw_context *draw, if (index > max_index) max_index = index; } - assert(max_index <= vert_info->count); + if (max_index >= vert_info->count) { + debug_printf("%s: max_index (%u) outside vertex buffer (%u)\n", + __FUNCTION__, + max_index, + vert_info->count); + } } #endif |