Commit Graph

63 Commits

Author SHA1 Message Date
Brian Paul
90ebb581e6 Rename FRAG_OUTPUT_* tokens to FRAG_RESULT_* to match vertex program convention 2005-11-02 18:06:12 +00:00
Brian Paul
094a1ddf24 need to use absolute value for RSQ 2005-10-30 16:52:02 +00:00
Brian Paul
af13891dbd fix LIT bug 2005-10-29 16:05:18 +00:00
Brian Paul
32340aea13 fragment program writing to result.depth.z was broken 2005-10-24 19:28:36 +00:00
Brian Paul
54cfe69436 fix broken SWZ instruction 2005-10-21 15:22:36 +00:00
Brian Paul
b3f2e15035 fix broken KIL 2005-10-21 14:22:38 +00:00
Brian Paul
b3aefd1cfb additional wrapper updates, bug 4468 2005-09-19 20:12:32 +00:00
Brian Paul
aa2069586d use mesa import wrappers, bug 4468 2005-09-16 18:14:24 +00:00
Brian Paul
aa8abf8081 Rework the texture filtering functions a bit.
No need to pass the texture unit number as an argument.
2005-09-16 04:16:48 +00:00
Brian Paul
55187ea63e Update includes post-splitting of s_texture.c 2005-09-15 00:58:03 +00:00
Jon Smirl
bab559b1fa Remove some debug output
Add #if DEBUG_FRAG in s_nvfragprog.c
2005-05-20 01:17:38 +00:00
Keith Whitwell
ac6728d2d9 Previously in TXP and TEX instructions, lambda was passed to
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.
2005-05-11 16:28:33 +00:00
Keith Whitwell
363d0bcf01 Test for texcoord[3] == zero before dividing. Not so sure about this
test - if texcoord[3] is zero, we'd probably be fine except for an
ASSERT in IROUND_POS() which gets triggered by the inf values
created.
2005-05-11 15:17:31 +00:00
Brian Paul
e4b2356c07 Major check-in of changes for GL_EXT_framebuffer_object extension.
Main driver impacts:
- new code for creating the Mesa GLframebuffer
- new span/pixel read/write code
Some drivers not yet updated/tested.
2005-05-04 20:11:35 +00:00
Keith Whitwell
47b29f511a Add a facility to route all rasterization through a fragment program
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.
2005-05-04 11:44:44 +00:00
Keith Whitwell
7c26b61f93 Reduce the size of mesa's internal fragment and vertex program
representations by switching to packed structures for registers and
instructions.
2005-04-21 14:46:57 +00:00
Brian Paul
2a5afe3ab8 Added PRINT instruction for GL_NV_fragment_program. 2004-12-18 16:18:00 +00:00
Brian Paul
55481b3a29 tweaks to the LIT instructions 2004-12-15 01:07:52 +00:00
Brian Paul
cec85c778f added a few more debug printfs (disabled) 2004-08-10 15:30:16 +00:00
Brian Paul
7576b9b19d store's to RC/HC didn't work (bug 976287) 2004-06-20 19:16:55 +00:00
Brian Paul
6164ae2b5a only init temp regs to zero if executing NV fragment program 2004-04-21 17:51:21 +00:00
Brian Paul
d8b82147c3 Audit/fixes for NV/ARB TEX, TXP, TXB, TXD instructions.
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.
2004-04-18 20:11:52 +00:00
Keith Whitwell
6fb235661a 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.
2004-04-14 21:19:34 +00:00
Brian Paul
ff1a015ca8 Implement ARB_f_p KIL correctly. 2004-04-02 17:27:46 +00:00
Brian Paul
388c455960 fix array indexing for UP4B and UP4UB 2004-03-29 16:34:01 +00:00
Keith Whitwell
eeb5eeb2a6 Accomodate ARB_fp XPD opcode separately from NV_fp's X2D. 2004-03-29 16:01:18 +00:00
Brian Paul
e22540c276 s/_swrast_exec_nv_fragment_program/_swrast_exec_fragment_program/ 2004-03-03 15:36:01 +00:00
Brian Paul
db79b5683c move _mesa_load_state_parameters() to state validation stage 2004-02-27 02:13:29 +00:00
Brian Paul
579ea7ff7a fix PK2H, UP2H, PK2US bugs 2004-02-27 01:28:24 +00:00
Keith Whitwell
18fa367ac6 Consolidate texObj->Pos/Neg/X/Y/Z and texObj->Image into a single
array, texObj->Image[face][level].
2004-01-27 16:34:45 +00:00
Brian Paul
4f295cee73 Initial support for floating point and signed texture formats.
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.
2004-01-23 01:59:54 +00:00
Brian Paul
ae7666385d added blurb about NVIDIA extensions 2004-01-14 19:51:19 +00:00
Karl Rasche
7aa77b679d Problem computing specular value in OPCODE_LIT - pulled in value from
vertex program execution of LIT
2003-12-13 15:12:58 +00:00
Brian Paul
4774cd9568 pass ctx to fetch_vector4_deriv() 2003-11-22 18:29:43 +00:00
Brian Paul
a1769b0287 fix some bugs in computation of DDX, DDY commands 2003-11-21 20:48:16 +00:00
Karl Rasche
75b5cb4317 Initial checkin of new ARB_frag/vertex program parser 2003-11-19 13:17:33 +00:00
Brian Paul
e4fcea2e06 Assorted casts to silence g++ warnings. 2003-09-19 15:38:15 +00:00
Karl Schultz
a01566e468 Add casts to prevent double->float conversion compiler warnings. 2003-09-18 15:14:58 +00:00
Brian Paul
d402cb97bd implement SWZ and TXB. some code clean-up 2003-09-04 23:55:33 +00:00
Brian Paul
9c9c2cd725 Added new opcodes for ARB_fragment_program, like ABS, CMP, TXB, etc. 2003-09-04 15:18:22 +00:00
Brian Paul
7961e67c2a update parameter indexing 2003-08-31 18:55:23 +00:00
Karl Schultz
dc24230de7 Silence compiler warnings about implicit casts or conversions by supplying explicit casts and/or tweaking constant and variable definitions. 2003-08-30 14:45:04 +00:00
Jouk Jansen
d49acd629b Committing in .
Added a type cast to silence the OpenVMS DECC compiler

 Modified Files:
 	Mesa-newtree/src/mesa/swrast/s_nvfragprog.c
 ----------------------------------------------------------------------
2003-08-27 11:12:35 +00:00
Brian Paul
f2dd273322 Re-org of register files for vertex/fragment programs. Will be easier to
hook in global state references, etc. for ARB programs.
2003-08-17 17:11:50 +00:00
Brian Paul
f7fda86c6d Implement debugger callback, etc for vertex programs. Misc clean-ups. 2003-07-22 03:34:54 +00:00
Brian Paul
08ff059f20 Initial implementation of GL_MESA_program_debug - a vertex/fragment program
debugging extension.
2003-07-21 04:22:40 +00:00
Brian Paul
0295088118 initialize condition codes before running program 2003-05-10 04:37:24 +00:00
Brian Paul
7bb832f9f7 fix DDX, DDY instructions (probably not finished though) 2003-04-21 15:03:46 +00:00
Brian Paul
d0492cf137 Some groundwork for GL_ARB_vertex/fragment_program. 2003-04-11 01:20:06 +00:00
Brian Paul
36a0a3252e Added ctx->Texture._EnabledCoordUnits bitfield.
Fixed some vertex array / vertex program glitches with glDrawElements.
Fixed some fragment program runtime bugs.
Non-trivial Cg programs are running now.
2003-04-08 02:27:16 +00:00