From 6fb235661a3a78174e7554b292332a1dbb24f171 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 14 Apr 2004 21:19:34 +0000 Subject: Use tcc and the emitted C code from s_fragprog_to_c.c to dynamically compile and execute fragment programs. Very limited and experimental, but works well enough to run arbfplight.c. http://fabrice.bellard.free.fr/tcc/ Compile with 'make linux-tcc', being sure to make clean first. --- src/mesa/swrast/s_nvfragprog.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mesa/swrast/s_nvfragprog.c') diff --git a/src/mesa/swrast/s_nvfragprog.c b/src/mesa/swrast/s_nvfragprog.c index 036c1870d1..f7510bf3dd 100644 --- a/src/mesa/swrast/s_nvfragprog.c +++ b/src/mesa/swrast/s_nvfragprog.c @@ -1357,10 +1357,18 @@ _swrast_exec_fragment_program( GLcontext *ctx, struct sw_span *span ) init_machine(ctx, &ctx->FragmentProgram.Machine, ctx->FragmentProgram.Current, span, i); +#ifdef USE_TCC + if (!_swrast_execute_codegen_program(ctx, program, ~0, + &ctx->FragmentProgram.Machine, + span, i)) { + span->array->mask[i] = GL_FALSE; /* killed fragment */ + } +#else if (!execute_program(ctx, program, ~0, &ctx->FragmentProgram.Machine, span, i)) { span->array->mask[i] = GL_FALSE; /* killed fragment */ } +#endif /* Store output registers */ { -- cgit v1.2.3