summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
|\
| * document 1D convolution fixBrian2007-03-211-0/+1
| |
| * 1D convolution (and post-conv scale/bias) were inadvertantly applied to 2D ↵Brian2007-03-213-1/+15
| | | | | | | | image transfers.
| * fix copy and paste bug from last commit in fog generation code for GL_LINEAR fogRoland Scheidegger2007-03-211-2/+2
| |
| * nouveau: update for drm interface changes (0.0.5)Ben Skeggs2007-03-214-9/+13
| |
| * nouveau: SwapBuffers() needs to perform a glFlush()Ben Skeggs2007-03-211-0/+1
| |
| * mesa: revert f9f79c8d770e696249bd98c68b563f887562c974Xiang, Haihao2007-03-213-16/+6
| | | | | | | | | | | | | | to fix #10232 Table6.1(in gl2.1) has been applied for glGetTexImage before calling into _mesa_pack_rgba_span_float.
| * r300: Remove the program-global const_sin indexNicolai Haehnle2007-03-212-31/+23
| | | | | | | | | | | | | | The index is no longer necessary to share constants between multiple SIN/COS/SCS instructions inside a single fragment program, and storing a tiny implementation detail like this in the fragment_program structure itself was just nasty.
| * r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle2007-03-201-26/+26
| |
| * fix for bug#10347Xiang, Haihao2007-03-201-9/+3
| | | | | | | | | | | | not sure which brw surface for DXT3 & DXT5, so restore the previous choice.(changed in commit 84081774e62a8af18e6bf894ea69f63b97dcfe96)
| * use passed target parameterAlan Hourihane2007-03-201-1/+1
| |
| * nouveau: fix typoBen Skeggs2007-03-201-1/+1
| |
| * nouveau: fail translate if we use too many params somehowBen Skeggs2007-03-203-5/+31
| |
| * nouveau: NVSDBG macroBen Skeggs2007-03-205-0/+24
| |
| * r300: Cleanup fragment program constant allocation, share constantsNicolai Haehnle2007-03-192-73/+61
| | | | | | | | | | | | | | | | | | The constant/parameter allocation was significantly simplified, removing one unnecessary copy operation of parameters. The dirty state tracking is unchanged and far from optimal, since all state is always re-fetched. Constants and parameters are now emitted only once, which significantly reduces the resource pressure on larger programs.
| * r300: Fix special case (tmp.x <= 0) in fragment program LIT instructionNicolai Haehnle2007-03-191-2/+2
| | | | | | | | Also, fix a typo in a related comment.
| * r300: Clear fragment program instruction slots on first useNicolai Haehnle2007-03-191-0/+2
| | | | | | | | | | | | | | | | Make sure that instruction slots are fully initialized with NOPs during find_and_prepare_slot(). This fixes a bug when a fragment program was translated more than once (e.g. due to a second call to glProgramStringARB). This partially fixes glean/fragProg1.
| * r300: Dump fragment program after translation if RADEON_DEBUG=pixel is setNicolai Haehnle2007-03-191-1/+1
| |
| * r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle2007-03-191-109/+109
| |
| * r300: Fix WRITEMASK handling when writing to result.depthNicolai Haehnle2007-03-191-3/+8
| | | | | | | | | | | | | | | | | | This is a necessary change to emit the right instructions when writing to result.depth. However, even with this test, Z-write doesn't work properly, and I don't fully understand why. In addition to this, we'll at least have to disable early-Z, but even that doesn't seem to be enough.
| * r300: Streamlined fragment program LIT implementationNicolai Haehnle2007-03-191-62/+101
| | | | | | | | | | | | | | | | Fix a bug in the LIT implementation (clamp exponent to 128, not 0.5) and change the implementation around. In theory, the new implementation needs as little as 5 instruction slots. Unfortunately, the dependency analysis in find_and_replace_slot is not strong enough to look at individual components of a register yet.
| * r300: Fix fragment program reorderingNicolai Haehnle2007-03-192-5/+37
| | | | | | | | | | Do not move an instruction that writes to a temp forward past an instruction that reads the same temporary.
| * r300: Fragment program dumps format tex instructionsNicolai Haehnle2007-03-191-2/+28
| |