summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* 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-2186-1672/+2135
|\
| * 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
| |
| * r300: Fix hw fragment program dumpNicolai Haehnle2007-03-191-17/+34
| | | | | | | | | | | | | | Dumps of fragment programs were incorrect when the program consisted of multiple nodes. Also, improved the formatting a bit.
| * r300: Fix fragment program instruction pairing and register allocationNicolai Haehnle2007-03-193-290/+582
| | | | | | | | | | | | | | | | | | | | | | | | | | There were a number of bugs related to the pairing of vector and scalar operations where swizzles ended up using the wrong source register, or an instruction was moved forward and ended up overwriting an aliased register. The new algorithm for register allocation is quite conservative and may run out of registers before necessary. On the plus side, It Just Works. Pairing is done whenever possible, and in more cases than before, so in practice this change should be a net win.
| * i915tex: The intended triple buffering fix.Michel Dänzer2007-03-192-27/+1
| | | | | | | | | | Making modifications while the editor spawned by git-commit was suspended didn't have the intended effect.
| * i915tex: Fix triple buffering after recent Mesa core changes.Michel Dänzer2007-03-191-0/+22
| | | | | | | | | | | | | | | | | | | | Remove superfluous _mesa_resize_framebuffer call which is now harmful because it causes the third renderbuffer to have width/height 0, so Mesa refuses to render to it. In the long term, it would be nice to remove the hack in intel_alloc_window_storage in favour of a proper Mesa interface for flipping between more than two colour buffers.
| * fix off-by-one in load_state_immediateKeith Whitwell2007-03-182-2/+2
| |