summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader/arbprogram.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: move all vertex array functions into varray.cBrian Paul2010-05-251-241/+0
|
* mesa: added _mesa_GetVertexAttribIiv / AttribIuiv()Brian Paul2010-05-251-54/+138
| | | | Refactor the code for all the glGetVertexAttrib() functions.
* Remove _mesa_memcpy in favor of plain memcpy.Kenneth Graunke2010-02-191-1/+1
| | | | This may break the SUNOS4 build, but it's no longer relevant.
* Remove _mesa_strlen in favor of plain strlen.Kenneth Graunke2010-02-191-2/+2
|
* mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul2010-02-041-2/+7
| | | | | | | | | | | | | GL_TRUE indicates that the driver accepts the program. GL_FALSE indicates the program can't be compiled/translated by the driver for some reason (too many resources used, etc). Propogate this result up to the GL API: set GL_INVALID_OPERATION error if glProgramString() was called. Set shader program link status to GL_FALSE if glLinkProgram() was called. At this point, drivers still don't do any program checking and always return GL_TRUE.
* mesa: use memcpy() in _mesa_ProgramEnv/LocalParameters4fvEXT()Brian Paul2010-01-221-15/+5
|
* mesa: use switch in _mesa_DeletePrograms()Brian Paul2010-01-221-7/+8
|
* mesa: re-implement _mesa_ProgramEnvParameter4fvARB() with memcpy()Brian Paul2010-01-221-3/+30
| | | | | | | | | This is faster and ensures that NaN floats get stored properly. Before, NaN values (which might be used with UP2H, UP2US, UP4B and UP4UB) weren't getting stored properly with gcc -O3. This is the second part of the fix for the piglit fp-unpack-01 failure (bug 25973).
* prog parse: Handle GL_VERTEX_PROGRAM_NV in glProgramStringARBIan Romanick2009-11-071-1/+23
| | | | | Handle both NV vertex programs and NV vertex state programs passed to glProgramStringARB.
* prog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARBIan Romanick2009-11-071-5/+15
|
* ARB prog: Set error instead of falling through with incorrect valueIan Romanick2009-08-241-0/+3
| | | | | | | | | | | | If a fragment program only parameter was queried of a vertex program (e.g., GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB) no error would be set and a random value would be returned. This caused 'glxinfo -l' to show the same values for GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB, GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB, GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB as for GL_MAX_PROGRAM_ENV_PARAMETERS_ARB. This is confusing and incorrect.
* mesa: added some assertionsBrian Paul2009-05-221-0/+8
|
* mesa: remove MAX_VERTEX_PROGRAM_ATTRIBSBrian Paul2009-05-221-1/+1
| | | | | Use MAX_VERTEX_GENERIC_ATTRIBS instead. No need for two #defines for the same quantity.
* mesa: comment for _mesa_GetVertexAttribfvARB()Brian Paul2009-05-211-0/+4
|
* mesa: minor code simplification in _mesa_GetVertexAttribfvARB()Brian Paul2009-05-211-6/+9
|
* mesa: signal _NEW_PROGRAM_CONSTANTS instead of _NEW_PROGRAMBrian Paul2009-04-241-6/+7
| | | | | Use _NEW_PROGRAM_CONSTANTS when changing constant/uniform buffer values. Binding a new program/shader sets both _NEW_PROGRAM and _NEW_PROGRAM_CONSTANTS.
* mesa: new _NEW_PROGRAM_CONSTANTS flagBrian Paul2009-04-211-6/+4
| | | | | | | | | | | | | | | This state flag will be used to indicate that vertex/fragment program constants have changed. _NEW_PROGRAM will be used to indicate changes to the vertex/fragment shader itself, or misc related state. _NEW_PROGRAM_CONSTANTS is also set whenever a program parameter that's tracking GL state has changed. For example, if the projection matrix is in the parameter list, calling glFrustum() will cause _NEW_PROGRAM_CONSTANTS to be set. This will let to remove the need for dynamic state atoms in some drivers. For now, we still set _NEW_PROGRAM in all the places we used to. We'll no longer set _NEW_PROGRAM in glUniform() after drivers/etc have been updated.
* mesa: remove some last remnants of GL_MESA_program_debugBrian Paul2009-03-111-6/+3
|
* Make GL_ARB_vertex_buffer_object mandatoryIan Romanick2009-01-281-4/+0
| | | | Signed-off-by: Ian Romanick <[email protected]>
* mesa: silence compiler warning at -O2Brian Paul2009-01-201-0/+1
|
* mesa: prefix a bunch of #include lines with "main/".Brian Paul2008-09-181-6/+6
| | | | | This is another step toward removing a whole bunch of -I flags from the cc commands. Still need to address driver code...
* mesa: refactor: move _mesa_Bind/Gen/DeleteProgram() to arbprogram.cBrian Paul2008-07-291-0/+202
| | | | No API-level functions now in program.c.
* Bug #13492: Only call ProgramStringNotify if program parsing succeeded.Eric Anholt2008-01-151-2/+2
| | | | | | Wine intentionally tries some out-of-spec programs to test strictness, and calling ProgramStringNotify on the results of a failed program parse resulted in crashes in the 965 driver.
* alias ProgramEnvParameter4xyARB and ProgramParameter4xyNV (bug #12935)Roland Scheidegger2007-11-091-3/+26
| | | | these should be the same functions (as per spec).
* fix GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB bug (10787)Brian2007-04-281-4/+12
|
* fix g++ warnings/errorsBrian2007-01-231-2/+2
|
* Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian2007-01-091-6/+6
| | | | they can now apply to vertex programs.
* fix several program-related bugs (bug 9136)Brian Paul2006-11-231-2/+8
|
* fix error msgBrian Paul2006-11-041-1/+1
|
* fix for glGetVertexAttribfvARB, bug 8883Brian Paul2006-11-041-1/+6
|
* Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul2006-11-021-1/+25
| | | | OpenGL 2.0 function of the same name.
* Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick2006-08-151-0/+88
| | | | | either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this extension as well.
* Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul2006-07-201-7/+7
| | | | "gl_" to match other structs.
* Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick2006-06-121-11/+11
| | | | | | | and demos are also added. Adding basic support to drivers should be as easy as just enabling the extension, though thorough test would also be required.
* don't generate GL_INVALID_ENUM if GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB, ↵Tilman Sauerbeck2006-05-301-0/+1
| | | | which is actually handled
* More GLSL code:Michal Krol2006-04-111-6/+3
| | | | | | | | | | | | - use macros to access and modify render inputs bit-field; - un-alias generic vertex attributes for ARB vertex calls; - use MAX_VERTEX_PROGRAM_ATTRIBS (NV code) or MAX_VERTEX_ATTRIBS (ARB code) in place of VERT_ATTRIB_MAX; - define VERT_ATTRIB_GENERIC0..15 for un-aliased vertex attributes for ARB_vertex_shader; - fix generic attribute index range check in arbprogparse.c; - interface GLSL varyings between vertex and fragment shader; - use 64-bit optimised bitset (bitset.h) for render inputs;
* Remove the _mesa_parse_arb_vertex/fragment_program() functions intoBrian Paul2005-11-191-18/+8
| | | | | | | arbprogparse.c and remove arbvertparse.[ch] and arbfragparse.[ch]. Clean up quite a bit of the arb parsing code. Rewrite parser extension code to avoid a mess of string operations every time the parser was used.
* Unify vertex/fragment program instuctions.Brian Paul2005-11-051-2/+1
| | | | Based on patch by Ian (#4967) but also unify instruction opcodes.
* Re-org and clean-up of vertx/fragment program limits (instructions,Brian Paul2005-11-011-151/+115
| | | | | | | 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.
* Port Mesa to build on a P64 platform (e.g., Win64). P64 platformsKarl Schultz2005-05-051-1/+1
| | | | | | | | use 64-bit pointers and 32-bit longs. So, operations like casting pointers to unsigned long and back to pointer won't work. glheader.h now includes files to define uintptr_t, which should instead be used for this sort of operation. It is an integer type that is the same size as a pointer.
* fix if/else bug in _mesa_ProgramEnvParameter4fARB (fdo bug 1645)Brian Paul2004-10-161-2/+2
|
* fix GetVertexAttrib problemBrian Paul2004-10-061-1/+4
|
* ARB_fp support for GL_ARB_draw_buffers (Karl Rasche)Brian Paul2004-10-041-2/+2
|
* Moved from src/mesa/main.Michal Krol2004-03-101-0/+721