summaryrefslogtreecommitdiff
path: root/src/mesa/shader/arbprogram.c
AgeCommit message (Collapse)Author
2010-02-04mesa: change ctx->Driver.ProgramStringNotify() to return GLbooleanBrian Paul
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.
2010-01-22mesa: use memcpy() in _mesa_ProgramEnv/LocalParameters4fvEXT()Brian Paul
2010-01-22mesa: use switch in _mesa_DeletePrograms()Brian Paul
2010-01-22mesa: re-implement _mesa_ProgramEnvParameter4fvARB() with memcpy()Brian Paul
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).
2009-11-07prog parse: Handle GL_VERTEX_PROGRAM_NV in glProgramStringARBIan Romanick
Handle both NV vertex programs and NV vertex state programs passed to glProgramStringARB.
2009-11-07prog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARBIan Romanick
2009-08-24ARB prog: Set error instead of falling through with incorrect valueIan Romanick
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.
2009-05-22mesa: added some assertionsBrian Paul
2009-05-22mesa: remove MAX_VERTEX_PROGRAM_ATTRIBSBrian Paul
Use MAX_VERTEX_GENERIC_ATTRIBS instead. No need for two #defines for the same quantity.
2009-05-21mesa: comment for _mesa_GetVertexAttribfvARB()Brian Paul
2009-05-21mesa: minor code simplification in _mesa_GetVertexAttribfvARB()Brian Paul
2009-04-24mesa: signal _NEW_PROGRAM_CONSTANTS instead of _NEW_PROGRAMBrian Paul
Use _NEW_PROGRAM_CONSTANTS when changing constant/uniform buffer values. Binding a new program/shader sets both _NEW_PROGRAM and _NEW_PROGRAM_CONSTANTS.
2009-04-21mesa: new _NEW_PROGRAM_CONSTANTS flagBrian Paul
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.
2009-03-11mesa: remove some last remnants of GL_MESA_program_debugBrian Paul
2009-01-28Make GL_ARB_vertex_buffer_object mandatoryIan Romanick
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2009-01-20mesa: silence compiler warning at -O2Brian Paul
2008-09-18mesa: prefix a bunch of #include lines with "main/".Brian Paul
This is another step toward removing a whole bunch of -I flags from the cc commands. Still need to address driver code...
2008-07-29mesa: refactor: move _mesa_Bind/Gen/DeleteProgram() to arbprogram.cBrian Paul
No API-level functions now in program.c.
2008-01-15Bug #13492: Only call ProgramStringNotify if program parsing succeeded.Eric Anholt
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.
2007-11-09alias ProgramEnvParameter4xyARB and ProgramParameter4xyNV (bug #12935)Roland Scheidegger
these should be the same functions (as per spec).
2007-04-28fix GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB bug (10787)Brian
2007-01-23fix g++ warnings/errorsBrian
2007-01-09Moved NumTexInstructions, NumTexIndirections, etc. into gl_program sinceBrian
they can now apply to vertex programs.
2006-11-23fix several program-related bugs (bug 9136)Brian Paul
2006-11-04fix error msgBrian Paul
2006-11-04fix for glGetVertexAttribfvARB, bug 8883Brian Paul
2006-11-02Rename _mesa_IsProgram() to _mesa_IsProgramARB() to avoid collision with theBrian Paul
OpenGL 2.0 function of the same name.
2006-08-15Add support for GL_EXT_gpu_program_parameters. Any driver that enablesIan Romanick
either GL_ARB_vertex_program or GL_ARB_fragment_program should enable this extension as well.
2006-07-20Some structure renaming. Prefix vertex/fragment-related structs withBrian Paul
"gl_" to match other structs.
2006-06-12Add support for GL_APPLE_vertex_array_object. Several test programsIan Romanick
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.
2006-05-30don't generate GL_INVALID_ENUM if GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB, ↵Tilman Sauerbeck
which is actually handled
2006-04-11More GLSL code:Michal Krol
- 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;
2005-11-19Remove the _mesa_parse_arb_vertex/fragment_program() functions intoBrian Paul
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.
2005-11-05Unify vertex/fragment program instuctions.Brian Paul
Based on patch by Ian (#4967) but also unify instruction opcodes.
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-05-05Port Mesa to build on a P64 platform (e.g., Win64). P64 platformsKarl Schultz
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.
2004-10-16fix if/else bug in _mesa_ProgramEnvParameter4fARB (fdo bug 1645)Brian Paul
2004-10-06fix GetVertexAttrib problemBrian Paul
2004-10-04ARB_fp support for GL_ARB_draw_buffers (Karl Rasche)Brian Paul
2004-03-10Moved from src/mesa/main.Michal Krol