summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang
AgeCommit message (Collapse)Author
2008-07-14mesa: assemble main() after all other functionsBrian Paul
Before, main() had to come after any functions it called.
2008-07-09mesa: check for null shader->SourceBrian Paul
2008-07-08mesa: fix bug/failure in recursive function inliningBrian Paul
Fixes a failure for cases such as y = f(a, f(a, b)) All the usual tests still pass but regressions are possible...
2008-07-08mesa: more debug outputBrian Paul
2008-07-08mesa: compute global var size before doing codegenBrian Paul
2008-07-08mesa: add missing VARYING case to storage_string()Brian Paul
2008-07-03mesa: fix incorrect array size, added assertionBrian Paul
2008-07-03mesa: fix array storage allocation bugBrian Paul
2008-07-03mesa: regenerated fileBrian Paul
2008-07-03mesa: additional vec4 constructorBrian Paul
2008-07-02mesa: additional GLSL built-in constantsBrian Paul
2008-07-02mesa: when linking a shader program, make sure all the shaders compiled OKBrian Paul
cherry-picked from master
2008-07-02mesa: added some debug code (disabled)Brian Paul
cherry-picked from master
2008-07-02mesa: regenerated fileBrian Paul
2008-07-02mesa: added some missing equal() notEqual() intrinsicsBrian Paul
cherry-picked from master
2008-07-02mesa: disable some debug assertionsBrian Paul
We can sometimes fail these assertions because of how swizzled storage works. Will revisit someday.
2008-07-02mesa: regenerated filesBrian Paul
2008-07-02mesa: fix all(bvec2) function typo, add missing bvec2/3/4() constuctorsBrian Paul
cherry-picked from master
2008-07-01mesa: fix a GLSL vector subscript/writemask bugBrian Paul
This fixes a failure for cases like: vec4 v; v[1] *= 2.0; The v[1] actually acts like a writemask, equivalent to v.y The fix is a bit convoluted, but will do for now. cherry-picked from master
2008-07-01mesa: move some functionsBrian Paul
cherry-picked from master
2008-07-01mesa: make _slang_swizzle_swizzle() non-privateBrian Paul
cherry-picked from master
2008-07-01mesa: better function inlining in the presence of 'return' statementsBrian Paul
Before, the presence of a 'return' statement always prevented inlining a function. This was because we didn't want to accidentally return from the _calling_ function. We still need the semantic of 'return' when inlining but we can't always use unconditional branches/jumps (GPUs don't always support arbitrary branching). Now, we allow inlining functions w/ return if the return is the last statement in the function. This fixes the common case of a function that returns a value, such as: vec4 square(const in vec4 x) { return x * x; } which effectively compiles into: vec4 square(const in vec4 x) { __retVal = x * x; return; } The 'return' can be no-op'd now and we can inline the function. cherry-picked from master
2008-07-01mesa: add/fix some IrInfo entries for debugging purposesBrian Paul
cherry-picked from master
2008-06-24mesa: Use appropriate unsigned/signed, float/integer types.José Fonseca
2008-06-12glsl: make sure we replace all output reads with temporariesZack Rusin
test in if.glsl
2008-06-12glsl: implement variable array indexesZack Rusin
2008-06-09glsl: fix array size initialiazers using const variablesZack Rusin
e.g. const int kernelSize = 9; uniform vec2 kernel[kernelSize];
2008-06-04Set the attribute as used.Alan Hourihane
2008-05-20fix incorrect sampler numbering/indexing.Brian Paul
All samplers indexes were zero. cherry-picked from master (b6fb0940c226373ac235a5d327d3fcfd742bc6b9)
2008-05-16Fix a program refcounting error, don't share program parameter lists.Brian Paul
The refcounting bug was causing a memleak (unfreed programs). The old parameter list sharing is not needed since the change in how uniforms are handled.
2008-05-14fix-up inlined/non-inlined function inconsistenciesBrian Paul
cherry-picked from master
2008-05-14mesa: rm unneeded fileBrian Paul
2008-05-14mesa: prefix rm command with -Brian Paul
2008-05-14rewrite some of the mat*mat, mat*vec intrinsicsBrian Paul
Also, remove obsolete matrix codegen code. cherry-picked from master
2008-05-14mesa: regenerate slang built-in data (asin(vec4) fix)Brian Paul
2008-05-14mesa: fix missing w assignment in asin(vec4)Brian Paul
2008-05-14mesa: updated commentBrian Paul
2008-05-14mesa: minor bug fixes from masterBrian Paul
2008-05-14mesa: dead code removalBrian Paul
2008-05-14mesa: minor bug fixes, null ptr checks, dead code removalBrian Paul
2008-05-14mesa: fix errors in LightModelProduct state, other misc error casesBrian Paul
2008-05-14fix some additional program refcounting bugsBrian Paul
cherry-picked from master
2008-05-06gallium: implement full reference counting for vertex/fragment programsBrian
Use _mesa_reference_vert/fragprog() wherever we assign program pointers. Fixes a memory corruption bug found with glean/api2 test. Another memory bug involving shaders yet to be fixed...
2008-04-14fix GL_ARB_texture_rectangle breakageBrian Paul
2008-04-14mesa: define #extension GL_ARB_texture_rectangleDavid Flynn
2008-04-07mesa: call _mesa_remove_varying_reads() after compiling vertex shadersBrian
2008-04-04mesa: no longer combine vertex/fragment shader parameters/uniformsBrian
GLSL Vertex and fragment shaders now have independent parameter buffers. A new gl_uniform_list is used to keep track of program uniforms and where each uniform is located in each shader's parameter buffer. This makes better use of the space in each buffer and simplifies shader linking.
2008-03-14mesa: init tmpNode to zerosBrian Paul
2008-03-14mesa: fix emit_clamp() so that we don't use an output register as temporaryBrian Paul
IR_CLAMP is decomposed into OPCODE_MIN+OPCODE_MAX. Allocate a temporary register for the intermediate value so we don't inadvertantly use an output register (which are write-only on some GPUs).
2008-03-13mesa: fix (harmless?) assignment in assertKeith Whitwell