summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-03-24fix mem leakBrian
2007-03-24fix some mem leaksBrian
2007-03-24Free shader-related context state: _mesa_free_shader_state()Brian
2007-03-24free prog->Attributes in _mesa_delete_program()Brian
2007-03-24fix mistake in _slang_free_ir()Brian
2007-03-24Properly free the slang_ir_node->Store data (use ref counting).Brian
2007-03-24When computing render_inputs_bitset, omit primary color if we have a ↵Brian
fragment program and it doesn't need FRAG_ATTRIB_COL0. Silences valgrind warnings.
2007-03-24move some code into new slang_ir.c fileBrian
2007-03-24IR utility functionsBrian
2007-03-23Fix issues related to the 'continue' statement.Brian
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.
2007-03-23consolidate some codeBrian
2007-03-23Add the ability to generate programs that doesn't use condition codes.Brian
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.
2007-03-23minor tweaksBrian
2007-03-23updated commentBrian
2007-03-22updated commentBrian
2007-03-22Overhaul emit_compare() function.Brian
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.
2007-03-22First pass at implementing structure compares.Brian
Need to improve this. There may be holes in a structure so we can't just blindly compare the full 4-float registers.
2007-03-22use _mesa_copy_instructions()Brian
2007-03-22In _mesa_add_unnamed_constant() and _mesa_lookup_parameter_constant() allow ↵Brian
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().
2007-03-22print conditional writemask, if enabledBrian
2007-03-21added SWIZZLE_XYZWBrian
2007-03-21Support for user-defined structures.Brian
struct == and != operators not finished yet. Struct assignment works though.
2007-03-21disable apparently unused codeBrian
2007-03-21indentBrian
2007-03-21merge from masterBrian
2007-03-211D convolution (and post-conv scale/bias) were inadvertantly applied to 2D ↵Brian
image transfers.
2007-03-21fix copy and paste bug from last commit in fog generation code for GL_LINEAR fogRoland Scheidegger
2007-03-21nouveau: update for drm interface changes (0.0.5)Ben Skeggs
2007-03-21nouveau: SwapBuffers() needs to perform a glFlush()Ben Skeggs
2007-03-21mesa: revert f9f79c8d770e696249bd98c68b563f887562c974Xiang, Haihao
to fix #10232 Table6.1(in gl2.1) has been applied for glGetTexImage before calling into _mesa_pack_rgba_span_float.
2007-03-21r300: Remove the program-global const_sin indexNicolai Haehnle
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.
2007-03-20r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-20fix for bug#10347Xiang, Haihao
not sure which brw surface for DXT3 & DXT5, so restore the previous choice.(changed in commit 84081774e62a8af18e6bf894ea69f63b97dcfe96)
2007-03-20use passed target parameterAlan Hourihane
2007-03-20nouveau: fix typoBen Skeggs
2007-03-20nouveau: fail translate if we use too many params somehowBen Skeggs
2007-03-20nouveau: NVSDBG macroBen Skeggs
2007-03-19r300: Cleanup fragment program constant allocation, share constantsNicolai Haehnle
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.
2007-03-19r300: Fix special case (tmp.x <= 0) in fragment program LIT instructionNicolai Haehnle
Also, fix a typo in a related comment.
2007-03-19r300: Clear fragment program instruction slots on first useNicolai Haehnle
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.
2007-03-19Properly compute render_inputs_bitset when using a vertex program/shader.Brian
This fixes a performance regression introduced early in glsl-compiler-1 work.
2007-03-19r300: Dump fragment program after translation if RADEON_DEBUG=pixel is setNicolai Haehnle
2007-03-19r300: Whitespace cleanup (remove trailing spaces)Nicolai Haehnle
2007-03-19r300: Fix WRITEMASK handling when writing to result.depthNicolai Haehnle
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.
2007-03-19r300: Streamlined fragment program LIT implementationNicolai Haehnle
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.
2007-03-19r300: Fix fragment program reorderingNicolai Haehnle
Do not move an instruction that writes to a temp forward past an instruction that reads the same temporary.
2007-03-19r300: Fragment program dumps format tex instructionsNicolai Haehnle
2007-03-19r300: Fix hw fragment program dumpNicolai Haehnle
Dumps of fragment programs were incorrect when the program consisted of multiple nodes. Also, improved the formatting a bit.
2007-03-19r300: Fix fragment program instruction pairing and register allocationNicolai Haehnle
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.
2007-03-19i915tex: The intended triple buffering fix.Michel Dänzer
Making modifications while the editor spawned by git-commit was suspended didn't have the intended effect.