summaryrefslogtreecommitdiff
path: root/src/mesa/shader/program.c
AgeCommit message (Collapse)Author
2007-01-09Implement vertex attribute binding.Brian
Users can set explicit binding with glBindAttribLocation(), otherwise the linker will allocate generic attribute slots.
2007-01-09Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian
they can now apply to vertex programs.
2007-01-04move TexturesUsed[] into gl_program since vertex programs/shaders can use ↵Brian
textures nowadays
2006-12-19check for null Parameters ptr in _mesa_clone_program()Brian
2006-12-14Move many functions into new files.Brian
2006-12-14New functions for cloning programs and parameter lists.Brian
2006-12-13Checkpoint of work for new GLSL compiler back-end. Lots of assorted changes.Brian
2006-11-23fix several program-related bugs (bug 9136)Brian Paul
2006-11-17add STATE_INTERNAL_DRIVER, etc (Rune Petersen)Brian Paul
2006-11-16disable yesterday's _mesa_add_named_constant() change for nowBrian Paul
2006-11-15Add a size parameter to _mesa_add_unnamed_constant() andBrian Paul
_mesa_add_named_constant() to indicate vector size (1, 2, 3 or 4). Always 4 for now...
2006-11-15Add new _mesa_lookup_parameter_constant() to search for a GLfloat4 constantBrian Paul
in a parameter list. Use it in _mesa_add_named_constant() and _mesa_add_unnamed_constant() to avoid duplication of identical constants.
2006-11-02Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul
OpenGL 2.0 function of the same name.
2006-10-31minor clean-ups, simplifications and new commentsBrian Paul
2006-10-30Move gl_vertex_program_machine struct out of mtypes.h and put into nvvertexec.h.Brian Paul
Massage nvvertexec.c code to work more like s_nvfragprog.c - another step toward unifying vertex/fragment program execution.
2006-10-29Change _mesa_init_instruction() to initialize an array of instructions.Brian Paul
2006-10-28special case END in _mesa_print_instruction()Brian Paul
2006-10-10a step toward moving run-time vertex program state out of GLcontextBrian Paul
2006-10-10Move the fp_machine struct into s_nvfragmprog.c since (except for programBrian Paul
debug) it's only used there.
2006-09-20Add a new internal program parameter value STATE_TEXRECT_SCALE whichKeith Whitwell
provides 1/width and 1/height of the active texture, useful for implementing ARB_texture_rectangle support on hardware which only supports ARB_npot-style texturing.
2006-09-20Export _mesa_print_alu_instruction() to allow drivers to roll theirKeith Whitwell
own debug code for programs with driver-private opcodes. Remove redundant loop in _mesa_num_inst_src_regs().
2006-08-25Free vertex program TnlData, if any. Fixes a mem leak.Brian Paul
2006-08-25Rearrange glBindProgram() code to do all error checking before changingBrian Paul
the binding. Prevent a potential dangling pointer error. SF Bug 1544507.
2006-08-25added _mesa_alloc_instructions() utility functionBrian Paul
2006-08-24Cg tries to bind NV fragment programs to the GL_FRAGMENT_PROGRAM_ARB targetBrian Paul
with glBindProgramARB(). I guess the GL_ARB_fragment_program specification allows that, but Mesa didn't. Relaxed the check with a new predicate function: compatible_program_targets().
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