diff options
Diffstat (limited to 'src/mesa/state_tracker/st_atom_fs.c')
-rw-r--r-- | src/mesa/state_tracker/st_atom_fs.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom_fs.c b/src/mesa/state_tracker/st_atom_fs.c index f8a1dc83cff..ef5b941c176 100644 --- a/src/mesa/state_tracker/st_atom_fs.c +++ b/src/mesa/state_tracker/st_atom_fs.c @@ -36,6 +36,7 @@ #include "pipe/p_defines.h" #include "pipe/p_winsys.h" #include "pipe/tgsi/mesa/mesa_to_tgsi.h" +#include "pipe/tgsi/exec/tgsi_core.h" #include "pipe/tgsi/exec/tgsi_dump.h" #include "st_context.h" @@ -163,6 +164,14 @@ st_translate_fragment_shader(struct st_context *st, if (TGSI_DEBUG) tgsi_dump( stfp->tokens, 0/*TGSI_DUMP_VERBOSE*/ ); +#if defined(USE_X86_ASM) || defined(SLANG_X86) + if (stfp->sse2_program.csr == stfp->sse2_program.store) + tgsi_emit_sse2_fs( stfp->tokens, &stfp->sse2_program ); + + if (!cso->state.executable) + ((struct cso_fragment_shader*)cso)->state.executable = (void *) x86_get_func( &stfp->sse2_program ); +#endif + stfp->dirty = 0; return cso; |