summaryrefslogtreecommitdiff
path: root/src/mesa/shader/shader_api.c
AgeCommit message (Collapse)Author
2010-04-01mesa: make _mesa_copy_string() non-staticBrian Paul
2010-03-30mesa: add transform feedback queriesBrian Paul
And make _mesa_copy_string() non-static.
2010-02-25mesa: added texture array targets in sizeof_glsl_type()Brian Paul
2010-02-25mesa: Move src/mesa/glapi/dispatch.h to mesa.Chia-I Wu
glapi/dispatch.h is a core Mesa header file. Move the header file to main/ to make this clear. It also becomes clear after this change that IN_DRI_DRIVER is only used in core Mesa to enable the remap table.
2010-02-19mesa: restore _mesa_snprintf() - it's needed for WindowsBrian Paul
This reverts part of commit 298be2b028263b2c343a707662c6fbfa18293cb2
2010-02-19Replace the _mesa_*printf() wrappers with the plain libc versionsKristian Høgsberg
2010-02-19Replace _mesa_malloc, _mesa_calloc and _mesa_free with plain libc versionsKristian Høgsberg
2010-02-19Remove _mesa_memcpy in favor of plain memcpy.Kenneth Graunke
This may break the SUNOS4 build, but it's no longer relevant.
2010-02-19Remove _mesa_atoi in favor of plain atoi.Kenneth Graunke
2010-02-19Remove _mesa_strstr in favor of plain strstr.Kenneth Graunke
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-27mesa: fix double->float assignment warnings, int/uint comparison warningsBrian Paul
Reported by Karl Schultz.
2010-01-16glsl: Remove unnecessary headers from shader_api.c.Vinson Lee
2009-10-27glsl: avoid redundant state changes in _mesa_use_program()Brian Paul
2009-10-23mesa: refactor, new print_shader_info()Brian Paul
2009-10-16mesa: added MESA_GLSL=useprog debug flagBrian Paul
This logs glUseProgram() calls to stderr.
2009-10-13mesa: minor tweak to printf stringBrian Paul
2009-10-07Merge branch 'mesa_7_6_branch'Nicolai Hähnle
2009-10-07shader_api: Fix bounds checking of glUniform and glUniformMatrixNicolai Hähnle
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2009-09-29mesa: added nopfrag/nopvert options for MESA_GLSLBrian Paul
These options can be used to force vertex/fragment shaders to be no-op shaders (actually, simple pass-through shaders). For debug/test purposes.
2009-09-15Merge branch 'mesa_7_5_branch' into mesa_7_6_branchBrian Paul
2009-09-14glsl: added some link debug code (disabled)Brian Paul
2009-08-26Merge branch 'mesa_7_5_branch'Brian Paul
2009-08-26glsl: asst. clean-ups in set_program_uniform()Brian Paul
Remove redunant type check for samplers (assert instead). Move some local vars. Update comments.
2009-08-26glsl: signal that the program needs to be re-translated when samplers changeBrian Paul
2009-08-26mesa: var renaming, new assertionBrian Paul
2009-08-26Merge branch 'mesa_7_5_branch'Brian Paul
2009-08-26glsl: fix bug in sampler array indexingBrian Paul
Need to add the 'offset' parameter when indexing the parameter array. Before, if we were setting arrays of samplers, we were actually only setting the 0th sampler's value. Because of how progs/glsl/samplers.c is constructed, this wasn't showing up as a failure in the samplers_array output.
2009-08-25glsl: implement shader sampler validationBrian Paul
Shader validation should fail if there are two samplers of different types which reference the same texture unit. For example, if a cubemap sampler and a 2D sampler both reference texture unit 0, that's invalid.
2009-08-14Merge branch 'mesa_7_5_branch'Brian Paul
2009-08-13glsl: fix some uninitialized pointersBrian Paul
2009-08-04mesa: compute, print shader checksumBrian Paul
2009-06-26glsl: Added gl_shader_state::EmitContReturn fieldBrian Paul
This is the start of a glsl-continue-return feature branch to support a GLSL code generator option for 'continue' and 'return' statements. Some targets don't support CONT or RET statements so we'll need to try to generate code that does not use them...
2009-06-26Merge branch 'mesa_7_5_branch'Brian Paul
Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
2009-05-08mesa: more shader debug code (disabled)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-04-14mesa: remove unused matrixType param from ctx->Driver.UniformMatrix() functionsBrian Paul
2009-04-14mesa: move #define for GL_PROGRAM_BINARY_LENGTH_OESBrian Paul
2009-03-19glsl: change GLSL #pragma initializationBrian Paul
Initialize the shader's pragma settings before calling the compiler. Added pragma "Ignore" fields to allow overriding the #pragma directives found in shader source code.
2009-03-13mesa: glUseProgram() debug code (disabled)Brian Paul
2009-02-18glsl: asst improvements, clean-ups in set_program_uniform()Brian Paul
Move the is_boolean/integer_type() calls out of the loops. Move the is_sampler_type() function near the bool/int functions. Add a bunch of comments.
2009-02-18glsl: fix inequality in set_program_uniform()Brian Paul
We were off by one when checking for too many uniform values.
2009-02-18mesa: improved error msgBrian Paul
2009-02-16mesa: remove old commentsBrian Paul
Note: the default value for EmitCondCodes is FALSE. This means the GLSL compiler will emit code like this: SEQ TEMP[0].x, A, B; IF TEMP[0].x; ... ENDIF But if EmitCondCodes is TRUE, condition codes will be used instead: SEQ.C TEMP[0].x, A, B; IF (NE.xxxx); ... ENDIF
2009-02-11glsl: allow setting arrays of samplers in set_program_uniform()Brian Paul
Arrays of sampler vars haven't been tested much and might actually be broken. Will need to be revisited someday. Another fix for bug 20056.
2009-02-11glsl: raise GL_INVALID_OPERATION for glUniform(location < -1)Brian Paul
location = -1 is silently ignored, but other negative values should raise an error. Another fix for bug 20056.
2009-02-11glsl: rework _mesa_get_uniform[fi]v() to avoid using a fixed size ↵Brian Paul
intermediate array
2009-02-11glsl: fix glUniform() array bounds error checkingBrian Paul
If too many array elements are specified, they're to be silently ignored (don't raise a GL error). Fixes another issue in bug 20056.
2009-02-11glsl: fix incorrect size returned by glGetActiveUniform() for array elements.Brian Paul
Fixes one of the issues in bug 20056.