Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-06-26 | glsl: move/simplify error checking for 'return' statementsglsl-continue-return | Brian Paul | 1 | -22/+14 | |
2009-06-26 | glsl: overhaul 'return' statement handling | Brian Paul | 3 | -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. | |||||
2009-06-25 | glsl: predicate assignments according to __returnFlag | Brian Paul | 1 | -4/+29 | |
Fixes glean "function with early return (3)" case (when EmitContReturn=FALSE). | |||||
2009-06-25 | glsl: added slang_variable::is_global field | Brian Paul | 1 | -0/+1 | |
2009-06-25 | glsl: silence a problem warning | Brian Paul | 1 | -1/+2 | |
2009-06-25 | glsl: code refactoring for return statements | Brian Paul | 1 | -70/+88 | |
2009-06-25 | glsl: fix assorted regressions related to early-return-removal | Brian Paul | 2 | -14/+35 | |
2009-06-25 | glsl: comments, field reordering | Brian Paul | 1 | -1/+4 | |
2009-06-25 | glsl: rework loop nesting code | Brian Paul | 2 | -41/+87 | |
2009-06-25 | glsl: remove test for loop unrolling when we hit conditional cont/break | Brian Paul | 1 | -4/+0 | |
This is no longer needed since we added the new _slang_loop_contains_continue_or_break() function/test. | |||||
2009-06-24 | glsl: checkpoint: predicate __retVal = expr with __returnFlag | Brian Paul | 1 | -26/+60 | |
The glean "function with early return (1)" test passes now. | |||||
2009-06-24 | glsl: use new helper functions in _slang_gen_logical_and/or() | Brian Paul | 1 | -15/+9 | |
2009-06-24 | glsl: add comments | Brian Paul | 1 | -0/+3 | |
2009-06-24 | glsl: checkpoint: replace 'return' with __returnFlag=true; | Brian Paul | 1 | -7/+68 | |
Needed for "remove early returns" transformation. | |||||
2009-06-24 | glsl: fix up scoping for parent/children in slang_operation_copy() | Brian Paul | 1 | -0/+9 | |
This will need more testing, but no regressions seen so far. | |||||
2009-06-24 | glsl: fix uninitialized var in _slang_gen_for_without_continue() | Brian Paul | 1 | -1/+1 | |
2009-06-24 | glsl: added slang_operation_free_children() | Brian Paul | 2 | -0/+17 | |
2009-06-24 | glsl: added slang_oper_num_children() helper | Brian Paul | 1 | -0/+7 | |
2009-06-24 | glsl: check-point: declare _returnFlag | Brian Paul | 1 | -0/+33 | |
2009-06-23 | glsl: added slang_operation_insert_child() | Brian Paul | 2 | -0/+23 | |
2009-06-23 | glsl: use slang_generate_declaration() to consolidate some code | Brian Paul | 1 | -31/+37 | |
2009-06-23 | glsl: remove obsolete comment | Brian Paul | 1 | -3/+0 | |
2009-06-23 | st/mesa: query PIPE_CAP_TGSI_CONT_SUPPORTED | Brian Paul | 1 | -0/+5 | |
2009-06-23 | gallium: added PIPE_CAP_TGSI_CONT_SUPPORTED query | Brian Paul | 4 | -0/+7 | |
Does the driver support TGSI_OPCODE_CONT? If not, the GLSL compiler will generate code such that 'continue' statements are converted into 'breaks'. | |||||
2009-06-23 | glsl: implement _slang_gen_while_without_continue() | Brian Paul | 1 | -82/+115 | |
2009-06-23 | glsl: fix a bug involving 'continue' in 'for' loops | Brian Paul | 2 | -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. | |||||
2009-06-23 | glsl: added slang_oper_child_const() | Brian Paul | 1 | -0/+8 | |
2009-06-23 | glsl: use _slang_loop_contains_continue_or_break() to check for unrolling | Brian Paul | 1 | -5/+36 | |
The previous test failed for nested loops. | |||||
2009-06-18 | glsl: use new _slang_loop_contains_continue() helper function | Brian Paul | 1 | -5/+126 | |
2009-06-18 | glsl: implement continue->break translation for do-while loops | Brian Paul | 1 | -15/+219 | |
2009-06-18 | glsl: added slang_operation_literal_int/bool() helper functions | Brian Paul | 1 | -0/+26 | |
2009-06-18 | glsl: don't allocate 0-length children array in slang_operation_copy() | Brian Paul | 1 | -6/+7 | |
2009-06-18 | glsl: remove debug code, misc clean-up | Brian Paul | 1 | -5/+0 | |
2009-06-18 | glsl: implement continue->break transformation for for-loops | Brian Paul | 1 | -3/+167 | |
2009-06-18 | glsl: added slang_operation_add_children() and slang_oper_child() helpers | Brian Paul | 2 | -0/+25 | |
2009-06-18 | glsl: added slang_assemble_ctx::EmitContReturn field, init | Brian Paul | 2 | -0/+4 | |
2009-06-18 | demos: improve argv parsing in fslight.c | Brian Paul | 1 | -2/+6 | |
2009-06-17 | glsl: don't unroll loops containing continue/break | Brian Paul | 1 | -0/+6 | |
Just search the AST in _slang_can_unroll_for_loop(). | |||||
2009-06-17 | Revert "slang: if/else/break & if/else/continue work for unrolled loops" | Brian Paul | 2 | -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 | |||||
2009-06-17 | glsl: Added gl_shader_state::EmitContReturn field | Brian Paul | 2 | -0/+2 | |
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... | |||||
2009-06-17 | glsl: call _mesa_postprocess_program(), disabled | Brian Paul | 1 | -0/+8 | |
2009-06-17 | mesa: silence warning | Brian Paul | 1 | -0/+2 | |
2009-06-17 | mesa: added _mesa_postprocess_program() to aid shader debugging | Brian Paul | 2 | -0/+60 | |
2009-06-17 | radeon: Flush command buffer on viewport change | Jerome Glisse | 1 | -0/+1 | |
We flush the command buffer so we don't emit mixed state (with new and previous buffer size) command buffer, this is especialy affecting zbuffer states. | |||||
2009-06-17 | r300: don't emit vap index offset on r5xx hw when using cs | Jerome Glisse | 1 | -1/+1 | |
vap index offset is programmed to 0 by the kernel, it would add work to kernel checker to allow userspace programming of this so it's now disallowed with CS on KMS. | |||||
2009-06-17 | GLX: attempt to fix glean makeCurrent test cases. | Dave Airlie | 2 | -2/+6 | |
Two parts to this: One we don't keep pointers to possibly freed memory anymore once we unbind the drawables from the context. Brian I need to figure out what the comment you made there, can we get a glean/piglit test so we can fix it properly? If the new gc is the same as the oldGC, we call the unbind even though we just bound it in that function. doh. | |||||
2009-06-17 | radeon: fix warnings in wrapper with libdrm | Dave Airlie | 1 | -15/+15 | |
2009-06-16 | Merge branch 'mesa_7_5_branch' | Brian Paul | 26 | -105/+215 | |
Conflicts: src/mesa/main/api_validate.c | |||||
2009-06-16 | i965: fix bugs in projective texture coordinates | Brian Paul | 5 | -20/+54 | |
For the TXP instruction we check if the texcoord is really a 4-component atttibute which requires the divide by W step. This check involved the projtex_mask field. However, the projtex_mask field was being miscalculated because of some confusion between vertex program outputs and fragment program inputs. 1. Rework the size_masks calculation so we correctly set bits corresponding to fragment program input attributes. 2. Rename projtex_mask to proj_attrib_mask since we're interested in more than just texcoords (generic varying vars too). 3. Simply the indexing of the size_masks and proj_attrib_mask fields. 4. The tracker::active[] array was mis-dimensioned. Use MAX_PROGRAM_TEMPS instead of a magic number. 5. Update comments, add new assertions. With these changes the Lightsmark demo/benchmark renders correctly, until we eventually hit a GPU lockup... | |||||
2009-06-16 | softpipe: fix out of bounds quad rasterization bug | Brian Paul | 1 | -3/+6 | |
For some triangles we can generate quads which lie just outside the surface bounds. Just check the quad's mask before trying to emit/process the quad. Fixes failed assertion in Lightsmark. |