Brian Paul
de99760bf3
Move stuff common to vertex/fragment_program into the base class, including:
...
Instructions, InputsRead, OutputsWritten, and Parameters.
Also, added debug functions: _mesa_print_instruction(),
_mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-12 17:53:14 +00:00
Ian Romanick
4884db6eb2
This patch adds the missing NV_vertex_program2 and NV_vertex_program3
...
instructions to the various internal tables. It does not add support for
them to the parser nor does it add support for them to the program
interpreter.
It also corrects some errors in the comments in program_instruction.h.
This patch breaks the instruction union in t_vb_arbprogram.h. The opcode
field in that union was only 6 bits. When there were only 59+3 instructions
that worked fine. However, this patch increases the base instruction count
to 69. This requires 7 bits. The problem is that increasing the opcode
width to 7 bits increases the size of instruction::rsw to 33 bits. I've
increased the size of the union to 64-bit, but this is just a temporary hack
(and probably breaks the build on some systems).
2005-11-08 22:40:26 +00:00
Brian Paul
02df9e1ed4
minor work in _mesa_print_program()
2005-11-08 14:42:52 +00:00
Brian Paul
30d6a4bffa
consolidate vertex/fragment program printing into _mesa_print_program()
2005-11-05 20:18:18 +00:00
Brian Paul
bf41bc03c2
added _mesa_program_file_string()
2005-11-05 19:32:36 +00:00
Brian Paul
1fcdaf1c3b
added _mesa_num_inst_src_regs() and _mesa_opcode_string()
2005-11-05 19:12:36 +00:00
Brian Paul
7e807510d8
Unify vertex/fragment program instuctions.
...
Based on patch by Ian (#4967 ) but also unify instruction opcodes.
2005-11-05 17:10:45 +00:00
Brian Paul
613e1ad5d5
Replace parameter_type enum in program.[ch], use register_file enums instead.
2005-11-05 02:15:21 +00:00
Brian Paul
1624162b0c
added a const, clean-up
2005-11-03 02:26:47 +00:00
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
0505103710
Re-org and clean-up of vertx/fragment program limits (instructions,
...
temporaries, parameters, etc).
glGetProgramivARB() now returns all the right things.
Updated i915 and r300 code to initialize program native limits and
current program's native instruction/temporary/etc counts.
2005-11-01 04:36:33 +00:00
Brian Paul
aa2069586d
use mesa import wrappers, bug 4468
2005-09-16 18:14:24 +00:00
Roland Scheidegger
f519a770d0
add error checking to the GL_ATI_FRAGMENT_SHADER entrypoints. Fix bug with scope of ati fragment shader constants. Fix issues with specifying color/alpha instructions not pair-wise. Change internal representation of the shader (to better fit how the extension works, should make driver implementations simpler, and saves some memory). (still doesn't work correctly with doom3 and swrast, but not worse than before)
2005-09-02 01:11:53 +00:00
Keith Whitwell
9899f58c76
Use ALIGN_MALLOC for parameter lists.
2005-06-08 21:57:45 +00:00
Keith Whitwell
a42fe19d8d
Fix some valgrind complaints
2005-05-10 18:22:19 +00:00
Keith Whitwell
c5f5055097
Fix some valgrind complaints
2005-05-10 18:08:25 +00:00
Keith Whitwell
f29f2fc294
reduce the use of malloc and strdup for parameter lists
2005-05-10 13:56:23 +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
52bf005425
fix state.light[n].spot.direction.w value (bug 3083)
2005-04-20 23:47:03 +00:00
Jouk Jansen
49b1d95c1c
Updates for OpenVMS : New makefiles
...
added some type-casts
Modified Files:
Mesa/src/mesa/shader/descrip.mms
Mesa/src/mesa/shader/program.c
Mesa/src/mesa/shader/slang/slang_compile.c
Mesa/src/mesa/shader/slang/slang_preprocess.c
Added Files:
Mesa/src/mesa/shader/slang/descrip.mms
----------------------------------------------------------------------
2005-04-18 13:05:24 +00:00
Keith Whitwell
78803b2667
Fix alpha value of STATE_LIGHTMODEL_SCENECOLOR. From the spec:
...
The "w" component of the program parameter variable is filled with
the alpha component of the front diffuse material color.
Make sure matrix inverses are uptodate also.
2005-04-15 12:57:23 +00:00
Daniel Borca
0a13cebaa1
ProgramCallbackMesa must match the prototype
2005-02-14 08:01:59 +00:00
Brian Paul
ea2943efd9
Update glDeletePrograms/Buffers() so that the ID is freed immediately, like
...
texture objects.
2005-01-20 04:02:02 +00:00
Brian Paul
cdb6541634
prototype _mesa_init_ati_fragment_shader()
2005-01-11 15:56:47 +00:00
Dave Airlie
7f752fed99
Implement software ATI_fragment_shader
...
no error detection, slow, may not be 100% correct but a good start
2004-12-19 03:06:59 +00:00
Brian Paul
2a5afe3ab8
Added PRINT instruction for GL_NV_fragment_program.
2004-12-18 16:18:00 +00:00
Brian Paul
575700fbdc
Experimental PRINT instruction for NV_vertex_program.
...
Basically, this lets you put a "PRINT 'mesage', register;" statement in a
vertex program to aid in debugging.
2004-12-16 03:07:18 +00:00
Alan Hourihane
22ae633d1e
Fix some warnings
2004-12-02 13:29:40 +00:00
Brian Paul
9ca8392484
fix LoadProgramNV regression when I had fixed the RefCount bug
2004-10-02 15:16:59 +00:00
Brian Paul
765f1a12c6
also fix possible delete bugs with buffer objects and vertex/fragment programs
2004-09-14 22:28:27 +00:00
Brian Paul
a6c423d956
Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch 1015696)
2004-08-25 15:59:48 +00:00
Brian Paul
21841f0ae5
fix some memory leaks (bug #1002030 )
2004-08-14 14:28:11 +00:00
Brian Paul
824fdf035e
remove trailing whitespace and misc clean-ups
2004-06-29 00:00:06 +00:00
Brian Paul
c9a415663a
remove program from hash table when deleted (bug 979514)
2004-06-25 14:46:48 +00:00
Brian Paul
26359143b6
remove redundant program field initializers in BindProgram(); ctx->Driver.NewProgram() does the inits
2004-06-20 20:55:36 +00:00
Brian Paul
07281d37a7
remove unneeded line
2004-05-04 15:12:22 +00:00
Brian Paul
6d460af6af
Added ctx->Vertex/FragmentProgram._Enable flags. Set when vertex/fragment
...
program is enabled AND the currently bound program is valid.
Check _Enable instead of Enable to prevent things from blowing up
when someone calls glEnable(GL_VERTEX_PROGRAM_ARB) without actually
defining a program.
2004-04-23 14:16:46 +00:00
Michal Krol
2861e737e8
Moved from src/mesa/main
2004-03-29 11:09:34 +00:00