summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader
Commit message (Collapse)AuthorAgeFilesLines
* glsl: overhaul 'return' statement handlingBrian Paul2009-06-263-215/+212
| | | | | | | A new node type (SLANG_OPER_RETURN_INLINED) is used to denote 'return' statements inside inlined functions which need special handling. All glean glsl1 tests pass for EmitContReturn=FALSE and TRUE.
* glsl: predicate assignments according to __returnFlagBrian Paul2009-06-261-4/+29
| | | | Fixes glean "function with early return (3)" case (when EmitContReturn=FALSE).
* glsl: added slang_variable::is_global fieldBrian Paul2009-06-261-0/+1
|
* glsl: silence a problem warningBrian Paul2009-06-261-1/+2
|
* glsl: code refactoring for return statementsBrian Paul2009-06-261-70/+88
|
* glsl: fix assorted regressions related to early-return-removalBrian Paul2009-06-262-14/+35
|
* glsl: comments, field reorderingBrian Paul2009-06-261-1/+4
|
* glsl: rework loop nesting codeBrian Paul2009-06-262-41/+87
|
* glsl: remove test for loop unrolling when we hit conditional cont/breakBrian Paul2009-06-261-4/+0
| | | | | This is no longer needed since we added the new _slang_loop_contains_continue_or_break() function/test.
* glsl: checkpoint: predicate __retVal = expr with __returnFlagBrian Paul2009-06-261-26/+60
| | | | The glean "function with early return (1)" test passes now.
* glsl: use new helper functions in _slang_gen_logical_and/or()Brian Paul2009-06-261-15/+9
|
* glsl: add commentsBrian Paul2009-06-261-0/+3
|
* glsl: checkpoint: replace 'return' with __returnFlag=true;Brian Paul2009-06-261-7/+68
| | | | Needed for "remove early returns" transformation.
* glsl: fix up scoping for parent/children in slang_operation_copy()Brian Paul2009-06-261-0/+9
| | | | This will need more testing, but no regressions seen so far.
* glsl: fix uninitialized var in _slang_gen_for_without_continue()Brian Paul2009-06-261-1/+1
|
* glsl: added slang_operation_free_children()Brian Paul2009-06-262-0/+17
|
* glsl: added slang_oper_num_children() helperBrian Paul2009-06-261-0/+7
|
* glsl: check-point: declare _returnFlagBrian Paul2009-06-261-0/+33
|
* glsl: added slang_operation_insert_child()Brian Paul2009-06-262-0/+23
|
* glsl: use slang_generate_declaration() to consolidate some codeBrian Paul2009-06-261-31/+37
|
* glsl: remove obsolete commentBrian Paul2009-06-261-3/+0
|
* glsl: implement _slang_gen_while_without_continue()Brian Paul2009-06-261-82/+115
|
* glsl: fix a bug involving 'continue' in 'for' loopsBrian Paul2009-06-262-23/+44
| | | | | | | | Need to execute the for loop's increment code before we continue. Add a slang_assemble_ctx::CurLoopOper field to keep track of the containing loop and avoid the "cont if true" path in this situation. Plus, assorted clean-ups.
* glsl: added slang_oper_child_const()Brian Paul2009-06-261-0/+8
|
* glsl: use _slang_loop_contains_continue_or_break() to check for unrollingBrian Paul2009-06-261-5/+36
| | | | The previous test failed for nested loops.
* glsl: use new _slang_loop_contains_continue() helper functionBrian Paul2009-06-261-5/+126
|
* glsl: implement continue->break translation for do-while loopsBrian Paul2009-06-261-15/+219
|
* glsl: added slang_operation_literal_int/bool() helper functionsBrian Paul2009-06-261-0/+26
|
* glsl: don't allocate 0-length children array in slang_operation_copy()Brian Paul2009-06-261-6/+7
|
* glsl: remove debug code, misc clean-upBrian Paul2009-06-261-5/+0
|
* glsl: implement continue->break transformation for for-loopsBrian Paul2009-06-261-3/+167
|
* glsl: added slang_operation_add_children() and slang_oper_child() helpersBrian Paul2009-06-262-0/+25
|
* glsl: added slang_assemble_ctx::EmitContReturn field, initBrian Paul2009-06-262-0/+4
|
* glsl: don't unroll loops containing continue/breakBrian Paul2009-06-261-0/+6
| | | | Just search the AST in _slang_can_unroll_for_loop().
* Revert "slang: if/else/break & if/else/continue work for unrolled loops"Brian Paul2009-06-262-38/+7
| | | | | | | | | | | We should just check if the loop contains a continue/break in the _slang_can_unroll_for_loop() test function... This reverts commit 989856bde47d699d7e18798df4013fbf962e1d4b. Conflicts: src/mesa/shader/slang/slang_codegen.h
* glsl: Added gl_shader_state::EmitContReturn fieldBrian Paul2009-06-261-0/+1
| | | | | | | 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...
* mesa: rename MAX_VERTEX_ATTRIBS to MAX_VERTEX_GENERIC_ATTRIBSBrian Paul2009-06-221-4/+4
| | | | | | Be clearer that this is the number of generic vertex program/shader attributes, not counting the legacy attributes (pos, normal, color, etc). (cherry picked from commit 4a95185c9f30c2de7a03bb1a0653f51b53b1111d)
* glsl: fix warnings, update comments, s/TRUE/GL_TRUE/Brian Paul2009-06-101-3/+4
| | | | (cherry picked from master, commit 7fdd64ab29576e607434fb8c82ddfa61e8ea6aa8)
* glsl: Handle continuation characters in preprocessor.Brian Paul2009-06-101-1/+67
| | | | (cherry picked from master, commit cc22620e4b11425997f3bc1fc70f4c88cec22d2e)
* glsl: Fix symbol replacement handling in preprocessor.Brian Paul2009-06-101-13/+15
| | | | (cherry picked from master, commit d9617deb008b75f4a605a30408aeb1948139c33e)
* glsl: Expand nested preprocessor macros.Brian Paul2009-06-091-1/+14
| | | | (cherry picked from master, commit ef8caec29ae73bb2bbeb48f0578d839ef29348cd)
* glsl: Fix preprocessor define argument parsing for dead sections.Brian Paul2009-06-081-4/+4
| | | | (cherry picked from master, commit 19a54d9f1055c366fd77026dd67007a8d5921f58)
* mesa: better error message for invalid texture unit indexBrian Paul2009-06-081-1/+4
|
* mesa: more complete fix for transform_invarient glitchesKeith Whitwell2009-05-081-2/+117
| | | | | | Add a new flag mvp_with_dp4 in the context, and use that to switch both ffvertex.c and programopt.c vertex transformation code to either DP4 or MUL/MAD implementations.
* mesa: added _mesa_check_soa_dependencies() functionBrian Paul2009-04-292-0/+53
| | | | | This function will check an instruction to see if there's data dependencies between the dst and src registers if executed in an SOA manner.
* Avoid a segfault in shader compilationRobert Ellison2009-04-271-0/+6
| | | | | | | | | | If a shader reaches an out-of-memory condition while adding a new function (reallocating the function list), a segfault will occur during cleanup (because the num_functions field is non-zero, but the functions pointer is NULL). This fixes that segfault by zeroing out the num_functions field if reallocation fails.
* mesa: Fix buffer overflow when parsing generic vertex attributes.Brian Paul2009-04-221-3/+9
|
* mesa: new _NEW_PROGRAM_CONSTANTS flagBrian Paul2009-04-213-9/+7
| | | | | | | | | | | | | | | 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.
* mesa: print internal.current[i] attribBrian Paul2009-04-211-2/+7
|
* mesa: print parameter list dirty state flag maskBrian Paul2009-04-211-0/+1
|