summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_codegen.c
AgeCommit message (Collapse)Author
2008-11-05mesa: fix a GLSL array indexing codegen bugBrian Paul
Expressions like array[i] + array[j] didn't work properly before.
2008-11-04mesa: fix float-valued GLSL vertex attribute variablesBrian Paul
The swizzle mask for such variables wasn't set up properly.
2008-11-01mesa: fix assignment / parameter passing of sampler typesBrian Paul
2008-10-31mesa: fix copy/paste error in GLSL error msgBrian Paul
2008-08-19mesa: glsl: more writemask error checkingBrian Paul
2008-08-19mesa: glsl: added some post incr/decr error checksBrian Paul
2008-08-19mesa: glsl: limit function matching through castingBrian Paul
2008-08-15mesa: glsl: fix linking of varying vars which are arraysBrian Paul
2008-08-12mesa: glsl: fix error detection of writing to read-only variablesBrian Paul
2008-08-12mesa: glsl: better error messagesBrian Paul
2008-08-06mesa: glsl: check for rect tex samplersBrian Paul
2008-08-06mesa: glsl: disallow initializers for varying varsBrian Paul
2008-08-06mesa: glsl: more type checking for attribute/varying/uniform vars/localsBrian Paul
2008-08-06mesa: glsl: check that attribute vars are of float/vec/mat typeBrian Paul
2008-08-06mesa: glsl: more assignment type checkingBrian Paul
Also that const declarations have initializers and that uniforms/samplers can't have initializers.
2008-08-06mesa: glsl: count number of temp regs usedHaihao Xiang
2008-08-05mesa: glsl: code consolidation in _slang_gen_declaration()Brian Paul
2008-08-05mesa: glsl: additional type checking for assignments, inequalitiesBrian Paul
2008-08-05mesa: glsl: re-enable assignment type checkingBrian Paul
2008-08-05mesa: glsl: re-org of intermediate/temp storageBrian Paul
Simplify the code for allocating storage for intermediate results. Use fewer temps in some cases. Also, use new asm vec4_move intrinsic instead of regular assigments in various constructors. For example: float f; vec3 v; v.xyz = f; is not legal GLSL, so do this instead: __asm vec4_move v.xyz, f; // note: f will auto-expand into f.xxxx Plus, fix assorted bugs in structure comparison.
2008-08-05mesa: glsl: disable broken assignment type checking for nowBrian Paul
2008-08-04mesa: glsl: check struct types in _slang_assignment_compatible()Brian Paul
2008-08-04mesa: glsl: varying vars can't be user-defined structsBrian Paul
2008-08-04mesa: glsl: if/while/do condition must be booleanBrian Paul
2008-08-04mesa: glsl: additional type checking for ?: and = operatorsBrian Paul
2008-08-04mesa: glsl: don't allow comparision of arraysBrian Paul
2008-08-04mesa: glsl: error on const-qualified array declarationsBrian Paul
2008-08-04mesa: glsl: added null ptr checkBrian Paul
2008-08-04mesa: glsl: check that rhs of const var initializer is also constBrian Paul
2008-08-04mesa: glsl: fix initialize size error checkBrian Paul
2008-08-04mesa: glsl: added initializer size/type error checkingBrian Paul
2008-07-25mesa: glsl: assorted fixes for resolving polymorphic functionsBrian Paul
Plus, - fix some issues in casting function arguments to format param types. - fix some vec/mat constructor bugs - find/report more syntax/semantic errors
2008-07-25mesa: glsl: additional error detectionBrian Paul
Plus begin some fixes for vec/matrix constructors.
2008-07-24mesa: gls: fix broken else clause of conditional break/continueBrian Paul
In the following case: for () { if (cond) break; // or continue; else something; } The "something" block didn't get emitted.
2008-07-24mesa: Silence compiler warning on windows.Michal Krol
2008-07-23mesa: glsl: mark constructor params as constBrian Paul
2008-07-22mesa: glsl: rework swizzle storage handlingBrian Paul
Build on the heirarchal approach implemented for arrays/structs.
2008-07-22mesa: glsl: implement constructor functions for user-defined typesBrian Paul
2008-07-21mesa: fix +=, -=, etc. operatorsBrian Paul
2008-07-21mesa: assorted glsl uniform/attribute fixesBrian Paul
Fix incorrect uniform/attribute size query results. Add missing error checking for glUniform, glUniformMatrix params Fix an array size/allocation error.
2008-07-21mesa: remove debug codeBrian Paul
2008-07-18mesa: glsl: various writemask/swizzle improvements and clean-upsBrian Paul
2008-07-18mesa: rework array/struct addressing code.Brian Paul
The slang_ir_storage type now has a pointer to parent storage to represent storage of an array element within an array, or a field within a struct. This fixes some problems related to addressing of fields/elements in non- trivial cases. More work to follow.
2008-07-15mesa: fix some function inlining bugsBrian Paul
Need to add local vars of original function to the new scope's variable list (though the DECLs were already present). In slang_operation_copy() call slang_replace_scope() for SLANG_OPER_BLOCK_NEW_SCOPE opers.
2008-07-15mesa: Silence compiler warnings on Windows.Michal Krol
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-03mesa: fix array storage allocation bugBrian Paul
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: 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