diff options
author | Zack Rusin <zackr@vmware.com> | 2010-04-26 13:51:47 -0400 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2010-04-26 15:34:16 -0400 |
commit | 52f145a186b8e47439fb4a96d04a099d439477b7 (patch) | |
tree | 194907267c836d08c173765f2014c6f3f7c9ce81 /src/gallium/auxiliary/draw/draw_llvm.h | |
parent | 3a9717f7c2dd861bbc0d8a3d93273b2d27c56f9a (diff) | |
download | external_mesa3d-52f145a186b8e47439fb4a96d04a099d439477b7.zip external_mesa3d-52f145a186b8e47439fb4a96d04a099d439477b7.tar.gz external_mesa3d-52f145a186b8e47439fb4a96d04a099d439477b7.tar.bz2 |
draw/llvm: implement fetch elts paths
we were only running the llvm paths when the input elts were linear,
now we can handle abritrary fetch elts arrays. we do this by generating
two paths - linear and fetch_elts one and just selecting the right one
at run time.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_llvm.h')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_llvm.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h index 20f4f3d..58fee7f 100644 --- a/src/gallium/auxiliary/draw/draw_llvm.h +++ b/src/gallium/auxiliary/draw/draw_llvm.h @@ -94,6 +94,16 @@ typedef void unsigned stride, struct pipe_vertex_buffer *vertex_buffers); + +typedef void +(*draw_jit_vert_func_elts)(struct draw_jit_context *context, + struct vertex_header *io, + const char *vbuffers[PIPE_MAX_ATTRIBS], + const unsigned *fetch_elts, + unsigned fetch_count, + unsigned stride, + struct pipe_vertex_buffer *vertex_buffers); + struct draw_llvm { struct draw_context *draw; @@ -122,7 +132,9 @@ struct draw_llvm_variant { struct draw_llvm_variant_key key; LLVMValueRef function; + LLVMValueRef function_elts; draw_jit_vert_func jit_func; + draw_jit_vert_func_elts jit_func_elts; struct draw_llvm_variant *next; }; |