fetch_texel as zero, but I believe this is incorrect. The spec uses a
pseudocode function:
vec4 TextureSample(float s, float t, float r, float lodBias,
int texImageUnit, enum texTarget);
to specify the behaviour of TEX, TXB and TXP instructions. For TEX
and TXP, lodBias is passed as zero, TXB is passed with texcoord[4]. In our code we have
static void
fetch_texel( GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda,
GLuint unit, GLfloat color[4] )
and were passing zero and a biased lambda value respectively. The
difference is that TextureSample() would add in the lambda term
itself, while in our code the caller is expected to do this. Thus in
the TEX and TXP cases, it is necessary to pass an unbiased lambda
value for things to work out correctly.
which is automatically generated to match the current texture environment
state. Introduces a new value ctx->FragmentProgram._Active which is
true when either _Enabled is true or there is such a fragment program
ready to run.
To test out on a driver running the software rasterizer, set
MESA_TEX_PROG=t in the environment. It goes without saying that performance
is lower for the software rasterizer in this mode.
Some texture instructions were using wrong LOD.
Fixed interpolate_texcoords() so it doesn't do texcoord projective division
when using a fragment program. The TXP instruction does that.
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.
New "FetchTexelFuncF()" function returns texels in floating point format.
Only used for depth component images at this time.
Changed original FetchTexelFunc to return GLchan instead of GLvoid, removing
need for a bunch of ugly casts.
Added a type cast to silence the OpenVMS DECC compiler
Modified Files:
Mesa-newtree/src/mesa/swrast/s_nvfragprog.c
----------------------------------------------------------------------
Fixed some vertex array / vertex program glitches with glDrawElements.
Fixed some fragment program runtime bugs.
Non-trivial Cg programs are running now.