summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Checkpoint: implementing true CAL/RET instructions for subroutine calls.Brian2007-03-264-13/+92
| | | | | | Also, found/fixed a code generation regression: the emit_swizzle() function was always returning NULL. This caused emit_move() to miss its chance at peephole optimization.
* Get rid of IR_JUMP and related code.Brian2007-03-263-25/+2
|
* special case RETBrian2007-03-261-0/+7
|
* Get rid of SLANG_OPER_GOTO, start rewrite of 'return' handling.Brian2007-03-264-56/+65
|
* remove debug abort() callsBrian2007-03-264-14/+10
|
* Additional error checking for 'return' statements.Brian2007-03-263-9/+58
|
* undo some debugging hacksBrian2007-03-261-2/+2
|
* dead code elimination for constant-valued if/then/elseBrian2007-03-261-0/+13
|
* r300: Remove a warning when vertex programs produce an unused outputNicolai Haehnle2007-03-261-3/+2
| | | | | | | | | | | As far as we know, the hardware prefers outputs packed tightly together with no holes caused by outputs that are not even read by the fragment program. Therefore, we slightly rewrite vertex programs in this case. It would be interesting to test this interaction between vertex programs and fragment programs further, because some of that rewrite may be unnecessary. However, play it safe for now and don't change the current behaviour.
* r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle2007-03-261-115/+115
|
* Fix a few issues with computing storage sizes with respect to swizzles.Brian2007-03-262-42/+29
|
* In _mesa_lookup_parameter_constant() make sure we return a full, 4-component ↵Brian2007-03-261-0/+4
| | | | swizzle.
* r300: Fix warnings that were introduced by the glsl mergeNicolai Haehnle2007-03-261-2/+6
|
* Add _swrast_span_default_secondary_color() for use with glBitmap, ↵Brian2007-03-265-2/+46
| | | | | | | glDrawPixels, etc. Secondary color wasn't getting added to post-texture color when drawing bitmaps, images. See bug 10409.
* remove incorrect assertionsBrian2007-03-261-2/+0
|
* minor status updatesBrian2007-03-261-4/+2
|
* disable printing shader program debug infopost-merge-glsl-compiler-1Brian2007-03-261-4/+4
|
* merge of glsl-compiler-1 branchBrian2007-03-26311-49338/+31224
|\
| * disable free() until other issues can be fixed...Brian2007-03-261-0/+2
| |
| * fix mem leak, add commentsBrian2007-03-261-3/+15
| |
| * fix mem leakBrian2007-03-241-7/+3
| |
| * disable free(var->aux) -- can lead to segfaultBrian2007-03-241-0/+2
| |
| * fix mem leakBrian2007-03-241-0/+3
| |
| * fix some mem leaksBrian2007-03-241-6/+9
| |
| * Free shader-related context state: _mesa_free_shader_state()Brian2007-03-243-0/+20
| |
| * free prog->Attributes in _mesa_delete_program()Brian2007-03-241-1/+3
| |
| * fix mistake in _slang_free_ir()Brian2007-03-241-1/+1
| |
| * Properly free the slang_ir_node->Store data (use ref counting).Brian2007-03-242-12/+46
| |
| * When computing render_inputs_bitset, omit primary color if we have a ↵Brian2007-03-241-10/+11
| | | | | | | | fragment program and it doesn't need FRAG_ATTRIB_COL0. Silences valgrind warnings.
| * move some code into new slang_ir.c fileBrian2007-03-244-334/+30
| |
| * IR utility functionsBrian2007-03-241-0/+354
| |
| * document internal compiler optionsBrian2007-03-231-1/+45
| |
| * Fix issues related to the 'continue' statement.Brian2007-03-233-52/+126
| | | | | | | | | | | | | | | | IR_LOOP now has two children: the body code, and the tail code. Tail code is the "i++" part of a for-loop, or the expression at the end of a "do {} while(expr);" loop. "continue" translates into: "execute tail code; CONT;" Also, the test for infinite do/while loops was incorrect.
| * consolidate some codeBrian2007-03-231-7/+2
| |
| * Add the ability to generate programs that doesn't use condition codes.Brian2007-03-238-51/+176
| | | | | | | | | | | | | | ctx->Shader.EmitCondCodes determines if we use condition codes. If not, IF statement uses first operand's X component as the condition. Added OPCODE_BRK0, OPCODE_BRK1, OPCODE_CONT0, OPCODE_CONT1 to handle the common cases of conditional break/continue.
| * minor tweaksBrian2007-03-231-2/+2
| |
| * updated commentBrian2007-03-231-1/+1
| |
| * updated commentBrian2007-03-221-1/+1
| |
| * Overhaul emit_compare() function.Brian2007-03-223-36/+143
| | | | | | | | | | | | | | | | Previously, comparing vec2, vec3, vec4 was broken. Added IR_EQUAL, IR_NOTEQUAL nodes/operators to compute boolean equality/inequality vs. IR_SEQUAL/IR_SNEQUAL which work component-wise. Use IR_EQUAL/IR_NOTEQUAL for the == and != operators. To compute vec4 equality, use SNE, DP4, SEQ instruction sequence.
| * First pass at implementing structure compares.Brian2007-03-221-9/+28
| | | | | | | | | | Need to improve this. There may be holes in a structure so we can't just blindly compare the full 4-float registers.
| * use _mesa_copy_instructions()Brian2007-03-224-8/+5
| |
| * In _mesa_add_unnamed_constant() and _mesa_lookup_parameter_constant() allow ↵Brian2007-03-223-43/+61
| | | | | | | | | | | | | | | | swizzleOut==NULL. There are times when we don't want to allow swizzling when searching for or adding vector constants. Passing NULL for swizzleOut disables swizzling. This fixes a constant/swizzle bug in link_uniform_vars().
| * print conditional writemask, if enabledBrian2007-03-221-0/+6
| |
| * added SWIZZLE_XYZWBrian2007-03-211-0/+1
| |
| * Support for user-defined structures.Brian2007-03-213-23/+119
| | | | | | | | struct == and != operators not finished yet. Struct assignment works though.
| * disable apparently unused codeBrian2007-03-212-0/+4
| |
| * indentBrian2007-03-211-107/+111
| |
| * merge from masterBrian2007-03-2187-1674/+2138
| |\
| * | disable assertionBrian2007-03-211-1/+1
| | |
| * | Properly compute render_inputs_bitset when using a vertex program/shader.Brian2007-03-191-7/+13
| | | | | | | | | | | | This fixes a performance regression introduced early in glsl-compiler-1 work.