diff options
author | Keith Whitwell <keithw@vmware.com> | 2010-09-07 14:02:15 +0100 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2010-09-07 14:02:15 +0100 |
commit | 9f6e8e1d6b8696a3ee96cba01b2466ba7a1a8ef6 (patch) | |
tree | 6d4ae00b3f30ec9fd8aa78a673a7e65ea6a2851c /src/gallium/drivers/llvmpipe/lp_state_fs.c | |
parent | 040e59851ae4c26ce0509d42d2ee71e007b3b3d1 (diff) |
llvmpipe: use opcodes instead of function pointers in bins
Also, move some state from rasterizer struct to the scene.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state_fs.c')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index d43b2f6358..8f3976c0f9 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -824,13 +824,6 @@ generate_variant(struct llvmpipe_context *lp, memcpy(&variant->key, key, shader->variant_key_size); - if (gallivm_debug & GALLIVM_DEBUG_IR) { - lp_debug_fs_variant(variant); - } - - generate_fragment(lp, shader, variant, RAST_WHOLE); - generate_fragment(lp, shader, variant, RAST_EDGE_TEST); - /* * Determine whether we are touching all channels in the color buffer. */ @@ -854,6 +847,14 @@ generate_variant(struct llvmpipe_context *lp, !shader->info.uses_kill ? TRUE : FALSE; + + if (gallivm_debug & GALLIVM_DEBUG_IR) { + lp_debug_fs_variant(variant); + } + + generate_fragment(lp, shader, variant, RAST_WHOLE); + generate_fragment(lp, shader, variant, RAST_EDGE_TEST); + return variant; } @@ -900,6 +901,9 @@ llvmpipe_create_fs_state(struct pipe_context *pipe, debug_printf("\n"); } + /* Keep a copy of the tokens in shader->base.tokens */ + shader->base.tokens = tgsi_dup_tokens(templ->tokens); + return shader; } |