draw llvm: highly reduce the compilation times for draw llvm
authorZack Rusin <zackr@vmware.com>
Wed, 7 Apr 2010 21:46:55 +0000 (17:46 -0400)
committerZack Rusin <zackr@vmware.com>
Wed, 7 Apr 2010 21:50:11 +0000 (17:50 -0400)
commit821abff8c03031603111abc17dabe7cfa28a31e1
tree8def3a5f85f92382d72ad07ac9416e9d0b760e59
parent40bac07f9b5182890719151c99e9d9035e7984e7
draw llvm: highly reduce the compilation times for draw llvm

our code resets pipe_vertex_buffer's with different offsets when rendering
vbo, meaning that we kept creating insane number of shaders even for simple
apps e.g. geartrain had 54 shaders and it was taking almost 27 seconds just to
compile them. this patch passes pipe_vertex_buffer's to the jit function and lets
it to the stride/buffer_offset computation at run time. the slowdown at runtime
is largely unnoticable but the we go from 54 shaders to 3, and from 27 seconds to less
than 1.
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/auxiliary/draw/draw_llvm.h
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c