Module: Mesa Branch: mesa_7_7_branch Commit: a6148b8eba35a0d4efec4dcca5e3ac6d86708a58 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a6148b8eba35a0d4efec4dcca5e3ac6d86708a58
Author: Zack Rusin <[email protected]> Date: Fri Feb 5 18:57:10 2010 -0500 gallium/draw: fix overflowing element indices we piggy back flags in the top four bits of the element indices, so if the maximum index stored in any of the elements is greater than sizeof(ushort) - sizeof(flags we piggy back) then we overflow. fix it by simply falling back to the slow path if we notice the overflow. --- src/gallium/auxiliary/draw/draw_pt_vcache.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pt_vcache.c b/src/gallium/auxiliary/draw/draw_pt_vcache.c index d3f179c..a87ec30 100644 --- a/src/gallium/auxiliary/draw/draw_pt_vcache.c +++ b/src/gallium/auxiliary/draw/draw_pt_vcache.c @@ -347,7 +347,8 @@ vcache_check_run( struct draw_pt_front_end *frontend, draw_count); if (max_index == 0xffffffff || - fetch_count > draw_count) { + fetch_count > draw_count || + max_index != (max_index & ~DRAW_PIPE_FLAG_MASK)) { if (0) debug_printf("fail\n"); goto fail; } _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
