diff options
author | José Fonseca <[email protected]> | 2009-08-14 10:27:32 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-08-29 09:21:32 +0100 |
commit | 73af91e938eb27b001404f11195fb06ff9b08903 (patch) | |
tree | 055a4a79134ac662bb8c3874a31787d335c12ca2 /src/gallium/drivers/llvmpipe/lp_state.h | |
parent | 95f38dd67c7dfeb3172ef9723c6f8e4c33de0754 (diff) |
llvmpipe: Eliminate non-LLVM fs execution paths.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state.h')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state.h b/src/gallium/drivers/llvmpipe/lp_state.h index 6b757a6ba71..8638732b51f 100644 --- a/src/gallium/drivers/llvmpipe/lp_state.h +++ b/src/gallium/drivers/llvmpipe/lp_state.h @@ -59,29 +59,36 @@ struct tgsi_exec_machine; struct vertex_info; +typedef void +(*lp_shader_fs_func)(void *pos, + void *a0, + void *dadx, + void *dady, + void *consts, + void *outputs, + struct tgsi_sampler **samplers); + /** * Subclass of pipe_shader_state (though it doesn't really need to be). * * This is starting to look an awful lot like a quad pipeline stage... */ -struct lp_fragment_shader { - struct pipe_shader_state shader; +struct lp_fragment_shader +{ + struct pipe_shader_state base; struct tgsi_shader_info info; - void (*prepare)( const struct lp_fragment_shader *shader, - struct tgsi_exec_machine *machine, - struct tgsi_sampler **samplers); + struct llvmpipe_screen *screen; - /* Run the shader - this interface will get cleaned up in the - * future: - */ - unsigned (*run)( const struct lp_fragment_shader *shader, - struct tgsi_exec_machine *machine, - struct quad_header *quad ); + LLVMValueRef function; + lp_shader_fs_func jit_function; - void (*delete)( struct lp_fragment_shader * ); + union tgsi_exec_channel ALIGN16_ATTRIB pos[NUM_CHANNELS]; + union tgsi_exec_channel ALIGN16_ATTRIB a0[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; + union tgsi_exec_channel ALIGN16_ATTRIB dadx[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; + union tgsi_exec_channel ALIGN16_ATTRIB dady[PIPE_MAX_SHADER_INPUTS][NUM_CHANNELS]; }; |