summaryrefslogtreecommitdiff
path: root/src/mesa/shader
AgeCommit message (Collapse)Author
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).
2010-01-22mesa: use new fetch_vector1ui() function for 'unpack' GPU instructionsBrian Paul
The UP2H, UP2US, UP4B and UP4UB instructions interpret the float registers as integers. With gcc -O3 some bits were getting mixed up somewhere. This is part of the fix for the piglit fp-unpack-01 test failure (bug 25973).
2010-01-16mesa: Remove unnecessary headers from arbprogparse.c.Vinson Lee
2010-01-16mesa: Remove unnecessary header from nvvertparse.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from prog_execute.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from prog_statevars.c.Vinson Lee
2010-01-16glsl: Remove unnecessary headers from shader_api.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from slang_emit.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from slang_builtin.c.Vinson Lee
2010-01-16glsl: Remove unnecessary headers from slang_compile.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from slang_link.c.Vinson Lee
2010-01-16glsl: Remove unnecessary header from slang_log.c.Vinson Lee
2010-01-06mesa: test index bounds before array elementRoel Kluin
Check whether the index is within bounds before accessing the array. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Brian Paul <brianp@vmware.com>
2010-01-05ARB prog parser: regenerated parser fileBrian Paul
2010-01-05ARB prog parser: fix parameter binding typeBrian Paul
References to program local and enviroment parameters are put into the unified program parameters list as PROGRAM_STATE_VAR entries which point into the local or environment arrays. So the param_binding_type field should be PROGRAM_STATE_VAR. This fixes the piglit vpfp-generic vp-arl-env-array.vpfp and vp-arl-local-array.vpfp test failures.
2010-01-05ARB prog parser: regenerated parser filesBrian Paul
2010-01-05ARB prog parser: add allowSwizzle param to initialize_symbol_from_const()Brian Paul
We need to disable constant consolidation when building an array of constants which might be indexed indirectly. Fixes regression in piglit vpfp-generic vp-arl-constant-array.vpfp test caused by earlier constant consolidation patch.
2010-01-05mesa: whitespace changes and commentsBrian Paul
2010-01-05mesa: change constant search behaviour in _mesa_add_unnamed_constant()Brian Paul
Only search for an existing, matching constant if swizzleOut is non-null. We need to be able to disable constant consolidation when building an array of constants which will be indexed indirectly.
2010-01-04glsl: use varName variable in _slang_gen_assignment()Brian Paul
2010-01-01ARB prog parser: Silence unused variable warnings.Vinson Lee
2009-12-29glsl: added uniform initializer checkBrian Paul
GLSL 1.10 disallows initializers for uniforms but GLSL 1.20 and later allows them. This patch uses the #version directive to allow/disallow uniform initializers. This addresses bug 25807, but piglit also needs to be fixed to specify the GLSL version in the shader.
2009-12-29ARB prog parser: use _mesa_add_unnamed_constant() to use fewer constant slotsBrian Paul
This function will search the constant parameters in an effort to re-use constant slots. For example, {1,2,3,4} and {4,1,1,2} can be stored in one constant slot and accessed with different swizzles. The swizzle info must be propogated though the parsing code in a few places. Fixes Piglit "vpfp-generic tests/shaders/generic/big-param.vpfp" failure.
2009-12-27Merge branch 'mesa_7_6_branch' into mesa_7_7_branchBrian Paul
Conflicts: src/gallium/auxiliary/util/u_network.c src/gallium/auxiliary/util/u_network.h src/gallium/drivers/i915/i915_state.c src/gallium/drivers/trace/tr_rbug.c src/gallium/state_trackers/vega/bezier.c src/gallium/state_trackers/vega/vg_context.c src/gallium/state_trackers/xorg/xorg_crtc.c src/gallium/state_trackers/xorg/xorg_driver.c src/gallium/winsys/xlib/xlib_brw_context.c src/mesa/main/mtypes.h
2009-12-23glsl: Initialize member a_obj of struct slang_operation.Vinson Lee
2009-12-22mesa: fix binary() function, printf format stringBrian Paul
Need to use the constant 1ULL and 0xllx format string. This fixes incorrect results and a NULL pointer/parameter bug.
2009-12-21mesa: Include <unistd.h> only when one is available.Michal Krol
(cherry picked from commit 970823978c2f7d2cf0757aa6ddbd6289b34c476f)
2009-12-21Merge branch 'mesa_7_6_branch' into mesa_7_7_branchBrian Paul
Conflicts: configure.ac progs/demos/morph3d.c progs/demos/textures.c progs/glsl/shtest.c progs/glsl/texaaline.c progs/tests/packedpixels.c progs/xdemos/corender.c src/mesa/main/version.h
2009-12-18glsl: clear out shader code before compilingBrian Paul
When we start compiling a shader, first free the existing gl_program. This (mostly) fixes the piglit glsl-reload-source test. Without this change, we were actually appending the new GPU code onto the previous program.
2009-12-16mesa: remove //-style commentsBrian Paul
2009-12-12glsl: Initialize member label of struct slang_operation to NULL.Vinson Lee
2009-12-11mesa: remove unnecessary loop in _mesa_remove_output_reads()Brian Paul
2009-12-11mesa: check dst reg in _mesa_find_free_register()Brian Paul
If a register was only being used as a destination (as will happen when generated condition-codes) we missed its use. So we'd errantly return a register index that was really in-use, not free. Fixes bug 25579.
2009-12-10mesa: Initialize variable in MatchInstruction.Vinson Lee
2009-12-10mesa: Assign _mesa_lookup_parameter_index return value to GLint.Vinson Lee
2009-12-10glsl: Increase size of array in_slang_lookup_constant from 4 to 16.Vinson Lee
For some cases, _mesa_GetIntegerv reads up to params[15].
2009-12-10glsl: Fix array out-of-bounds access by _slang_lookup_constant.Vinson Lee
2009-12-09glsl: Remove unused member x from struct slang_operation.Vinson Lee
2009-11-07prog parse: Handle GL_VERTEX_PROGRAM_ARB in glLoadProgramNVIan Romanick
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_ARB in glLoadProgramNVIan Romanick
2009-11-07prog parse: Handle GL_FRAGMENT_PROGRAM_NV in glProgramStringARBIan Romanick
2009-11-06ARB prog parser: Regenerate parser from previous commits.Ian Romanick
2009-11-06ARB prog parser: Release old program string in ↵Ian Romanick
_mesa_parse_arb_{fragment,vertex}_program The program structure passed to _mesa_parse_arb_program is just a place holder. The stings that actually need to be released are only known to the functions calling _mesa_parse_arb_program, so they should be freed there.
2009-11-06ARB prog parser: Release strings returned from the lexer that don't need to ↵Ian Romanick
be kept
2009-11-06Revert "ARB prog parser: Fix epic memory leak in lexer / parser interface"Ian Romanick
This reverts commit 93dae6761bc90bbd43b450d2673620ec189b2c7a. This change was completely broken when the parser uses multiple strings in a single production. It would be nice if bug fixes could initially land somewhere other than the stable branch.
2009-10-28mesa: remove unneeded #includesBrian Paul
2009-10-28mesa: include imports.h to silence warningBrian Paul
2009-10-27ARB prog parser: Fix epic memory leak in lexer / parser interfaceIan Romanick
Anything that matched IDENTIFIER was strdup'ed and returned to the parser. However, almost every case of IDENTIFIER in the parser just dropped the returned string on the floor. Every swizzle string, every option string, every use of a variable, etc. leaked memory. Create a temporary buffer in the parser state (string_dumpster and dumpster_size). Return strings from the lexer to the parser in the buffer. Grow the buffer as needed. When the parser needs to keep a string (i.e., delcaring a new variable), let it make a copy then. The only leak that valgrind now detects is /occasionally/ the copy of the program string in gl_program::String is leaked. I'm not seeing how. :(
2009-10-27ARB prog parser: Don't leak program stringIan Romanick
The program string is kept in the program object. On the second call into glProgramStringARB the previous kept string would be leaked.