Age | Commit message (Collapse) | Author | |
---|---|---|---|
2009-07-09 | glsl: do const parameter optimization for array element actual parameters | Brian Paul | |
When a function parameter is const-qualified we can avoid making a copy of the actual parameter (we basically do a search/replace when inlining). This is now done for array element params too, resulting in better code (fewer MOV instructions). We should allow some other types of function arguments here but let's be conservative for the moment. | |||
2009-06-26 | glsl: move/simplify error checking for 'return' statements | Brian Paul | |
2009-06-26 | glsl: overhaul 'return' statement handling | Brian Paul | |
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. | |||
2009-06-26 | glsl: predicate assignments according to __returnFlag | Brian Paul | |
Fixes glean "function with early return (3)" case (when EmitContReturn=FALSE). | |||
2009-06-26 | glsl: silence a problem warning | Brian Paul | |
2009-06-26 | glsl: code refactoring for return statements | Brian Paul | |
2009-06-26 | glsl: fix assorted regressions related to early-return-removal | Brian Paul | |
2009-06-26 | glsl: rework loop nesting code | Brian Paul | |
2009-06-26 | glsl: remove test for loop unrolling when we hit conditional cont/break | Brian Paul | |
This is no longer needed since we added the new _slang_loop_contains_continue_or_break() function/test. | |||
2009-06-26 | glsl: checkpoint: predicate __retVal = expr with __returnFlag | Brian Paul | |
The glean "function with early return (1)" test passes now. | |||
2009-06-26 | glsl: use new helper functions in _slang_gen_logical_and/or() | Brian Paul | |
2009-06-26 | glsl: checkpoint: replace 'return' with __returnFlag=true; | Brian Paul | |
Needed for "remove early returns" transformation. | |||
2009-06-26 | glsl: fix uninitialized var in _slang_gen_for_without_continue() | Brian Paul | |
2009-06-26 | glsl: check-point: declare _returnFlag | Brian Paul | |
2009-06-26 | glsl: use slang_generate_declaration() to consolidate some code | Brian Paul | |
2009-06-26 | glsl: remove obsolete comment | Brian Paul | |
2009-06-26 | glsl: implement _slang_gen_while_without_continue() | Brian Paul | |
2009-06-26 | glsl: fix a bug involving 'continue' in 'for' loops | Brian Paul | |
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. | |||
2009-06-26 | glsl: use _slang_loop_contains_continue_or_break() to check for unrolling | Brian Paul | |
The previous test failed for nested loops. | |||
2009-06-26 | glsl: use new _slang_loop_contains_continue() helper function | Brian Paul | |
2009-06-26 | glsl: implement continue->break translation for do-while loops | Brian Paul | |
2009-06-26 | glsl: remove debug code, misc clean-up | Brian Paul | |
2009-06-26 | glsl: implement continue->break transformation for for-loops | Brian Paul | |
2009-06-26 | glsl: don't unroll loops containing continue/break | Brian Paul | |
Just search the AST in _slang_can_unroll_for_loop(). | |||
2009-06-26 | Revert "slang: if/else/break & if/else/continue work for unrolled loops" | Brian Paul | |
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 | |||
2009-04-01 | glsl: implement compiling/linking of separate compilation units | Brian Paul | |
A shader program may consist of multiple shaders (source code units). If we find there are unresolved functions after compiling the unit that defines main(), we'll concatenate all the respective vertex or fragment shaders then recompile. This isn't foolproof but should work in most cases. | |||
2009-03-20 | slang: Use _mesa_snprintf() wrapper. | Michal Krol | |
2009-03-19 | slang: support uniform arrays | Alan Hourihane | |
2009-03-19 | glsl: when debug pragma is on, emit comments about function calls/inlines | Brian Paul | |
BTW, the debug pragma syntax is "#pragma debug(on)" | |||
2009-03-19 | slang: if/else/break & if/else/continue work for unrolled loops | Alan Hourihane | |
2009-03-18 | slang: redo the last commit for if/break & if/continue tests as it | Alan Hourihane | |
wasn't good enough for deeply nested if's. | |||
2009-03-18 | Revert "slang: if we detect an if/break or if/continue within a loop and we're" | Alan Hourihane | |
This reverts commit 752296b8f311c5e3844f3ce89d17ba57224ce5ba. | |||
2009-03-18 | slang: if we detect an if/break or if/continue within a loop and we're | Alan Hourihane | |
trying to unroll, bail, and fallback to doing the real loop. | |||
2009-03-10 | glsl: remove _slang_attach_storage() function | Brian Paul | |
This was used to handle both variable declarations and references to variables. Instead, just do storage allocation and assignment for declarations and references, respectively. This is a step toward better var/uniform allocation (only allocate storage for vars/uniforms that are actually referenced by the code). | |||
2009-03-10 | glsl: some clean-ups, remove old assertions, add new assertions | Brian Paul | |
2009-03-10 | glsl: remove stray/unneeded totalSize assignment | Brian Paul | |
2009-03-07 | mesa: gl_register_file enum typedef | Brian Paul | |
2009-02-28 | mesa: rename, reorder FRAG_RESULT_x tokens | Brian Paul | |
s/FRAG_RESULT_DEPR/FRAG_RESULT_DEPTH/ s/FRAG_RESULT_COLR/FRAG_RESULT/COLOR/ Remove FRAG_RESULT_COLH (NV half-precision) output since we never used it. Next, we might merge the COLOR and DATA outputs (COLOR0, COLOR1, etc). | |||
2009-02-20 | glsl: use new IR opcodes for TEX instructions with shadow comparison | Brian Paul | |
Such TEX instructions will have the TexShadow flag set. The gl_program::ShadowSamplers field is now set in the linker. We missed that before. | |||
2009-02-20 | glsl: rename GLSL texture assembly instructions to be more legible | Brian Paul | |
2009-02-20 | glsl: fix vec4_texp_rect IR code (need projective version) | Brian Paul | |
2009-02-16 | glsl: silence some uninit var warnings | Brian Paul | |
2009-01-14 | glsl: minor clean-up for rect sampler test | Brian Paul | |
2009-01-14 | glsl: propagate pragma info down into compiler from preprocessor | Brian Paul | |
2009-01-14 | glsl: simplify IR storage for samplers | Brian Paul | |
Don't overload the Size field with the texture target, to avoid confusion. | |||
2009-01-14 | glsl: fix regression from sampler arrays commit | Alan Hourihane | |
2009-01-14 | glsl: fix a comment typo | Alan Hourihane | |
2009-01-14 | glsl: support sampler arrays. | Alan Hourihane | |
2009-01-09 | glsl: make minimum struct size = 2, not 1 | Brian Paul | |
1-component structs such as "struct foo { float x; }" could get placed at any position within a register. This caused some trouble computing the field offset which assumed all struct objects were placed at R.x. It would be unusual to hit this case in normal shaders. | |||
2009-01-07 | glsl: bump up MAX_FOR_LOOP_UNROLL_COMPLEXITY | Brian Paul | |