diff options
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; } |