diff options
author | Michel Dänzer <[email protected]> | 2007-09-19 16:39:04 +0100 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2007-09-19 16:39:04 +0100 |
commit | bcc13fd3f8cc1c235ef5114472b0f919a38c096b (patch) | |
tree | 8bdd739b955e7af7f32dd4850f532ff4ece0bb7a | |
parent | f22e920f478d8732695913ec0d1f7244b451a8f5 (diff) |
Only generate vertex shader code when necessary.
-rw-r--r-- | src/mesa/state_tracker/st_atom_vs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_atom_vs.c b/src/mesa/state_tracker/st_atom_vs.c index 166dc70b083..322fabc4567 100644 --- a/src/mesa/state_tracker/st_atom_vs.c +++ b/src/mesa/state_tracker/st_atom_vs.c @@ -112,10 +112,11 @@ static void compile_vs( struct st_context *st ) tgsi_dump( vp->tokens, 0 ); #if defined(USE_X86_ASM) || defined(SLANG_X86) - tgsi_emit_sse2( - vp->tokens, - &vp->sse2_program ); - cached->executable = (void *) x86_get_func( &vp->sse2_program ); + if (vp->sse2_program.csr == vp->sse2_program.store) + tgsi_emit_sse2( vp->tokens, &vp->sse2_program ); + + if (!cached->executable) + cached->executable = (void *) x86_get_func( &vp->sse2_program ); #endif vp->dirty = 0; |