summaryrefslogtreecommitdiff
path: root/src/mesa/shader/program.c
AgeCommit message (Collapse)Author
2006-08-24Added _mesa_realloc_instructions() utility function.Brian Paul
Fixed/updated comments for parameter list functions.
2006-08-23Added _mesa_lookup_program() and _mesa_lookup_bufferobj() functions to avoidBrian Paul
a lot of casting elsewhere. Use _mesa_lookup_texture() in tdfx driver, use _mesa_lookup_bufferobj() in r300 driver.
2006-07-20Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul
"gl_" to match other structs.
2006-05-24Roll _mesa_free_parameters() into calling function (the only caller).Brian Paul
Replace assert(0) with _mesa_warning(). Use new _mesa_align_realloc() function. New comments, clean-ups.
2006-05-24fix a small memory leak in _mesa_add_state_reference()Brian Paul
2006-03-03Use standard ARB names instead of vendor-specific NV names for the ↵Roland Scheidegger
ARB/NV_vertex_program enums in common state handling code, and update comments accordingly. Change some slightly confusing code which gave the impression GL_VERTEX_PROGRAM_ARB and GL_VERTEX_PROGRAM_NV enums were different.
2006-03-01Fix glGet with enums which are used not only in NV_vertex_program, but other ↵Roland Scheidegger
extensions too (ARB_vertex_program, ARB_fragment_program, NV_fragment_program), if no support for NV_vertex_program is present. While here, fix return value if enum is used which is not supported by the exposed extensions (GL_INVALID_ENUM instead of GL_INVALID_VALUE). Fix some compile-time #ifs depending on NV_vertex/fragment_program which should also be dependant on ARB_vertex/fragment_program. See bug #6070
2005-12-06C++ fixes, mostly casts (Stephane Conversy)Brian Paul
2005-11-22track state flags which might invalidate parameter listsKeith Whitwell
2005-11-20move _mesa_init_instruction() to program.cBrian Paul
2005-11-20Make Saturate a 2-bit field again, renamed to SaturateMode with threeBrian Paul
possible values: SATURATE_OFF, SATURATE_ZERO_ONE and SATURATE_PLUS_MINUS_ONE.
2005-11-19No longer derive 'ati_fragment_shader' from 'program' class. Only theBrian Paul
program->Id and program->RefCount fields were used and ATI fragment shaders didn't have too much in common with ARB/NV vertex/fragment programs anyway.
2005-11-12Improve _mesa_print_program().Brian Paul
Added make_state_string() to produce a string from a GL state vector.
2005-11-12Move stuff common to vertex/fragment_program into the base class, including:Brian Paul
Instructions, InputsRead, OutputsWritten, and Parameters. Also, added debug functions: _mesa_print_instruction(), _mesa_print_program_parameters() and revamp _mesa_print_program().
2005-11-08This patch adds the missing NV_vertex_program2 and NV_vertex_program3Ian Romanick
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-08minor work in _mesa_print_program()Brian Paul
2005-11-05consolidate vertex/fragment program printing into _mesa_print_program()Brian Paul
2005-11-05added _mesa_program_file_string()Brian Paul
2005-11-05added _mesa_num_inst_src_regs() and _mesa_opcode_string()Brian Paul
2005-11-05Unify vertex/fragment program instuctions.Brian Paul
Based on patch by Ian (#4967) but also unify instruction opcodes.
2005-11-05Replace parameter_type enum in program.[ch], use register_file enums instead.Brian Paul
2005-11-03added a const, clean-upBrian Paul
2005-11-02Rename FRAG_OUTPUT_* tokens to FRAG_RESULT_* to match vertex program conventionBrian Paul
2005-11-01Re-org and clean-up of vertx/fragment program limits (instructions,Brian Paul
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-09-16use mesa import wrappers, bug 4468Brian Paul
2005-09-02add error checking to the GL_ATI_FRAGMENT_SHADER entrypoints. Fix bug with ↵Roland Scheidegger
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-06-08Use ALIGN_MALLOC for parameter lists.Keith Whitwell
2005-05-10Fix some valgrind complaintsKeith Whitwell
2005-05-10Fix some valgrind complaintsKeith Whitwell
2005-05-10reduce the use of malloc and strdup for parameter listsKeith Whitwell
2005-04-21Reduce the size of mesa's internal fragment and vertex programKeith Whitwell
representations by switching to packed structures for registers and instructions.
2005-04-20fix state.light[n].spot.direction.w value (bug 3083)Brian Paul
2005-04-18 Updates for OpenVMS : New makefilesJouk Jansen
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-15Fix alpha value of STATE_LIGHTMODEL_SCENECOLOR. From the spec:Keith Whitwell
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-02-14ProgramCallbackMesa must match the prototypeDaniel Borca
2005-01-20Update glDeletePrograms/Buffers() so that the ID is freed immediately, likeBrian Paul
texture objects.
2005-01-11prototype _mesa_init_ati_fragment_shader()Brian Paul
2004-12-19Implement software ATI_fragment_shaderDave Airlie
no error detection, slow, may not be 100% correct but a good start
2004-12-18Added PRINT instruction for GL_NV_fragment_program.Brian Paul
2004-12-16Experimental PRINT instruction for NV_vertex_program.Brian Paul
Basically, this lets you put a "PRINT 'mesage', register;" statement in a vertex program to aid in debugging.
2004-12-02Fix some warningsAlan Hourihane
2004-10-02fix LoadProgramNV regression when I had fixed the RefCount bugBrian Paul
2004-09-14also fix possible delete bugs with buffer objects and vertex/fragment programsBrian Paul
2004-08-25Silence gcc 3.4 warnings on ReactOS. Mostly unused var warnings. (patch ↵Brian Paul
1015696)
2004-08-14fix some memory leaks (bug #1002030)Brian Paul
2004-06-29remove trailing whitespace and misc clean-upsBrian Paul
2004-06-25remove program from hash table when deleted (bug 979514)Brian Paul
2004-06-20remove redundant program field initializers in BindProgram(); ↵Brian Paul
ctx->Driver.NewProgram() does the inits
2004-05-04remove unneeded lineBrian Paul
2004-04-23Added ctx->Vertex/FragmentProgram._Enable flags. Set when vertex/fragmentBrian Paul
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.